🚗 CatchARide

Have an extra seat on a long car ride? Offer it to a fellow student and save on some gas money!

CatchARide aimed to be a student-to-student rideshare platform where drivers with extra seats could match with passengers headed in a similar direction. Think of it as a smarter, more campus-oriented carpooling app. Despite our team's ambition and creative ideas, the project ultimately didn’t reach MVP due to time constraints and integration difficulties — but we learned a ton in the process.


🎯 Problem Statement

Students often travel between campuses, hometowns, or events, and many drive alone with extra seats. CatchARide's goal was to create a system that connects:

  • Drivers, who post their route and open seats
  • Riders, who enter their ideal pickup and destination points

Our matching algorithm would pair riders to the most optimal drivers, potentially splitting fuel costs and reducing environmental impact.


🧩 MVP Goals

  1. User Authentication
    • Signup/Login
    • OAuth2 using Google accounts
  2. ID Verification
    • Groq + LLaVA for document + face recognition
    • Backup: ONID verification with OTP
  3. Route System
    • Drivers list routes
    • Riders search and reserve seats
  4. Driver-Rider Matching
    • Proximity-based matching
    • Potential integration of optimization algorithms
  5. Map Interface
    • Google Maps API to view and filter routes

🧪 Features Attempted

Feature Status Stack
User Signup/Login ⚠️ Not fully functional React + Google OAuth2
ID Verification ✅ Basic integration in backend Groq (LLaVA-vision) + DeepFace
Map Display ✅ Basic integration in backend Google Maps API
Route Filtering ❌ Not implemented Planned via React filters
Posting Routes (Driver) ⚠️ Partial integration PostgreSQL backend
Route Reservation (Rider) ⚠️ Partial integration PostgreSQL backend
Matching Algorithm ✅ Basic integration in backend Planned: Google Route Optimization API / Hungarian Matching

🔧 Tech Stack

Frontend:

  • React
  • Bootstrap
  • React Icons
  • Google Maps API
  • Google OAuth2

Backend:

  • Flask
  • PostgreSQL

Verification & Matching:


💥 Challenges & Why It Didn’t Work

  • We hate React: None of us like working on frontend, and so while the backend implementation was pretty solid, we didn't have any working frontend besides a landing page.
  • Integration overload: We thought it was simple to implement, but it was not. Route optimization is an extremely hard problem.
  • Lack of planning: Due to a lack of time, we spent significantly less time planning than previous.
  • No time for matching logic: We researched strong algorithms but didn’t have time to implement even a basic version.
  • Coordination: Multiple directions were explored in parallel which diluted focus.
  • Google Maps API: Although set up, real-time integration with routes and user input was incomplete.
  • Poor physiological state: Consistent challenges and lack of sleep slowly destroyed our confidence, energy, and determination. A $50 API charge from Google Maps API completely demoralized one of our teammates.

🤔 Lessons Learned

  • Get a basic version working first (auth + map), then iterate.
  • Plan data models and flows clearly before touching code, and perform better requirements analysis to break the project down into bitesize chunks.
Share this project:

Updates