Loading repository data…
Loading repository data…
Ahmed-Maher77 / repository
Full-stack Driver Scheduling & Fleet Management System built with React.js, TypeScript, Node.js, Express.js, and MongoDB. Enables efficient driver-route management through assignment scheduling, availability validation, conflict detection, analytics dashboards, activity tracking, and real-time monitoring. Developed for the DRB Internship Program.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Full-stack Driver Scheduling System for managing drivers and delivery routes with modern animations and real-time connectivity monitoring. Built with Node.js and React.js, it provides an intuitive dashboard with smooth page transitions, animated components, and comprehensive driver/route management. Features include Framer Motion animations, internet connectivity monitoring, and responsive design. Developed for the DRB Internship Program 2025, showcasing clean architecture, modern UI/UX, and practical scheduling features.
The Driver Scheduling System is a logistics management platform that enables efficient assignment of drivers to delivery routes. The system provides real-time tracking of driver availability, route management, and automated scheduling algorithms to optimize delivery operations.
Clone the repository
git clone https://github.com/Ahmed-Maher77/driver-scheduling-system.git
cd driver-scheduling-system
Backend Setup
# Install dependencies
cd Backend-server
npm install
# Configure your MongoDB connection string in .env
PORT=3001 # Port number
DATABASE_URL="mongodb+srv://<db_username>:<db_password>@cluster0.ldoyyda.mongodb.net/?appName=Cluster0" # MongoDB connection string
# Start the server
npm start
Frontend Setup
cd Frontend-client
npm install
# Configure environment variables
VITE_API_BASE_URL=http://localhost:3001
# Start the development server
npm run dev
Access the application
driver-scheduling-system/
├── Backend-server/ # Node.js API server
│ ├── models/ # Database models (Drivers, Routes, ActivityFeeds)
│ ├── routes/ # API route handlers
│ │ ├── AddNewDriver_Route.js
│ │ ├── EditDriver_Route.js
│ │ ├── DeleteDriver_Route.js
│ │ ├── AddNewRoute_Route.js
│ │ ├── EditRoute_Route.js
│ │ ├── DeleteRoute_Route.js
│ │ ├── GetActivityFeeds_Route.js
│ │ ├── UploadImageOnServer_Route.js
│ │ └── ... (18 total routes)
│ ├── utils/ # Utility functions
│ │ ├── serverManager.js
│ │ ├── driverIdGenerator.js
│ │ └── routeIdGenerator.js
│ ├── index.js # Server entry point
│ └── package.json
├── Frontend-client/ # React application
│ ├── src/
│ │ ├── assets/ # Static assets (images, icons)
│ │ ├── components/ # Reusable UI components
│ │ │ ├── DriversPage_Components/
│ │ │ ├── RoutesPage_Components/
│ │ │ ├── ActivityFeedsPage_Components/
│ │ │ ├── Dashboard_Components/
│ │ │ └── SharedModalComponents/
│ │ ├── pages/ # Page components
│ │ │ ├── Dashboard/
│ │ │ ├── DriversPage/
│ │ │ ├── DriverDetailsPage/
│ │ │ ├── RoutesPage/
│ │ │ ├── RouteDetailsPage/
│ │ │ ├── ActivityFeedsPage/
│ │ │ ├── AboutPage/
│ │ │ ├── ContactPage/
│ │ │ └── CalendarPage/
│ │ ├── utils/ # Utility functions and hooks
│ │ │ ├── functions/ # Utility functions
│ │ │ └── hooks/ # Custom hooks
│ │ │ ├── api/ # API hooks (React Query)
│ │ │ └── activity-feeds/
│ │ ├── common/ # Shared components and utilities
│ │ │ ├── Animations/ # Framer Motion animation components
│ │ │ │ ├── AnimatedPage/
│ │ │ │ ├── AnimatedComponent/
│ │ │ │ ├── AnimatedList/
│ │ │ │ ├── AnimatedModal/
│ │ │ │ ├── AnimatedTableRow/
│ │ │ │ ├── AnimatedButton/
│ │ │ │ └── AnimatedLoadingSpinner/
│ │ │ ├── InternetChecker/ # Internet connectivity monitoring
│ │ │ └── Types/ # Shared types and interfaces
│ │ └── main.tsx # Application entry point
│ ├── public/ # Static assets
│ └── package.json
└── README.md
GET /get-all-drivers - Retrieve all drivers with pagination and filteringGET /get-driver-details/:id - Get specific driver detailsPOST /add-new-driver - Create a new driverPUT /edit-driver/:id - Update driver informationDELETE /delete-driver/:id - Remove a driverDELETE /delete-bulk-drivers - Bulk delete driversGET /get-all-routes - Retrieve all routes with pagination and filteringGET /get-route-details/:id - Get specific route detailsPOST /add-new-route - Create a new routePUT /edit-route/:id - Update route informationDELETE /delete-route/:id - Remove a routeDELETE /delete-bulk-routes - Bulk delete routesGET /get-dashboard-stats - Get dashboard statisticsGET /get-activity-feeds - Retrieve activity logs with filteringGET /get-assigned-routes-by-month - Get monthly route assignmentsGET /check-driver-availability/:id - Check driver availabilityGET /check-route-availability/:id - Check route availabilityPOST /upload-image-on-server - Upload images and documentsGet All Drivers
GET /get-all-drivers?page=1&limit=10&status=available&vehicleType=Car
Response
{
"data": [
{
"driver_id": "DR001",
"name": "John Doe",
"phone": "+1234567890",
"status": "available",
"license_type": "B",
"vehicle_type": "Car",
"assignedRoute": null,
"joined_at": "2024-01-15T10:30:00Z"
}
],
"currentPage": 1,
"totalPages": 5,
"totalDocs": 50,
"hasNextPage": true,
"hasPreviousPage": false
}