The homepage of 91lyft
Medically emergent transportation can be costly, and while still very important for life threatening situations, is not always required for those who just need to be seen by a medical professional.
An alternative to using traditional medical transportation could be to use a ride sharing service like Lyft. If someone is in need of non-life threatening medical attention, that only warrants a place like Urgent Care (as opposed to the emergency room) and are unable to drive themselves due to injury and/or don't have anyone around to drive them, why should that person have to use an ambulance which can cost them hundreds of dollars? That is where 91lyft comes in to make this process much easier, cheaper, and quicker for the user in need of medical attention.
What it does
The project is a cross-platform mobile app written in Ionic which integrates with the Lyft API and Google Maps API to streamline the "request-a-ride" process with Lyft, and display the status of your request on an instance of Google Maps, all at the press of a button. Of course, in order to use Lyft the user must already have an account with Lyft, so they will need to do an initial one-time login to the app. Once logged in, the app displays the nearest urgent care and a button to start the process is displayed. All the user needs to do is press this button to submit to Lyft the ride request to go from wherever that user is to the closest urgent care so that the user can receive the medical attention he or she needs, all while saving lots of time and money and not putting him or herself into a dangerous situation by attempting to provide transportation him or herself.
How we built it
The project is composed of a frontend and backend. The frontend was built using Ionic to create a hybrid app that works on both android and iOS. Ionic uses Angular 2+ under the hood for development of the views. Inside the views we use the Google Maps API to both poll for the closest urgent care to the user, and then display the location of the user, the location of that urgent care, and the shortest path between the two (that, presumably, your driver will take). In addition, once a ride has been accepted the map updates to show the location and details of the driver. The backend was built using node and express, but written using typescript. Using n-swag we compiled the projects swagger specification into common models that can be shared between the frontend and backend. This allows the front end to make almost RPC-like requests to the backend without having to use HTTP directly anywhere. Using this methodology allowed us to quickly and efficiently rollout changes to the API and immediately see those changes in the frontend.
Challenges we ran into
API key limits. Constantly our API keys were meeting their free-tier amounts and the setbacks were obnoxious to say the least. We fixed this issue by setting up billing on the keys which increased the limits 100x over. Another issue, is that we were querying the Google Maps API based on places that are open now. Obviously a very beneficial situation for someone in need of medical attention immediately, however during development this became very confusing as the night went on because locations we were expecting stopped appearing. The next morning, they started reappearing.