Back
Home
MFM instore App
Overview

RideShare is a carpooling app that connects drivers and passengers for shared rides, reducing costs and environmental impact. Unfortunately, it is a closed-out project, meaning that this initiative had to be terminated before it could be fully realized.

rideshare carpooling app basic working diagram
Basic working diagram
Inspiration

When I started building the app, I knew its core feature had to be centered around ride-sharing. Initially, I searched for open-source code and gathered ideas from existing carpooling apps on the market. However, I couldn't find suitable open-source resources, so I decided to develop the entire app from scratch. The main challenge was figuring out a major functionality: how to efficiently match drivers with passengers?

Verve pos flow
Basic flow of the app
Solving one piece at a time

The initial solution was to match passengers with drivers based on their location names. For instance, if a driver was traveling from State A to State B and a passenger also needed to go from State A to State B, they could share the same ride. However, this approach encountered a problem when two states shared a border. Drivers from a different state wouldn't show up in the search results, even if they were close by and the distance between them was relatively small.

To address this issue, the solution emerged in the form of using longitude and latitude coordinates to determine and display available rides. This way, passengers and drivers could be matched based on their precise geographic locations, allowing for more accurate and efficient ridesharing arrangements regardless of state borders or proximity.

pos app sketch
Firestore document for rides available
Reading the map

To handle location functionality, I explored various open-source libraries but ultimately decided to use a library called react-native-google-places-autocomplete. This library required an API key for Google Maps integration. Once I obtained the API key, the next step was to save location data securely. For this purpose, I utilized Firebase's built-in database, Firestore, to efficiently store and manage location-related information within the carpooling app.

pos app sketch

After storing data in Firebase, I opted to use Firebase's range queries for location comparisons. However, Firebase's range queries have limitations, and I encountered an issue where they only supported limited range-based queries. As a result, I had to manually calculate the location range to work around this limitation. This involved implementing custom logic to determine and filter nearby locations within the app.

pos app sketch
Creating harmony in motion

After ensuring functionality, we focused on improving the app's visual appeal. Collaborating with another team member, we adopted the same principle: tackling one aspect at a time.

Our goal was to create a straightforward and user-friendly design, emphasizing simplicity throughout the development process.

pos app launch
launching & learning

Before launching the app, it was unfortunately closed due to other project priorities. The journey of booking rides and completing the app was left unfinished. However, the experience taught us valuable lessons that propelled us forward, like seeds of wisdom planted in fertile soil.

pos app sketch
Some extra screens of the app
Improvement

If given more time or resources, here's what I would do:
I believe the most critical use case of the app can be significantly improved by recalculating distances instead of directly comparing location coordinates. This approach promises enhanced accuracy and efficiency in connecting users for shared rides.

Other applications

I've also developed a side project. Happening24 is a news aggregator web app that curates news from different sources.

Happening24