GitHunt
ES

ESRAILHAQUE/parcel-delivery-system

🚚 Parcel Delivery System - Node.js/Express/TypeScript backend API with MongoDB for parcel management, vehicle tracking, route optimization, and analytics dashboard.

🚚 Parcel Delivery System API

A comprehensive, enterprise-grade backend API for managing parcel delivery operations with advanced route optimization, real-time tracking, and analytics dashboard.

πŸ—οΈ Project Architecture

Modular Architecture with MVC Pattern

src/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ config/           # Environment configuration
β”‚   β”œβ”€β”€ middlewares/      # Authentication & error handling
β”‚   β”œβ”€β”€ modules/          # Feature-based modules
β”‚   β”‚   β”œβ”€β”€ auth/         # Authentication & user management
β”‚   β”‚   β”œβ”€β”€ parcel/       # Parcel management system
β”‚   β”‚   β”œβ”€β”€ vehicle/      # Fleet management system
β”‚   β”‚   β”œβ”€β”€ route/        # Route optimization & planning
β”‚   β”‚   └── analytics/    # Analytics & reporting dashboard
β”‚   β”œβ”€β”€ types/            # TypeScript type definitions
β”‚   └── utils/            # Utility functions & algorithms
β”œβ”€β”€ app.ts                # Express application setup
└── server.ts             # Server entry point

πŸš€ Getting Started

Prerequisites

  • Node.js (v16 or higher)
  • MongoDB (v4.4 or higher)
  • npm or yarn

Installation

  1. Clone the repository:

    git clone <repository-url>
    cd parcel-delivery-system
  2. Install dependencies:

    npm install
  3. Environment setup:

    cp env.example .env
  4. Configure environment variables:

    # .env file
    NODE_ENV=development
    PORT=5000
    MONGODB_URI=mongodb://localhost:27017/parcel-delivery-system
    JWT_SECRET=your-super-secret-jwt-key
    JWT_EXPIRES_IN=7d
  5. Start the development server:

    npm run dev
  6. Build for production:

    npm run build
    npm start

πŸ“‹ Complete API Documentation

πŸ” Authentication Endpoints

Method Endpoint Description Access
POST /api/v1/auth/register User registration Public
POST /api/v1/auth/login User login Public
GET /api/v1/auth/profile Get user profile Authenticated
PUT /api/v1/auth/profile Update user profile Authenticated
PUT /api/v1/auth/change-password Change password Authenticated
GET /api/v1/auth/users Get all users Admin
PUT /api/v1/auth/users/:id/role Change user role Admin
DELETE /api/v1/auth/users/:id Delete user Admin

πŸ“¦ Parcel Management Endpoints

Method Endpoint Description Access
POST /api/v1/parcels Create new parcel Customer
GET /api/v1/parcels Get all parcels Admin/DeliveryMan
GET /api/v1/parcels/:id Get parcel by ID Admin/DeliveryMan
GET /api/v1/parcels/track/:trackingNumber Track parcel Public
PUT /api/v1/parcels/:id/assign Assign delivery man Admin
PUT /api/v1/parcels/:id/status Update parcel status Admin/DeliveryMan
GET /api/v1/parcels/my-parcels Get customer parcels Customer
GET /api/v1/parcels/my-assignments Get delivery assignments DeliveryMan
GET /api/v1/parcels/admin/statistics Get parcel statistics Admin
DELETE /api/v1/parcels/:id Delete parcel Admin

πŸš› Vehicle Management Endpoints

Method Endpoint Description Access
POST /api/v1/vehicles Create new vehicle Admin
GET /api/v1/vehicles Get all vehicles Admin/DeliveryMan/Customer
GET /api/v1/vehicles/:id Get vehicle by ID Admin/DeliveryMan/Customer
PUT /api/v1/vehicles/:id Update vehicle Admin
POST /api/v1/vehicles/:id/assign-driver Assign driver Admin
DELETE /api/v1/vehicles/:id/remove-driver Remove driver Admin
PATCH /api/v1/vehicles/:id/status Update vehicle status Admin/DeliveryMan
PATCH /api/v1/vehicles/:id/location Update vehicle location Admin/DeliveryMan
PATCH /api/v1/vehicles/:id/load Update vehicle load Admin/DeliveryMan
GET /api/v1/vehicles/find/nearest Find nearest vehicle Admin/DeliveryMan
GET /api/v1/vehicles/statistics/overview Vehicle statistics Admin
DELETE /api/v1/vehicles/:id Delete vehicle Admin

πŸ—ΊοΈ Route Optimization Endpoints

Method Endpoint Description Access
POST /api/v1/routes/optimize Generate optimal routes Admin
POST /api/v1/routes/assign Assign parcels to vehicles Admin
GET /api/v1/routes/efficiency Get delivery efficiency Admin/DeliveryMan
GET /api/v1/routes/status Real-time delivery status Admin/DeliveryMan
POST /api/v1/routes/optimize-specific Optimize specific parcels Admin

πŸ“Š Analytics Dashboard Endpoints

Method Endpoint Description Access
GET /api/v1/analytics/dashboard Comprehensive dashboard Admin
GET /api/v1/analytics/realtime Real-time status Admin/DeliveryMan
GET /api/v1/analytics/performance Performance metrics Admin
GET /api/v1/analytics/fleet Fleet analytics Admin
GET /api/v1/analytics/report Generate delivery report Admin

πŸ” User Roles & Permissions

πŸ‘‘ Admin

  • Full system access
  • User management
  • Vehicle management
  • Route optimization
  • Analytics dashboard
  • Parcel assignment
  • System configuration

πŸ‘€ Customer

  • Create parcels
  • Track deliveries
  • View own parcels
  • Update profile
  • View available vehicles

🚚 DeliveryMan

  • View assigned parcels
  • Update parcel status
  • Update vehicle location
  • View delivery statistics
  • Access route information

πŸ› οΈ Technology Stack

Backend Technologies

  • Node.js - Runtime environment
  • Express.js - Web framework
  • TypeScript - Type-safe development
  • MongoDB - NoSQL database
  • Mongoose - ODM for MongoDB

Authentication & Security

  • JWT - JSON Web Tokens
  • Bcrypt - Password hashing
  • CORS - Cross-origin resource sharing
  • Helmet - Security headers

Validation & Error Handling

  • Zod - Schema validation
  • Custom error middleware - Centralized error handling
  • HTTP status codes - Proper status responses

Advanced Features

  • Route Optimization Algorithms - Nearest Neighbor, Genetic Algorithms
  • Distance Calculation - Haversine formula
  • Real-time Tracking - Live location updates
  • Analytics Dashboard - Comprehensive reporting
  • Performance Metrics - Delivery efficiency tracking

πŸš€ Advanced Features

πŸ—ΊοΈ Route Optimization

  • Multi-vehicle routing
  • Time window constraints
  • Capacity optimization
  • Priority-based routing
  • Real-time rerouting
  • Cost minimization

πŸ“Š Analytics & Reporting

  • Delivery efficiency metrics
  • Fleet utilization statistics
  • Driver performance tracking
  • Revenue analytics
  • Route optimization reports
  • Real-time dashboard

πŸš› Fleet Management

  • Vehicle registration
  • Driver assignment
  • Location tracking
  • Capacity management
  • Maintenance scheduling
  • Fuel consumption tracking

πŸ“¦ Parcel Management

  • Automated tracking numbers
  • Status workflow management
  • Delivery time estimation
  • Special handling instructions
  • Insurance and value tracking
  • Customer notifications

πŸ”§ Development Scripts

# Development
npm run dev          # Start development server with hot reload
npm run build        # Build TypeScript to JavaScript
npm start           # Start production server
npm run lint        # Run ESLint
npm run test        # Run tests

# Database
npm run db:seed     # Seed database with sample data
npm run db:reset    # Reset database

πŸ“ Module Structure

Each module follows the MVC pattern with:

module/
β”œβ”€β”€ module.controller.ts    # HTTP request handlers
β”œβ”€β”€ module.service.ts       # Business logic
β”œβ”€β”€ module.model.ts         # Database schema
β”œβ”€β”€ module.interface.ts     # TypeScript interfaces
β”œβ”€β”€ module.validation.ts    # Input validation
└── routes.ts              # Route definitions

🌟 Key Features

  • βœ… Modular Architecture - Feature-based organization
  • βœ… Type Safety - Full TypeScript implementation
  • βœ… Role-based Access Control - Secure API endpoints
  • βœ… Advanced Route Optimization - Industry-grade algorithms
  • βœ… Real-time Tracking - Live delivery monitoring
  • βœ… Analytics Dashboard - Comprehensive reporting
  • βœ… Fleet Management - Complete vehicle management
  • βœ… Performance Metrics - Delivery efficiency tracking
  • βœ… Scalable Design - Enterprise-ready architecture
  • βœ… Comprehensive Validation - Input sanitization
  • βœ… Error Handling - Centralized error management
  • βœ… Security - JWT authentication & authorization

πŸ“ˆ Performance & Scalability

  • Database Indexing - Optimized queries
  • Connection Pooling - Efficient database connections
  • Caching Strategy - Redis integration ready
  • Load Balancing - Horizontal scaling support
  • API Rate Limiting - Request throttling
  • Monitoring - Performance metrics

πŸ”’ Security Features

  • JWT Authentication - Secure token-based auth
  • Password Hashing - Bcrypt encryption
  • Input Validation - Zod schema validation
  • SQL Injection Prevention - Mongoose ODM
  • CORS Configuration - Cross-origin security
  • Environment Variables - Secure configuration

πŸ“ API Response Format

{
  "success": true,
  "message": "Operation completed successfully",
  "data": {
    // Response data
  }
}

🚨 Error Response Format

{
  "success": false,
  "message": "Error description",
  "errors": [
    {
      "field": "fieldName",
      "message": "Error message",
      "code": "error_code"
    }
  ]
}

πŸ“ž Support

For support and questions:

  • Documentation: Check API endpoints above
  • Issues: Create GitHub issue
  • Email: [Your Email]

πŸ“„ License

This project is licensed under the MIT License.


πŸš€ Ready for Production Deployment!

This is a complete, enterprise-grade parcel delivery system with all modern features and best practices implemented.

ESRAILHAQUE/parcel-delivery-system | GitHunt