A scalable, real-time ride-sharing application built with a Microservices-ready architecture using Spring Boot and React.
QuickLift is a comprehensive mobility solution designed to simulate real-world ride-hailing scenarios. It features distinct interfaces for Riders, Drivers, and Administrators, utilizing JWT authentication for security and WebSockets for real-time ride status updates.
The project demonstrates proficiency in building RESTful APIs, handling complex state management on the frontend, and managing relational data with Hibernate/JPA.
| User Dashboard | Driver Dashboard |
|---|---|
| Pofile Settings | Admin Analytics |
|---|---|
- Framework: Spring Boot 3.x
- Language: Java 21
- Database: PostgreSQL via Spring Data JPA
- Security: Spring Security + JWT (Stateless Authentication)
- Real-time: WebSocket (STOMP) for driver-user pairing
- Build Tool: Maven
- Library: React.js (Vite)
- Styling: Tailwind CSS + Lucide Icons
- State Management: Context API (simulating Redux patterns)
- HTTP Client: Axios
- Real-time Booking: Instant ride requests broadcasted to nearby drivers using WebSockets.
- Flexible Payments: Supports simulated Card, UPI, and Cash workflows.
- Trip History: Persistent storage of past rides with fare breakdowns and status tracking.
- Interactive Dashboard: A "Hot-switch" side panel to toggle between Active Trips, Requests, and Earnings.
- Request Management: Real-time Accept/Reject functionality with optimistic UI updates.
- Earnings Tracker: Visualized summary of daily and total revenue.
- User Management: Full CRUD capabilities for Users and Drivers.
- System Health: Analytics on total trips, active users, and platform revenue.
- Java: JDK 21+
- Node.js: v16+
- Database: PostgreSQL (Ensure service is running)
The backend runs on port 8080 by default.
-
Configure Database:
Update
src/main/resources/application.propertieswith your credentials:spring.datasource.url=jdbc:postgresql://localhost:5432/quicklift_db spring.datasource.username=your_username spring.datasource.password=your_password
-
Run Application (Backend)
cd backend # Run using Maven Wrapper (No install needed) ./mvnw spring-boot:run
The frontend runs on port 5173 by default.
cd frontend
# Install dependencies
npm install
# Create environment file
echo "VITE_API_BASE_URL=http://localhost:8080" > .env
echo "VITE_WS_BASE_URL=ws://localhost:8080/ws" >> .env
# Start the dev server
npm run dev quicklift/
├── backend/
│ ├── src/main/java/com/quicklift/
│ │ ├── config/ # Security (JWT) & WebSocket Config
│ │ ├── controller/ # REST Controllers & API Endpoints
│ │ ├── model/ # JPA Entities & DTOs
│ │ ├── service/ # Business Logic & Transaction Management
│ │ └── repository/ # Data Access Layer (Spring Data JPA)
│ └── pom.xml
├── frontend/
│ ├── src/
│ │ ├── components/ # Reusable UI Components (Cards, Modals)
│ │ ├── pages/ # Dashboard Views & Route Pages
│ │ ├── context/ # AuthContext & SocketContext
│ │ └── assets/ # Images & Static Files
│ └── package.json
└── README.md-
Integration with Google Maps API for live location tracking.
-
Microservices decomposition (separate Auth, Trip, and Payment services).
-
Docker support for containerized deployment (Dockerfile & Compose).
-
JUnit 5 Testing coverage for critical business logic.