{"id":31390868,"url":"https://github.com/ahmed-maher77/driver-scheduling-system","last_synced_at":"2026-04-06T02:33:14.623Z","repository":{"id":315959530,"uuid":"1061344317","full_name":"Ahmed-Maher77/driver-scheduling-system","owner":"Ahmed-Maher77","description":"Full-stack Driver Scheduling System for managing drivers and delivery routes in a simple, visual way. Built with Node.js and React.js, it provides an intuitive dashboard to add drivers, create routes, and track assignments in real time. Developed for the DRB Internship Program 2025, highlighting clean design and practical scheduling tools.","archived":false,"fork":false,"pushed_at":"2025-09-28T22:34:40.000Z","size":5028,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-29T00:06:44.119Z","etag":null,"topics":["axios","digital-system","expressjs","full-stack-web-development","javascript","mongodb","mongoose","mongoose-schema","mvc-architecture","nodejs","reactjs","responsive-design","route-scheduler","scheduler","scheduling-application","scheduling-system","scss-framework","tailwindcss","tanstack-react-query","typescript"],"latest_commit_sha":null,"homepage":"https://driver-scheduling-system.vercel.app/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ahmed-Maher77.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-21T18:11:29.000Z","updated_at":"2025-09-28T22:34:43.000Z","dependencies_parsed_at":"2025-09-21T22:21:26.982Z","dependency_job_id":null,"html_url":"https://github.com/Ahmed-Maher77/driver-scheduling-system","commit_stats":null,"previous_names":["ahmed-maher77/driver-scheduling-system"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Ahmed-Maher77/driver-scheduling-system","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ahmed-Maher77%2Fdriver-scheduling-system","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ahmed-Maher77%2Fdriver-scheduling-system/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ahmed-Maher77%2Fdriver-scheduling-system/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ahmed-Maher77%2Fdriver-scheduling-system/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ahmed-Maher77","download_url":"https://codeload.github.com/Ahmed-Maher77/driver-scheduling-system/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ahmed-Maher77%2Fdriver-scheduling-system/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277455215,"owners_count":25820678,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-28T02:00:08.834Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["axios","digital-system","expressjs","full-stack-web-development","javascript","mongodb","mongoose","mongoose-schema","mvc-architecture","nodejs","reactjs","responsive-design","route-scheduler","scheduler","scheduling-application","scheduling-system","scss-framework","tailwindcss","tanstack-react-query","typescript"],"created_at":"2025-09-29T01:38:15.241Z","updated_at":"2026-04-06T02:33:14.611Z","avatar_url":"https://github.com/Ahmed-Maher77.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Driver Scheduling System\n\nFull-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.\n\n---\n\n## 📋 Project Description\n\nThe 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.\n\n---\n\n## 🌐 Live Preview\n\n-   **Watch Live Demo (Frontend Application)**: [https://driver-scheduling-system.vercel.app/](https://driver-scheduling-system.vercel.app/)\n-   **Backend API**: [https://driver-scheduling-system-5kmi.vercel.app/](https://driver-scheduling-system-5kmi.vercel.app/)\n\n---\n\n## 📸 Website Preview (UI Mockup)\n\n\u003ca href=\"https://driver-scheduling-system.vercel.app/\" target=\"_blank\" rel=\"noopener noreferrer\" title=\"demo\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/452dc4a6-857a-4117-91b1-6e16caa77cd7\" alt=\"website preview - demo - UI Mockup\" width=\"400\"\u003e\n\u003c/a\u003e\n\n---\n\n## 🛠️ Technologies Used\n\n### Frontend\n\n-   **React 19** - Modern UI library with hooks\n-   **TypeScript** - Type-safe JavaScript\n-   **Vite** - Fast build tool and development server\n-   **React Router v7** - Client-side routing\n-   **TanStack Query (React Query)** - Server state management and caching\n-   **Axios** - HTTP client for API communication\n-   **Tailwind CSS v4** - Utility-first CSS framework\n-   **SASS** - CSS preprocessor\n-   **React Toastify** - Notification system\n-   **FontAwesome** - Icon library\n-   **Google Fonts** - Typography and font styling\n-   **Framer Motion** - Advanced animations and transitions\n-   **Redux Toolkit** - State management (for future scalability)\n\n### Backend\n\n-   **Node.js** - JavaScript runtime\n-   **Express.js v5** - Web application framework\n-   **MongoDB Atlas** - Cloud database service\n-   **Mongoose** - MongoDB object modeling\n-   **Multer** - File upload handling\n-   **CORS** - Cross-origin resource sharing\n-   **Dotenv** - Environment variable management\n\n### Deployment \u0026 Hosting\n\n-   **Vercel** - Frontend and backend hosting\n-   **MongoDB Atlas** - Cloud database hosting\n-   **Git** - Version control\n\n---\n\n## ✨ Key Features\n\n### 🚗 Driver Management\n\n-   **Complete CRUD Operations**: Add, edit, view, and delete drivers\n-   **Driver Profile Management**: Personal information, contact details, and documents\n-   **License Management**: Track driving license types, numbers, and expiration dates\n-   **Vehicle Information**: Vehicle type, make, model, year, and color tracking\n-   **Document Upload**: Profile pictures and license document uploads with validation\n-   **Driver Status Tracking**: Available, on_route, unavailable status management\n-   **Assignment History**: Track past route assignments and performance\n-   **Bulk Operations**: Select and delete multiple drivers at once\n\n### 🛣️ Route Management\n\n-   **Complete CRUD Operations**: Create, edit, view, and delete routes\n-   **Location Tracking**: Start and end location management\n-   **Route Details**: Distance, duration, cost, and speed specifications\n-   **Status Management**: Unassigned, assigned, in progress status tracking\n-   **Driver Assignment**: Assign and unassign drivers to routes\n-   **Conflict Detection**: Prevent double assignments and availability conflicts\n-   **Bulk Operations**: Select and delete multiple routes at once\n-   **Route Filtering**: Filter by status, duration, and search terms\n\n### 📊 Dashboard \u0026 Analytics\n\n-   **Real-time Statistics**: Live driver and route counts\n-   **Activity Feeds**: Comprehensive logging of all system activities\n-   **Export Functionality**: CSV export for drivers, routes, and activity feeds\n-   **Search \u0026 Filtering**: Advanced search across all entities\n-   **Pagination**: Efficient handling of large datasets\n-   **Responsive Tables**: Mobile-friendly data display\n\n### 🔄 Smart Scheduling\n\n-   **Availability Checking**: Real-time driver and route availability validation\n-   **Conflict Resolution**: Automatic detection of scheduling conflicts\n-   **Assignment Logic**: Intelligent driver-route matching\n-   **Status Synchronization**: Real-time updates across the system\n-   **Activity Logging**: Complete audit trail of all changes\n\n### 📱 User Interface\n\n-   **Responsive Design**: Mobile-first approach with cross-device compatibility\n-   **Modern UI/UX**: Clean, intuitive interface design with smooth animations\n-   **Page Transitions**: Smooth page-to-page navigation with Framer Motion\n-   **Component Animations**: Staggered animations for lists, tables, and cards\n-   **Modal-based Editing**: Streamlined editing experience with animated modals\n-   **Loading States**: Proper loading indicators and error handling\n-   **Toast Notifications**: User-friendly success and error messages\n-   **Accessibility**: Keyboard navigation and screen reader support\n-   **Internet Connectivity**: Real-time connection status monitoring with retry functionality\n\n### 🔧 Advanced Features\n\n-   **File Upload System**: Secure image and document uploads with validation\n-   **Data Validation**: Client-side and server-side validation\n-   **Error Handling**: Comprehensive error management with user feedback\n-   **URL State Management**: Filter states preserved in URL parameters\n-   **Unsaved Changes Protection**: Prevents accidental data loss\n-   **Bulk Actions**: Efficient management of multiple records\n-   **Internet Connectivity Monitoring**: Real-time connection status with floating notifications\n-   **Advanced Animations**: Framer Motion-powered smooth transitions and micro-interactions\n-   **Table Row Animations**: Bottom-to-top staggered animations for data tables\n-   **Hover Effects**: Enhanced button and card interactions with CSS transforms\n\n---\n\n## 🚀 Installation Instructions\n\n### Prerequisites\n\n-   Node.js (v18 or higher)\n-   npm or yarn package manager\n-   Git\n\n### Local Setup\n\n1. **Clone the repository**\n\n    ```bash\n    git clone https://github.com/Ahmed-Maher77/driver-scheduling-system.git\n    cd driver-scheduling-system\n    ```\n\n2. **Backend Setup**\n\n    ```bash\n    # Install dependencies\n    cd Backend-server\n    npm install\n    # Configure your MongoDB connection string in .env\n    PORT=3001    # Port number\n    DATABASE_URL=\"mongodb+srv://ahmedmaheraljwhry057_db_user:\u003cdb_password\u003e@cluster0.ldoyyda.mongodb.net/?appName=Cluster0\"    # MongoDB connection string\n    # Start the server\n    npm start\n    ```\n\n3. **Frontend Setup**\n\n    ```bash\n    cd Frontend-client\n    npm install\n    # Configure environment variables\n    VITE_API_BASE_URL=http://localhost:3001\n    # Start the development server\n    npm run dev\n    ```\n\n4. **Access the application**\n    - Frontend: http://localhost:5173\n    - Backend API: http://localhost:3001\n\n---\n\n## 📁 Project Structure\n\n```\ndriver-scheduling-system/\n├── Backend-server/                # Node.js API server\n│   ├── models/                    # Database models (Drivers, Routes, ActivityFeeds)\n│   ├── routes/                    # API route handlers\n│   │   ├── AddNewDriver_Route.js\n│   │   ├── EditDriver_Route.js\n│   │   ├── DeleteDriver_Route.js\n│   │   ├── AddNewRoute_Route.js\n│   │   ├── EditRoute_Route.js\n│   │   ├── DeleteRoute_Route.js\n│   │   ├── GetActivityFeeds_Route.js\n│   │   ├── UploadImageOnServer_Route.js\n│   │   └── ... (18 total routes)\n│   ├── utils/                     # Utility functions\n│   │   ├── serverManager.js\n│   │   ├── driverIdGenerator.js\n│   │   └── routeIdGenerator.js\n│   ├── index.js                   # Server entry point\n│   └── package.json\n├── Frontend-client/               # React application\n│   ├── src/\n│   │   ├── assets/               # Static assets (images, icons)\n│   │   ├── components/           # Reusable UI components\n│   │   │   ├── DriversPage_Components/\n│   │   │   ├── RoutesPage_Components/\n│   │   │   ├── ActivityFeedsPage_Components/\n│   │   │   ├── Dashboard_Components/\n│   │   │   └── SharedModalComponents/\n│   │   ├── pages/                # Page components\n│   │   │   ├── Dashboard/\n│   │   │   ├── DriversPage/\n│   │   │   ├── DriverDetailsPage/\n│   │   │   ├── RoutesPage/\n│   │   │   ├── RouteDetailsPage/\n│   │   │   ├── ActivityFeedsPage/\n│   │   │   ├── AboutPage/\n│   │   │   ├── ContactPage/\n│   │   │   └── CalendarPage/\n│   │   ├── utils/                # Utility functions and hooks\n│   │   │   ├── functions/        # Utility functions\n│   │   │   └── hooks/            # Custom hooks\n│   │   │       ├── api/          # API hooks (React Query)\n│   │   │       └── activity-feeds/\n│   │   ├── common/               # Shared components and utilities\n│   │   │   ├── Animations/       # Framer Motion animation components\n│   │   │   │   ├── AnimatedPage/\n│   │   │   │   ├── AnimatedComponent/\n│   │   │   │   ├── AnimatedList/\n│   │   │   │   ├── AnimatedModal/\n│   │   │   │   ├── AnimatedTableRow/\n│   │   │   │   ├── AnimatedButton/\n│   │   │   │   └── AnimatedLoadingSpinner/\n│   │   │   ├── InternetChecker/  # Internet connectivity monitoring\n│   │   │   └── Types/            # Shared types and interfaces\n│   │   └── main.tsx              # Application entry point\n│   ├── public/                   # Static assets\n│   └── package.json\n└── README.md\n```\n\n---\n\n## 📚 API Documentation\n\n### Base URL\n\n```\nhttps://driver-scheduling-system-5kmi.vercel.app\n```\n\n### Core Endpoints\n\n#### Drivers\n\n-   `GET /get-all-drivers` - Retrieve all drivers with pagination and filtering\n-   `GET /get-driver-details/:id` - Get specific driver details\n-   `POST /add-new-driver` - Create a new driver\n-   `PUT /edit-driver/:id` - Update driver information\n-   `DELETE /delete-driver/:id` - Remove a driver\n-   `DELETE /delete-bulk-drivers` - Bulk delete drivers\n\n#### Routes\n\n-   `GET /get-all-routes` - Retrieve all routes with pagination and filtering\n-   `GET /get-route-details/:id` - Get specific route details\n-   `POST /add-new-route` - Create a new route\n-   `PUT /edit-route/:id` - Update route information\n-   `DELETE /delete-route/:id` - Remove a route\n-   `DELETE /delete-bulk-routes` - Bulk delete routes\n\n#### Dashboard \u0026 Analytics\n\n-   `GET /get-dashboard-stats` - Get dashboard statistics\n-   `GET /get-activity-feeds` - Retrieve activity logs with filtering\n-   `GET /get-assigned-routes-by-month` - Get monthly route assignments\n\n#### Availability \u0026 Validation\n\n-   `GET /check-driver-availability/:id` - Check driver availability\n-   `GET /check-route-availability/:id` - Check route availability\n\n#### File Management\n\n-   `POST /upload-image-on-server` - Upload images and documents\n\n### Sample Request/Response\n\n**Get All Drivers**\n\n```bash\nGET /get-all-drivers?page=1\u0026limit=10\u0026status=available\u0026vehicleType=Car\n```\n\n**Response**\n\n```json\n{\n    \"data\": [\n        {\n            \"driver_id\": \"DR001\",\n            \"name\": \"John Doe\",\n            \"phone\": \"+1234567890\",\n            \"status\": \"available\",\n            \"license_type\": \"B\",\n            \"vehicle_type\": \"Car\",\n            \"assignedRoute\": null,\n            \"joined_at\": \"2024-01-15T10:30:00Z\"\n        }\n    ],\n    \"currentPage\": 1,\n    \"totalPages\": 5,\n    \"totalDocs\": 50,\n    \"hasNextPage\": true,\n    \"hasPreviousPage\": false\n}\n```\n\n---\n\n## 🎯 Key Pages \u0026 Features\n\n### Dashboard\n\n-   Real-time statistics overview\n-   Quick access to recent activities\n-   System health monitoring\n\n### Drivers Management\n\n-   **Drivers List**: Paginated table with search and filtering\n-   **Driver Details**: Comprehensive driver profile view\n-   **Add Driver**: Modal form with validation and file upload\n-   **Edit Driver**: Full driver information editing\n-   **Bulk Actions**: Select and manage multiple drivers\n\n### Routes Management\n\n-   **Routes List**: Paginated table with advanced filtering\n-   **Route Details**: Complete route information and assignment history\n-   **Add Route**: Route creation with driver assignment\n-   **Edit Route**: Route editing with conflict detection\n-   **Bulk Actions**: Select and manage multiple routes\n\n### Activity Feeds\n\n-   **Activity Log**: Complete audit trail of all system activities\n-   **Filtering**: Filter by status, driver, date range\n-   **Export**: CSV export functionality\n-   **Real-time Updates**: Live activity monitoring\n\n### Additional Pages\n\n-   **About Page**: Project information, team details, and internet connectivity demo\n-   **Contact Page**: Contact information and support with responsive layout\n-   **Calendar Page**: Route scheduling calendar view with animated day grids\n-   **Admin Panel**: System administration with animated welcome screen\n\n---\n\n## 🔒 Security Features\n\n-   **File Upload Validation**: Secure file type and size validation\n-   **Input Sanitization**: Client and server-side input validation\n-   **Error Handling**: Comprehensive error management without data exposure\n-   **CORS Configuration**: Proper cross-origin resource sharing setup\n-   **Environment Variables**: Secure configuration management\n\n---\n\n## 🚀 Deployment\n\n### Frontend (Vercel)\n\n-   Automatic deployment from GitHub\n-   Environment variables configured for production API\n-   Custom domain support\n\n### Backend (Vercel)\n\n-   Serverless function deployment\n-   MongoDB Atlas integration\n-   Environment variable management\n\n---\n\n## 🔮 Future Enhancements\n\n-   [ ] Real-time notifications using WebSockets\n-   [ ] Advanced analytics and reporting dashboard\n-   [ ] Mobile application (React Native)\n-   [ ] Driver GPS tracking integration\n-   [ ] Automated route optimization algorithms\n-   [ ] Multi-tenant support for multiple companies\n-   [ ] Advanced user authentication and authorization\n-   [ ] API rate limiting and security enhancements\n-   [ ] Push notifications for mobile devices\n-   [ ] Advanced scheduling algorithms with machine learning\n-   [ ] Dark mode theme support\n-   [ ] Advanced animation customization options\n-   [ ] Offline mode with data synchronization\n\n---\n\n## 📞 Contact\n\n**Developer**: Ahmed Maher Algohary  \n**Email**: [ahmedmaher.algohary@gmail.com](mailto:ahmedmaher.algohary@gmail.com)\n\n\u003c!-- **Portfolio**: [https://ahmedmaher-portfolio.vercel.app/](https://ahmedmaher-portfolio.vercel.app/)   --\u003e\n\n**LinkedIn**: [https://www.linkedin.com/in/ahmed-maher-algohary](https://www.linkedin.com/in/ahmed-maher-algohary)  \n**GitHub**: [https://github.com/Ahmed-Maher77](https://github.com/Ahmed-Maher77)\n\n---\n\n## 📄 License\n\nThis project is developed as part of the DRB Internship Program 2025. All rights reserved.\n\n---\n\n**Built with ❤️ for the DRB Internship Program 2025**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fahmed-maher77%2Fdriver-scheduling-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fahmed-maher77%2Fdriver-scheduling-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fahmed-maher77%2Fdriver-scheduling-system/lists"}