Skip to content

Technical walkthrough of the Ridemama platform, showcasing its architecture, design decisions, and engineering challenges.

License

Notifications You must be signed in to change notification settings

RideMama/ridemama-walkthrough

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 

Repository files navigation

RideMama

Ridemama Logo

Simplifying Campus Commutes - One Ride at a Time.

Live Site

Ridemama is a student-focused ride-sharing platform built to make daily commutes easier for students whose colleges are far from city centers. It aims to solve the challenges of finding instant rides, reducing daily bus struggles, and enabling smoother, more affordable transportation options.

📋 What's this repo for?

Because the main codebase is private, this repo serves as a technical walkthrough—showing architecture, build decisions, and the roadblocks we hit—without exposing source code.

🚀 Key Features

  • Host your own car: Share your ride with fellow students
  • Find rides at your preferred time: Flexible scheduling that fits your timetable
  • Affordable, constant prices: No surge pricing regardless of traffic conditions
  • Route selection flexibility: Choose the best route for your journey
  • Direct payments: Seamless transactions between riders and hosts
  • Simple, student-friendly interface: Designed with campus commuters in mind

🏗️ System Architecture

High-level architecture for RideMama

Ridemama System Architecture

The platform is broken into separate services to keep things modular and easy to scale. Key parts include:

  • Frontend client application
  • Backend API services
  • Database layer
  • Third-party integrations (Maps, Payments, Messaging)

🗂️ High-Level DB Schema

Ridemama Database ERD

Our MongoDB schema includes these primary collections:

  • Users (riders and hosts)
  • Rides (scheduling, routing)
  • Payments (transactions)
  • Vehicles (Registered vehicles)
  • Report (reports and feedback)

⚙️ Tech Stack

Component Technologies
Frontend TypeScript, Next.js, Tailwind CSS
Backend Node.js, Express.js
Database MongoDB (Atlas)
Maps Ola Maps by Krutrim
Payments Razorpay
Messaging Twilio WhatsApp Messaging
Authentication JWT
Hosting DigitalOcean Droplets
Image Storage AWS S3
Tooling and CI Zod, Docker, GitHub Actions for CI/CD

🔭 Future Improvements

Feature Priority Notes
WebSocket Integration High Real-time ride updates
TypeScript Backend Migration Medium Better type safety and maintainability
RC and DL API Integration High For automated vehicle verification
Cross-Platform App Low Mobile-first approach
Bike Registration Low Pending insurance and regulatory approval

📸 Screenshots

Home Screen

Ridemama Home Screen

Settings

Settings Screen

Host route Selection

Host Route Selection

Host Dashboard

Host Dashboard

Available rides

Available Rides

Active rider page

Active Rider Page

Payment Interface

Payment Interface

🛠️ Things We Had to Figure Out

Handling real-time updates

Ridemama started as a simple side project, so we initially built it on a basic HTTP server. However, as the platform grew, we needed real-time features like live ride statuses and instant booking updates for a better user experience.

Integrating WebSockets turned out to be more complex than expected, given our current architecture. As a quick workaround, we opted for polling, which, while not the most efficient, handles our current traffic levels reasonably well.

That said, we plan to revisit this as the platform scales, potentially integrating WebSockets, server-sent events (SSE), or WebRTC for a more robust solution.

Deployments

Initially, we handled Docker builds and deployments on our DigitalOcean droplet manually, which involved resizing droplets, managing SSH keys, and restarting services — a slow and error-prone process.

We solved this by implementing a CI/CD pipeline using GitHub Actions, automating the entire process. This reduced manual steps, minimized errors, and significantly sped up deployments, making the whole workflow much smoother and more reliable.

📚 Lessons Learned

  • Simplify first, optimise later — early over-engineering would have stalled us.
  • Automating deploys early saved us a ton of time later. CI/CD felt like overkill at first, but it helped avoid a lot of small mistakes.
  • Real-time features are harder than they look — we’re holding off on WebSockets until we have a clearer use case.

👥 Contributors

Suryatej
Suryatej
Harshith
Harshith
Dhanush
Dhanush
Pavan
Pavan

📜 License

MIT License - See LICENSE file for details.

🔗 Links and References

🧩 Contributing

This repo is read-only for now, but we’re open to ideas, suggestions, or collabs — feel free to raise issues or reach out via LinkedIn.

🌱 Stay Connected

Join the Ridemama journey and connect with us

Follow the journey as we continue to improve Ridemama and expand its reach.


About

Technical walkthrough of the Ridemama platform, showcasing its architecture, design decisions, and engineering challenges.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •