https://github.com/asif-khan-2k19/quickride
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.
https://github.com/asif-khan-2k19/quickride
express geolocation-api googlemaps-api jwt-auth mongodb nodejs ola-clone quickride react ride-booking-app ride-hailing tailwindcss uber uber-clone
Last synced: about 2 months ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/asif-khan-2k19/quickride
- Owner: asif-khan-2k19
- License: mit
- Created: 2024-12-26T13:44:56.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-08-13T14:09:25.000Z (10 months ago)
- Last Synced: 2026-04-07T07:44:21.074Z (about 2 months ago)
- Topics: express, geolocation-api, googlemaps-api, jwt-auth, mongodb, nodejs, ola-clone, quickride, react, ride-booking-app, ride-hailing, tailwindcss, uber, uber-clone
- Language: JavaScript
- Homepage: https://quick-ride-asif.vercel.app/?source=github
- Size: 24.5 MB
- Stars: 26
- Watchers: 1
- Forks: 26
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# QuickRide - Full Stack Ride Booking Application
QuickRide 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**.
---
β **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.** β
---
## π Table of Contents
1. [Tech Stack](#tech-stack)
2. [Features](#features)
3. [Screenshots](#screenshots)
4. [Quick Start](#quick-start)
5. [Environment Variables](#environment-variables)
6. [Contributing](#contributing)
7. [License](#license)
---
## βοΈ Tech Stack
| **Category** | **Technologies / Tools** |
| ------------------ | --------------------------------------------------------------------- |
| **Frontend** | HTML, CSS, React.js, Tailwind CSS, Google Maps |
| **Backend** | Node.js, Express.js, MongoDB, Socket IO, NodeMailer, Google Maps APIs |
| **Authentication** | JWT (JSON Web Token), bcrypt |
| **Deployment** | Vercel, Render |
| **Dev Tools** | Postman, npm, Nodemon, ESLint, Custom Logger |
---
## β¨ Features
### π Authentication & Authorization
- Secure email/password login with full form validation
- Email verification and logout functionality
- Forgot and change password support
- Role-based access control (User and Captain)
- Session handling and route protection (unauthorized access is blocked)
### π§π» User Management
- Edit personal profile details (name, email, phone)
- Ride history tracking
- Form validation for all user inputs
### π Location & Mapping
- Pickup and destination selection with address auto-complete
- Real-time location tracking on interactive maps
- Route visualization with distance and estimated time calculation
### π Ride Booking System
- Supports multiple ride types: Car, Bike, and Auto
- Live ride status updates: Pending, Accepted, Ongoing, Completed, Cancelled
- Concurrency control: A ride request can only be accepted by one captain
- Automatic ride cancellation after timeout
- Accurate fare estimation based on distance and time
### π Real-Time Updates
- Socket-based updates for ride status and live locations
- Real-time in-app chat between rider and captain
- Chat messages are stored in the database with timestamps
- Access control ensures only assigned rider and captain can view the conversation
### π¨ββοΈ Captain (Driver) Interface
- Accept or reject incoming ride requests
- Real-time updates for trip progress
- Role-specific access to ride-related actions
### π§° System Utilities
- Custom logger to persist frontend and backend logs in the database
- Force reset feature to clear all local app data and recover from unstable states
- Popup alert system for immediate feedback (success, error, warning)
---
## πΌοΈ Screenshots
Authentication

Sidebar Navigation

User Module

Captain Module

---
## β‘ Quick Start
### π Project Structure
```
π Backend // Node.js + Express server
π Frontend // React.js application
```
### 1. Clone the Repository
```bash
git clone https://github.com/asif-khan-2k19/QuickRide.git
cd QuickRide
```
### 2. Install Dependencies
#### Frontend
```bash
cd Frontend
npm install
```
#### Backend
```bash
cd ../Backend
npm install
```
### 3. Run the Application
#### Frontend (React + Vite)
```bash
npm run dev
```
#### Backend (Node.js + Express)
```bash
npm run dev
```
### 4. Open the App
- **Frontend**: [http://localhost:5173](http://localhost:5173)
- **Backend**: [http://localhost:3000](http://localhost:3000)
---
## π Environment Variables
Create `.env` files in both `Frontend/` and `Backend/` directories.
`.env.example` files are already present in the folders.
### Frontend `.env`
```env
VITE_SERVER_URL=http://localhost:3000
VITE_ENVIRONMENT=development
VITE_RIDE_TIMEOUT=90000
```
### Backend `.env`
```env
PORT=3000
RELOAD_INTERVAL = 10
SERVER_URL=http://localhost:3000
CLIENT_URL=http://localhost:5173
ENVIRONMENT=development
MONGODB_PROD_URL=
MONGODB_DEV_URL=mongodb://127.0.0.1:27017/quickRide
JWT_SECRET=
GOOGLE_MAPS_API=
MAIL_USER=
MAIL_PASS=
```
---
## π€ Contributing
We welcome community contributions! To contribute:
1. Star this repository
2. Fork this repository
3. Create a new branch (`git checkout -b feature/YourFeature`)
4. Commit your changes (`git commit -m 'Add your feature description...'`)
5. Push to the branch (`git push origin feature/YourFeature`)
6. Create a Pull Request
---
## π License
This project is licensed under the [MIT License](LICENSE).
---
**Ready to contribute? Letβs build something amazing together.**