{"id":22697670,"url":"https://github.com/amirhaytham/odds-fe","last_synced_at":"2026-04-18T04:01:45.061Z","repository":{"id":263698246,"uuid":"890674827","full_name":"AmirHaytham/ODDS-FE","owner":"AmirHaytham","description":"On-Demand Delivery Service (ODDS)","archived":false,"fork":false,"pushed_at":"2024-11-19T23:59:02.000Z","size":1748,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-15T14:02:12.525Z","etag":null,"topics":["fe","frontend","react","reactjs"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AmirHaytham.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2024-11-19T01:32:00.000Z","updated_at":"2024-11-20T00:00:34.000Z","dependencies_parsed_at":"2024-11-20T00:39:08.736Z","dependency_job_id":null,"html_url":"https://github.com/AmirHaytham/ODDS-FE","commit_stats":null,"previous_names":["amirhaytham/odds-fe"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AmirHaytham/ODDS-FE","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AmirHaytham%2FODDS-FE","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AmirHaytham%2FODDS-FE/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AmirHaytham%2FODDS-FE/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AmirHaytham%2FODDS-FE/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AmirHaytham","download_url":"https://codeload.github.com/AmirHaytham/ODDS-FE/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AmirHaytham%2FODDS-FE/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31955919,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"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":["fe","frontend","react","reactjs"],"created_at":"2024-12-10T05:14:56.701Z","updated_at":"2026-04-18T04:01:45.045Z","avatar_url":"https://github.com/AmirHaytham.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚚 On Demand Delivery Service\n[![React](https://img.shields.io/badge/React-18.0.0-blue.svg)](https://reactjs.org/)\n[![Tailwind CSS](https://img.shields.io/badge/Tailwind_CSS-3.0-38B2AC.svg)](https://tailwindcss.com/)\n[![i18next](https://img.shields.io/badge/i18next-21.8-green.svg)](https://www.i18next.com/)\n[![License](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](http://makeapullrequest.com)\n[![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://github.com/AmirHaytham/ODDS-FE/graphs/commit-activity)\n[![GitHub issues](https://img.shields.io/github/issues/AmirHaytham/ODDS-FE)](https://github.com/AmirHaytham/ODDS-FE/issues)\n[![GitHub pull requests](https://img.shields.io/github/issues-pr/AmirHaytham/ODDS-FE)](https://github.com/AmirHaytham/ODDS-FE/pulls)\n[![Build Status](https://img.shields.io/github/workflow/status/AmirHaytham/ODDS-FE/CI)](https://github.com/AmirHaytham/ODDS-FE/tree/master/.github/workflows)\n[![Code Style](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://prettier.io/)\n\nA comprehensive delivery management solution designed to streamline logistics operations and enhance customer experience. This platform connects businesses, drivers, and customers in a seamless ecosystem for efficient delivery services.\n\n## 📸 Screenshots\n\n### Homepage\n![Homepage](https://github.com/AmirHaytham/ODDS-FE/blob/master/screenshots/Screenshot%20(76).png)\n- Real-time statistics and driver monitoring\n- Quick access to key management features\n\n### Admin Dashboard\n![Admin Dashboard](https://github.com/AmirHaytham/ODDS-FE/blob/master/screenshots/Screenshot%20(82).png)\n- Real-time statistics and driver monitoring\n- Quick access to key management features\n\n### Driver Portal\n![Driver App](https://github.com/AmirHaytham/ODDS-FE/blob/master/screenshots/Screenshot%20(87).png)\n- Active delivery tracking\n- Earnings overview and status controls\n\n### Driver Dashboard\n![User App](https://github.com/AmirHaytham/ODDS-FE/blob/master/screenshots/Screenshot%20(86).png)\n- Tracking derveries and earnings and payments\n\n### Multi-language Support\n![RTL Support](https://github.com/AmirHaytham/ODDS-FE/blob/master/screenshots/Screenshot%20(77).png)\n- Arabic interface with RTL support\n- Seamless language switching\n  \n## 💼 Business Overview\n\n### For Businesses\n- Reduce operational costs through efficient route optimization\n- Real-time tracking and analytics for better decision making\n- Automated dispatch system to minimize manual intervention\n- Customizable promotion system to drive customer engagement\n- Comprehensive reporting for business insights\n- Driver performance monitoring and management\n\n### For Drivers\n- Flexible working hours with easy status management\n- Clear earnings visibility and performance metrics\n- Optimized route suggestions for efficient deliveries\n- Built-in navigation and delivery instructions\n- Simple order acceptance and completion workflow\n- Performance-based incentive tracking\n\n### For Customers\n- Real-time order tracking and status updates\n- Multiple payment options for convenience\n- Delivery time estimates based on real-time conditions\n- Order history and reordering capabilities\n- Rating and feedback system\n- Special offers and promotional discounts\n\n\n## 🚀 Features\n\n### Authentication \u0026 Authorization\n- Multi-role authentication (Admin, Driver, User)\n- Protected routes based on user roles\n- Mock authentication system for development\n- Persistent login state using localStorage\n- Role-based redirections\n- Registration with validation\n\n### Admin Features\n- Comprehensive admin dashboard\n- Real-time statistics overview\n- Driver management system\n- Promotion code management\n- Driver status monitoring (Online/Busy/Offline)\n- Quick action navigation\n\n### Driver Features\n- Driver-specific dashboard\n- Online/Offline status toggle\n- Current delivery tracking\n- Earnings overview\n- Delivery history\n- Navigation integration\n- Rating system display\n\n### User Features\n- User dashboard\n- Order tracking\n- Order history\n- Profile management\n- Real-time order status\n\n### Internationalization\n- Dual language support (English \u0026 Arabic)\n- RTL/LTR layout support\n- Language persistence\n- Dynamic content translation\n- Number and currency formatting\n\n### UI/UX Features\n- Responsive design with Tailwind CSS\n- Loading states and spinners\n- Error handling and messages\n- Form validation\n- Breadcrumb navigation\n- Card-based layouts\n- Status indicators\n- Interactive buttons\n- Clean and modern design\n\n## 🛠 Tech Stack\n\n### Core\n- React 18\n- React Router v6 (with protected routes)\n- Tailwind CSS for styling\n- i18next for internationalization\n\n### State Management\n- React Context API for:\n  - Authentication state\n  - User preferences\n  - Language settings\n- localStorage for persistence\n- Custom hooks for shared logic\n\n### Development Tools\n- Create React App\n- ESLint\n- Prettier\n- React Developer Tools\n\n\n## 📂 Project Structure\n```\ndelivery-platform-frontend/\n├── public/\n│   ├── favicon.ico\n│   ├── index.html\n│   ├── logo192.png\n│   ├── logo512.png\n│   ├── manifest.json\n│   └── robots.txt\n│\n├── src/\n│   ├── components/\n│   │   ├── common/\n│   │   │   ├── buttons/\n│   │   │   │   ├── Button.jsx\n│   │   │   │   ├── IconButton.jsx\n│   │   │   │   └── ToggleButton.jsx\n│   │   │   ├── forms/\n│   │   │   │   ├── Input.jsx\n│   │   │   │   ├── Select.jsx\n│   │   │   │   └── Checkbox.jsx\n│   │   │   ├── layout/\n│   │   │   │   ├── Card.jsx\n│   │   │   │   ├── Container.jsx\n│   │   │   │   └── Grid.jsx\n│   │   │   └── ui/\n│   │   │       ├── Badge.jsx\n│   │   │       ├── Spinner.jsx\n│   │   │       └── Alert.jsx\n│   │   │\n│   │   ├── admin/\n│   │   │   ├── dashboard/\n│   │   │   │   ├── StatisticsCard.jsx\n│   │   │   │   ├── DriversList.jsx\n│   │   │   │   └── RevenueChart.jsx\n│   │   │   └── management/\n│   │   │       ├── DriverManagement.jsx\n│   │   │       └── PromoCodeManager.jsx\n│   │   │\n│   │   ├── driver/\n│   │   │   ├── dashboard/\n│   │   │   │   ├── DeliveryMap.jsx\n│   │   │   │   ├── EarningsCard.jsx\n│   │   │   │   └── StatusToggle.jsx\n│   │   │   └── delivery/\n│   │   │       ├── DeliveryDetails.jsx\n│   │   │       └── NavigationCard.jsx\n│   │   │\n│   │   └── user/\n│   │       ├── orders/\n│   │       │   ├── OrderCard.jsx\n│   │       │   ├── OrderHistory.jsx\n│   │       │   └── TrackingMap.jsx\n│   │       └── profile/\n│   │           ├── ProfileCard.jsx\n│   │           └── AddressBook.jsx\n│   │\n│   ├── context/\n│   │   └── AuthContext.jsx\n│   │\n│   ├── data/\n│   │   └── testAccounts.js\n│   │\n│   ├── locales/\n│   │   ├── en.json\n│   │   └── ar.json\n│   │\n│   ├── pages/\n│   │   ├── admin/\n│   │   │   ├── Dashboard.jsx\n│   │   │   ├── DriversManagement/\n│   │   │   │   ├── DriversList.jsx\n│   │   │   │   ├── DriverDetails.jsx\n│   │   │   │   └── AddDriver.jsx\n│   │   │   ├── Orders/\n│   │   │   │   ├── OrdersList.jsx\n│   │   │   │   └── OrderDetails.jsx\n│   │   │   ├── Promotions/\n│   │   │   │   ├── PromotionsList.jsx\n│   │   │   │   ├── CreatePromotion.jsx\n│   │   │   │   └── EditPromotion.jsx\n│   │   │   ├── Settings/\n│   │   │   │   ├── GeneralSettings.jsx\n│   │   │   │   ├── SecuritySettings.jsx\n│   │   │   │   └── NotificationSettings.jsx\n│   │   │   └── Reports/\n│   │   │       ├── FinancialReports.jsx\n│   │   │       ├── DriverReports.jsx\n│   │   │       └── OrderReports.jsx\n│   │   │\n│   │   ├── driver/\n│   │   │   ├── Dashboard.jsx\n│   │   │   ├── ActiveDelivery.jsx\n│   │   │   ├── DeliveryHistory.jsx\n│   │   │   ├── Earnings/\n│   │   │   │   ├── EarningsSummary.jsx\n│   │   │   │   └── PaymentHistory.jsx\n│   │   │   ├── Profile/\n│   │   │   │   ├── PersonalInfo.jsx\n│   │   │   │   ├── VehicleInfo.jsx\n│   │   │   │   └── Documents.jsx\n│   │   │   └── Settings/\n│   │   │       ├── AccountSettings.jsx\n│   │   │       └── PreferenceSettings.jsx\n│   │   │\n│   │   ├── user/\n│   │   │   ├── Dashboard.jsx\n│   │   │   ├── HomePage.jsx\n│   │   │   ├── Orders/\n│   │   │   │   ├── PlaceOrder.jsx\n│   │   │   │   ├── OrderTracking.jsx\n│   │   │   │   ├── OrderHistory.jsx\n│   │   │   │   └── OrderDetails.jsx\n│   │   │   ├── Profile/\n│   │   │   │   ├── PersonalInfo.jsx\n│   │   │   │   ├── AddressBook.jsx\n│   │   │   │   └── PaymentMethods.jsx\n│   │   │   └── Settings/\n│   │   │       ├── AccountSettings.jsx\n│   │   │       ├── NotificationPreferences.jsx\n│   │   │       └── SecuritySettings.jsx\n│   │   │\n│   ├── auth/\n│   │   │   ├── Login.jsx\n│   │   │   ├── Register.jsx\n│   │   │   ├── ForgotPassword.jsx\n│   │   │   └── ResetPassword.jsx\n│   │   │\n│   │   └── common/\n│   │       ├── NotFound.jsx\n│   │       ├── ServerError.jsx\n│   │       └── Maintenance.jsx\n│   │\n│   ├── App.css\n│   ├── App.test.js\n│   ├── index.css\n│   ├── index.js\n│   ├── logo.svg\n│   ├── reportWebVitals.js\n│   └── setupTests.js\n│\n├── .gitignore\n├── README.md\n├── tailwind.config.js\n└── webpack.config.js\n```\n\n## 🚀 Getting Started\n\n### Prerequisites\n- Node.js (v14 or higher)\n- npm or yarn\n\n### Installation\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/AmirHaytham/ODDS-FE.git\n```\n\n2. Install dependencies:\n```bash\nnpm install\n# or\nyarn install\n```\n\n3. Create environment variables:\n```bash\ncp .env.example .env\n```\n\n4. Start the development server:\n```bash\nnpm start\n# or\nyarn start\n```\n\n## 📝 Environment Variables\n\n```env\nREACT_APP_API_URL=your_api_url\nREACT_APP_GOOGLE_MAPS_KEY=your_google_maps_key\n```\n\n## 🧪 Testing\n\nRun the test suite:\n```bash\nnpm test\n# or\nyarn test\n```\n\n## 🏗 Building for Production\n\n```bash\nnpm run build\n# or\nyarn build\n```\n## 🧪 Test Accounts\n\nUse these credentials to test different user roles:\n\n### Admin Account\n```\nEmail: admin@odds.com\nPassword: admin123\n```\n\n### Driver Account\n```\nEmail: driver@odds.com\nPassword: driver123\n```\n\n### User Account\n```\nEmail: user@odds.com\nPassword: user123\n```\n\nNote: These accounts are for testing purposes only. In production, please use secure credentials.\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famirhaytham%2Fodds-fe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famirhaytham%2Fodds-fe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famirhaytham%2Fodds-fe/lists"}