Projects / 04
Ryde
Sharing a ride, from route to payment.
- My role
- Full-stack development
- Scope
- Nexolve Hackathon project
- Built with
- React · Express · MongoDB · Google Maps · Socket.io · Razorpay
- Platform
- Web · Hackathon prototype
- Repository
- Public
Built a full-stack ride-sharing project for the Nexolve Hackathon, working across the React interface and backend trip, request, and integration flows.
A note on the work,
and the choices behind it.
The problem
A shared ride involves more than matching two places on a map. Drivers need to publish their route and available seats, riders need to request a place, and both sides need a way to coordinate the journey and its fare.
Ryde brings those steps into a ride-sharing prototype built for the Nexolve Hackathon, where the project won.
The ride lifecycle
The React interface connects to an Express API backed by Mongoose models for trips, drivers, vehicles, ride requests, and payments. A driver creates a trip with a route, departure time, fare, and seat count.
Riders send requests that a driver can accept or reject. Acceptance updates the trip’s seats and participants, and generates an OTP checked when the ride starts. Ride and payment states are stored separately so the interface can follow the journey through completion.
Maps and finding a trip
Google Maps displays the route using the Directions service. The backend includes coordinate-based search with MongoDB 2dsphere indexes and a destination-distance filter.
The frontend currently fetches the trip list and filters it by pickup and destination address. Connecting this interface to the backend’s geographic search is a next step.
Chat and shared payments
Socket.io carries messages between users while MongoDB stores the conversation history. Razorpay payment-link creation splits a total equally between riders, and payment-event handling updates the stored payment and ride-request status.
The payment flow was implemented for the hackathon prototype and depends on Razorpay credentials and callback configuration.