A scalable full-stack ride-sharing platform that enables users to create, join, and manage rides, while drivers can accept and complete rides with a complete lifecycle system, wallet-based payments, and intelligent ride suggestions.
- Real-world ride booking workflow
- Role-based system (User & Driver)
- Wallet-based payment system
- AI-powered ride suggestions
- Clean modular backend architecture
- Production-style project structure
- User Registration & Login
- Create and manage rides
- Search rides with smart ranking
- Send join requests
- Host approval system (accept/reject requests)
- Wallet system:
- Add money
- Automatic fare deduction
- Transaction history
- View ride history
- Real-time notifications
- Register as driver with vehicle details
- Accept or reject rides
- Ride lifecycle management:
- Accept Ride
- Arrived
- Start Ride
- Complete Ride
- Active ride dashboard
- Integrated wallet-based payment
- Automatic fare splitting among passengers
- Driver receives total fare after ride completion
- Transaction history maintained
- Polling-based real-time notifications
- Covers:
- Join requests
- Request approval/rejection
- Driver actions (accepted, arrived, started, completed)
- AI-based ride suggestions (Gemini API)
- Smart ride search ranking
- Distance-based fare calculation using OpenStreetMap
- Java
- Spring Boot
- Spring Data JPA
- MySQL
- React.js
- Fetch API
- Custom CSS
- OpenStreetMap (distance calculation)
- Gemini API (AI suggestions)
rideshare-backend/ └── src/main/java/com/rideshare/rideshare/ ├── controller ├── service ├── repository ├── model ├── dto └── exception
rideshare-frontend/ └── src/ ├── components ├── pages ├── styles └── App.js
- Open backend project
- Configure database in
application.properties:
spring.datasource.url=jdbc:mysql://localhost:3306/rideshare_db spring.datasource.username=root spring.datasource.password=your_password spring.jpa.hibernate.ddl-auto=update
- Run Spring Boot application
- Navigate to frontend folder
cd rideshare-frontend
- Install dependencies
npm install
- Start React app
npm start
- User creates ride
- Other users send join requests
- Host accepts/rejects requests
- Driver accepts ride
- Driver arrives → starts → completes ride
- Payment processed automatically
- Notifications triggered at every step
- Uses polling instead of WebSockets
- Basic UI (can be enhanced)
- No JWT authentication (planned)
- JWT-based authentication & authorization
- WebSocket real-time updates
- Live ride tracking with maps
- Razorpay payment integration
- Push notifications
- Admin dashboard
Developed by Yash Dabhekar
This project demonstrates strong full-stack development skills with real-world features like ride lifecycle management, wallet-based payments, notifications, and AI integration.