A full-stack ride-sharing application with real-time ride tracking, driver-user matching, fare calculation, and authentication. Built with MERN stack (MongoDB, Express, React, Node.js) and Socket.IO for real-time communication.
- 📸 UI Screenshots
- ✨ Key Features
- 🛠️ Installation
- 🚀 Usage
- 🔒 Protected Routes
- 🌐 Real-Time Features
- 🛠️ Technologies Used
- 📄 License
| User Login | User Signup | Ride Booking |
|---|---|---|
![]() |
![]() |
![]() |
| Active Ride (User) | Driver Home | Driver Ride Panel |
|---|---|---|
![]() |
![]() |
![]() |
- ✅ User registration/login/logout
- 📍 Address autocomplete suggestions
- 🚗 Ride booking with fare estimation
- 🗺️ Real-time ride tracking
- 🔒 Protected routes with JWT authentication
- ✅ Driver registration/login/logout
- 📍 Real-time location sharing (every 10 seconds)
- 🔔 Ride request notifications
- 🛣️ Ride confirmation/start/end workflows
- 💵 Fare calculation based on distance
-
Clone repo:
git clone https://github.com/WizardOfDigits/Uber_Like_App.git
-
Create
.envfile:# Backend env PORT=<your port> DB_CONNECT=<mongodb:url> JWT_SECRET=<JWT_SECRET_KEY> MAPS_API=<Map api / or other map api># frontend env VITE_BASE_URL=<Base Url> VITE_MAP_API_URL=<Enter Map API URL here>
- Sign Up/Login at
/login - Enter pickup/destination addresses
- Select vehicle type (Auto/Car/Motorcycle)
- Confirm fare and request ride
- Track driver in real-time
- Sign Up/Login at
/driver-login - Receive ride requests via Socket.IO
- Confirm/Reject rides
- Start/End rides with OTP verification
- Update location automatically
// Usage in React Router
<Route element={<UserProtectWrapper />}>
<Route path="/home" element={<Home />} />
<Route path="/riding" element={<Riding />} />
</Route><Route element={<DriverProtectWrapper />}>
<Route path="/driver-home" element={<DriverHome />} />
<Route path="/driver-riding" element={<DriverRiding />} />
</Route>-
Socket.IO Events:
// User receives updates socket.on("ride-confirmed", (ride) => {...}); socket.on("ride-started", (ride) => {...}); // Driver receives requests socket.on("new-ride", (data) => {...});
- Frontend: React, GSAP (animations), Socket.IO Client
- Backend: Express.js, MongoDB, Mongoose, JWT
- Mapping: Google Maps API
- Real-Time: Socket.IO
MIT License - see LICENSE for details.





