Featured Project · Senior Design
RideMatch
RideMatch is a completed prototype that replaces automatic driver assignment with a rider-controlled, preference-based matching experience. Riders can browse compatible available drivers and choose who they request rather than receiving an automatic assignment.



Overview
A More Personal and Transparent Rideshare Experience
RideMatch is a multi-interface rideshare prototype created by a three-person engineering senior-design team. Its purpose is to make rides more personalized and transparent by allowing riders to choose among compatible available drivers instead of receiving an automatic assignment.
The team delivered separate Rider and Driver Flutter applications, a browser-based Flask administrative portal, shared Python services, and a MySQL database. The working prototype has been tested locally and demonstrates the product concept across its connected, role-based workflows.
Although the senior-design prototype is complete, my work on RideMatch is continuing. Our team continues to gather feedback from potential users, use those insights to guide improvements, and prepare the application for deployment. Production readiness will also require additional work across hosting, security, privacy, payments, mapping, monitoring, and broader device testing.
“RideMatch replaces automatic driver assignment with a rider-controlled, preference-based matching experience.”
My role
My Role: Team Lead and Full-Stack Developer
RideMatch was a collaborative three-person project with responsibilities rotating across the Rider, Driver, Admin, backend, and database components. As team lead, I coordinated tasks, development progress, documentation, and the GitHub workflow while contributing directly to implementation.
My primary technical work included the administrative web panel, preference-based matching rules, ride-flow support, event logging, testing, debugging, and final system integration.
- Established and maintained the team’s GitHub workflow
- Coordinated project tasks, meetings, and development progress
- Built basic administrative dashbaord
- Implemented driver review, approval, and denial workflows
- Contributed to rider-driver matching rules
- Supported ride-request and ride-progression flows
- Added event logging and supported automated and end-to-end testing
- Contributed to documentation, debugging, and final integration
Core experience
From Account Creation to a Completed Ride
- 1A rider or driver creates an account and signs in.
- 2A new driver passes the administrative review workflow before activation.
- 3A rider selects pickup and destination locations.
- 4The system finds approved, available drivers using location and ride criteria.
- 5Preference-based matching compares rider priorities with driver characteristics and shared preferences.
- 6The rider browses drivers with a swipe-based interface.
- 7A selected driver receives the request and can accept or decline it.
- 8An accepted request moves through the ride lifecycle.
- 9Completed rides are saved to history and can support ratings, reviews, payments, and tips.
- 10Administrators can monitor accounts, driver applications, trip activity, reviews, analytics, and platform settings.
Key features
Preference-Based Matching Across Three Roles
- Rider-controlled driver selection
- Swipe-based driver browsing
- Prioritized ride-preference categories
- Shared-preference and recommendation indicators
- Pickup and destination search
- Current-location and map support
- Driver availability and request dispatch
- Ride-request response window
- Role-based Rider, Driver, and Admin access
- Driver verification and approval
- Ride lifecycle and trip history
- Rider and driver ratings
- Driver earnings, fares, and tips
- Administrative analytics and settings
- Authentication and protected routes
- Event logging
- Automated and cross-client testing
Mapping, location, payments, notifications, and real-time communication depend on local configuration or third-party test services; the prototype does not claim production reliability for those integrations.
Architecture
Role-Specific Clients, Shared Platform Logic
Rider Flutter App
Pickup and destination planning, ride preferences, driver browsing, requests, trip progress, history, and feedback.
Driver Flutter App
Availability, ride-request responses, lifecycle updates, rider communication, ratings, fares, tips, and income views.
Shared Python Services
REST-style APIs and Socket.IO events connect mobile clients to matching, trip, payment, and communication logic.
MySQL Database
Shared relational data for accounts, verification, preferences, rides, ratings, payments, and administrative activity.
Flask Admin Portal
Protected browser interface for driver review, accounts, analytics, platform settings, and oversight.
Engineering process
Iterating from Low-Fidelity Designs to a Connected Prototype
Product screens
Rider and Driver Workflows






Challenges and learning
Building Across Mobile, Web, API, and Data Layers
Learning Flutter While Building
The team learned mobile development and Flutter while delivering functional Rider and Driver experiences, requiring focused research, experimentation, and iteration.
Coordinating Shared State
Rider, Driver, Admin, API, and database components needed consistent rules for matching, requests, ride progression, ratings, payments, and account state.
Scoping a Production-Scale Idea
The team balanced the original concept with the time, cost, privacy, security, third-party service, and deployment constraints of a senior-design prototype.
The project strengthened my full-stack integration, mobile development, relational-data, testing, technical-leadership, project-coordination, and role-based system-design skills.
Limitations and future work
From Successful Prototype to Production Service
RideMatch met its senior-design goal as a completed working prototype. We are currently working on deploying it as a real rideshare service which would require:
- Cloud hosting and production database infrastructure
- Secure secret and environment management
- More extensive privacy and security review
- Production-grade mapping and real-time location services
- Hardened payment workflows
- Broader device and platform testing
- iOS and Android app-store deployment
- Monitoring, scalability, and operational support
Completed senior-design prototype