{"id":28300447,"url":"https://github.com/asif-khan-2k19/quickride","last_synced_at":"2026-04-07T07:44:26.897Z","repository":{"id":293539881,"uuid":"908607585","full_name":"asif-khan-2k19/QuickRide","owner":"asif-khan-2k19","description":"QuickRide is a MERN Stack based ride booking web application that replicates the core functionalities of Uber, OLA, etc. This app includes user and captain registration and login, ride requests, real-time geolocation, fare calculation, and ride management.","archived":false,"fork":false,"pushed_at":"2025-08-13T14:09:25.000Z","size":25704,"stargazers_count":26,"open_issues_count":1,"forks_count":26,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-07T07:44:21.074Z","etag":null,"topics":["express","geolocation-api","googlemaps-api","jwt-auth","mongodb","nodejs","ola-clone","quickride","react","ride-booking-app","ride-hailing","tailwindcss","uber","uber-clone"],"latest_commit_sha":null,"homepage":"https://quick-ride-asif.vercel.app/?source=github","language":"JavaScript","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/asif-khan-2k19.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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}},"created_at":"2024-12-26T13:44:56.000Z","updated_at":"2026-03-31T10:07:49.000Z","dependencies_parsed_at":"2025-08-12T17:29:25.435Z","dependency_job_id":null,"html_url":"https://github.com/asif-khan-2k19/QuickRide","commit_stats":null,"previous_names":["asif-khan-2k19/quickride"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/asif-khan-2k19/QuickRide","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asif-khan-2k19%2FQuickRide","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asif-khan-2k19%2FQuickRide/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asif-khan-2k19%2FQuickRide/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asif-khan-2k19%2FQuickRide/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/asif-khan-2k19","download_url":"https://codeload.github.com/asif-khan-2k19/QuickRide/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asif-khan-2k19%2FQuickRide/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31504897,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["express","geolocation-api","googlemaps-api","jwt-auth","mongodb","nodejs","ola-clone","quickride","react","ride-booking-app","ride-hailing","tailwindcss","uber","uber-clone"],"created_at":"2025-05-23T16:23:01.871Z","updated_at":"2026-04-07T07:44:26.872Z","avatar_url":"https://github.com/asif-khan-2k19.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"/Frontend//public/logo-quickride-green.png\" height=\"100px\" \u003e\n\u003c/div\u003e\n\n# QuickRide - Full Stack Ride Booking Application\n\nQuickRide is a feature-rich project built using modern web technologies. It replicates the core features and functionalities of the existing ride booking platforms, including **user authentication**, **ride booking**, **real-time location tracking**, **fare calculation** and **real-time communication**. The application features a clean and responsive user interface, ensuring an intuitive user experience. Designed as a learning and portfolio project, it showcases skills in **frontend and backend development, API integration, and real-time features**.\n\n\n---\n\n⭐ **If you found this project helpful or interesting, please consider giving it a star on [GitHub](https://github.com/asif-khan-2k19/QuickRide)! It helps others discover the project and keeps me motivated to improve it.** ⭐\n\n---\n\n## 📚 Table of Contents\n\n1. [Tech Stack](#tech-stack)\n2. [Features](#features)\n3. [Screenshots](#screenshots)\n4. [Quick Start](#quick-start)\n5. [Environment Variables](#environment-variables)\n6. [Contributing](#contributing)\n7. [License](#license)\n\n---\n\n## ⚙️ Tech Stack\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://skillicons.dev/icons?i=html,css,js,react,nodejs,express,mongo,tailwind,gcp,npm,vercel,git,gmail,postman\u0026perline=7\" /\u003e\n\u003c/p\u003e\n\n| **Category**       | **Technologies / Tools**                                              |\n| ------------------ | --------------------------------------------------------------------- |\n| **Frontend**       | HTML, CSS, React.js, Tailwind CSS, Google Maps                        |\n| **Backend**        | Node.js, Express.js, MongoDB, Socket IO, NodeMailer, Google Maps APIs |\n| **Authentication** | JWT (JSON Web Token), bcrypt                                          |\n| **Deployment**     | Vercel, Render                                                        |\n| **Dev Tools**      | Postman, npm, Nodemon, ESLint, Custom Logger                          |\n\n\n---\n\n## ✨ Features\n\n### 🔐 Authentication \u0026 Authorization\n\n- Secure email/password login with full form validation\n- Email verification and logout functionality\n- Forgot and change password support\n- Role-based access control (User and Captain)\n- Session handling and route protection (unauthorized access is blocked)\n\n### 🧑🏻 User Management\n\n- Edit personal profile details (name, email, phone)\n- Ride history tracking\n- Form validation for all user inputs\n\n### 📍 Location \u0026 Mapping\n\n- Pickup and destination selection with address auto-complete\n- Real-time location tracking on interactive maps\n- Route visualization with distance and estimated time calculation\n\n### 🚖 Ride Booking System\n\n- Supports multiple ride types: Car, Bike, and Auto\n- Live ride status updates: Pending, Accepted, Ongoing, Completed, Cancelled\n- Concurrency control: A ride request can only be accepted by one captain\n- Automatic ride cancellation after timeout\n- Accurate fare estimation based on distance and time\n\n### 🔄 Real-Time Updates\n\n- Socket-based updates for ride status and live locations\n- Real-time in-app chat between rider and captain\n- Chat messages are stored in the database with timestamps\n- Access control ensures only assigned rider and captain can view the conversation\n\n### 👨‍✈️ Captain (Driver) Interface\n\n- Accept or reject incoming ride requests\n- Real-time updates for trip progress\n- Role-specific access to ride-related actions\n\n### 🧰 System Utilities\n\n- Custom logger to persist frontend and backend logs in the database\n- Force reset feature to clear all local app data and recover from unstable states\n- Popup alert system for immediate feedback (success, error, warning)\n\n---\n\n## 🖼️ Screenshots\n\n\u003cdetails\u003e\n\u003csummary\u003eAuthentication\u003c/summary\u003e\n\n![User Auth](./Frontend/public/screens/user-auth.png)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eSidebar Navigation\u003c/summary\u003e\n\n![Sidebar](./Frontend/public/screens/sidebar.png)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eUser Module\u003c/summary\u003e\n\n![User Module](./Frontend/public/screens/user-module.png)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eCaptain Module\u003c/summary\u003e\n\n![Captain Module](./Frontend/public/screens/captain-module.png)\n\n\u003c/details\u003e\n\n---\n\n## ⚡ Quick Start\n\n### 📁 Project Structure\n\n```\n\n📂 Backend      // Node.js + Express server\n📂 Frontend     // React.js application\n\n```\n\n### 1. Clone the Repository\n\n```bash\ngit clone https://github.com/asif-khan-2k19/QuickRide.git\ncd QuickRide\n```\n\n### 2. Install Dependencies\n\n#### Frontend\n\n```bash\ncd Frontend\nnpm install\n```\n\n#### Backend\n\n```bash\ncd ../Backend\nnpm install\n```\n\n### 3. Run the Application\n\n#### Frontend (React + Vite)\n\n```bash\nnpm run dev\n```\n\n#### Backend (Node.js + Express)\n\n```bash\nnpm run dev\n```\n\n### 4. Open the App\n\n- **Frontend**: [http://localhost:5173](http://localhost:5173)\n- **Backend**: [http://localhost:3000](http://localhost:3000)\n\n---\n\n## 🌐 Environment Variables\n\nCreate `.env` files in both `Frontend/` and `Backend/` directories.\n`.env.example` files are already present in the folders.\n\n### Frontend `.env`\n\n```env\nVITE_SERVER_URL=http://localhost:3000\nVITE_ENVIRONMENT=development\nVITE_RIDE_TIMEOUT=90000\n```\n\n### Backend `.env`\n\n```env\nPORT=3000\nRELOAD_INTERVAL = 10\nSERVER_URL=http://localhost:3000\nCLIENT_URL=http://localhost:5173\nENVIRONMENT=development\nMONGODB_PROD_URL=\u003cyour-mongodb-atlas-url\u003e\nMONGODB_DEV_URL=mongodb://127.0.0.1:27017/quickRide\nJWT_SECRET=\u003cyour-jwt-secret\u003e\nGOOGLE_MAPS_API=\u003cyour-google-maps-api-key\u003e\nMAIL_USER=\u003cyour-gmail-id\u003e\nMAIL_PASS=\u003cyour-app-password\u003e\n```\n\n---\n\n## 🤝 Contributing\n\nWe welcome community contributions! To contribute:\n\n1. Star this repository\n2. Fork this repository\n3. Create a new branch (`git checkout -b feature/YourFeature`)\n4. Commit your changes (`git commit -m 'Add your feature description...'`)\n5. Push to the branch (`git push origin feature/YourFeature`)\n6. Create a Pull Request\n\n---\n\n## 📝 License\n\nThis project is licensed under the [MIT License](LICENSE).\n\n---\n\n**Ready to contribute? Let’s build something amazing together.**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasif-khan-2k19%2Fquickride","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fasif-khan-2k19%2Fquickride","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasif-khan-2k19%2Fquickride/lists"}