Looking for a car
in Morocco, taxis are the most common way of transportation. Taxi sharing encourages affordable transportation and reduces environmental impact. Sometimes, it may be hard for passengers to find a taxi going to the desired destination or with empty seats, or often rides take much longer than expected due to delays filling all seats or stops along the way, and security is a concern, especially for women.
uRideBetter is an App developed with the objective of improving the taxi sharing experience in Morocco. Divided in two type of users -riders and drivers- uRideBetter makes shared rides faster, safer, and more cost and time efficient for taxi drivers and their riders.
Drivers can increase their exposure to riders, avoiding the need to wait for a long periods of time on the same location to fill seats.
When a driver is using uRideBetter all riders users nearby can see the taxi’s more updated information, drivers can update the amount of riders on the taxi and the destination at any time.
Riders can request a ride to any taxi nearby, drivers will have to accept the request and then, the rider will be automatically inserted into the selected taxi’s passengers list for the ride. Riders, are also provided with the driver's contact information in case they want to use the app just to find nearby drivers.
Riders can use uRideBetter to find or schedule taxis for pickup from the Tramway stops, on route, or via detour.
Safety of riders and drivers was one of the key in the design of uRideBetter. Users need to be authenticated in order to use this app -via Facebook- helping riders choose their taxi co-riders and drivers. Riders are constantly receiving feedback at the end of the ride from each passenger helping passengers know previous experiences with each individual driver.
For women riders uRideBetter gives you the ability to know the sex of every co-rider in the taxi even if they are not using the app -drivers can insert unknown passengers-.
Another feature to improve safety is the “Panic Button” inserted into the home screen whenever a ride is happening, this button will alert a previously set contact information via email with the user’s current location and the information of all passengers on the taxi.
How we built it
The most important part of the project is the backend, because provide all the endpoints for the clients, currently we have 3 kind of client: Android app, IOS app and a web page. We based our backend on NodeJS because is one of the most popular alternatives and has a strong community, also because we were looking to unify all used technologies on the same language ( our apps are hybrids and based on Ionic Framework v2 and the web page is also built on top of Ionic 2 ). Our database is on MongoDB to provide high flexibility and the high performance required on this social network. We deploy our backend using Docker to have a high efficiency and availability. In the following list we explain all the components used:
- Infrastructure supported by Docker
- Base code in NodeJS
- Web application framework in Express
- Database using MongoDB
- Data object modeling Mongoose
- Real time updates Socket.IO
- Web framework Ionic 2
Accomplishments we are proud of
uRideBetter intends to be a tool, easy to use, in real-time, multi language, intuitive, and adjustable to your needs in order to make shared rides in Morocco faster, safer, and more cost and time efficient for taxi drivers and their riders.
What we learned
The workarounds and solutions of the challenges we found has made use grow as programmers and friends working together. Although, we have a lot of things to improve/add to this project.
What's next for uRideBetter
- Pre-defined routes.
- Custom stops.
- Multiple ways to login.
- Interactive maps.
- Better integration with Google Maps.
- Improve the Arabic translation.
- Improve the real-time features.
- OpenXC integration