During these tough times, we were concerned by the amount of stress placed upon our emergency services. After further research, we found that there were already issues with our emergency services system - miscommunications resulted in thousands of deaths per year - and with the increased stress on our responders, these figures would only go up. In order to improve this situation, we decided to make a dynamic management system to help emergency services coordinate and communicate more effectively.
What it does
LifeLine sends geolocation and health information of the caller ahead of time to emergency services. This allows emergency responders to be informed of the situation ahead of time. Additionally, the people in the emergency situation will always know where the responders are through the app, so that they can take more-informed next steps in stressful situations.
How we built it
Our web frontend, written in the powerful VueJS, embraces the JAMStack as a prerendered single-page application built with the durable meta-framework, NuxtJS. The views are styled with Buefy components and its underlying CSS library, Bulma.
We designed our backend REST API with Django and the simple, flexible Django SQL-backed Rest Framework, authenticated via JSON Web Tokens. We utilized MySQL, a table-based data store for more efficient and simpler backend logic.
The iOS front end uses the powerful, new, and reactive SwiftUI library. We have implemented HealthKit to get quick and easy medical information about the user and MapKit to give the user a live and accurate view of where their first responders are.
Challenges I ran into
We initially tried to do a websockets approach, but after realizing that it isn't well-supported on all platforms, we decided to switch to an HTTP polling method.
Another issue that we ran into was that Visual Studio Code Live Share, our real-time code collaboration tool, repeatedly disconnected, which made it a bit difficult to stay productive.
Accomplishments that we are proud of
We are proud that we have pulled together a team with members that have never worked with each other before, and still built to make a completely functional full-stack application with both web and iOS support.
What I learned
We learned how to build a REST API with Django, and how to utilize MySQL for more efficient backend logic. Our frontend developers have also learned how to use the Google and Apple Maps API for both displaying locations and geocoding.
What's next for LifeLine
We will implement smart-watch technology such as heart rate and blood oxygen levels into the app, on top of call transcribing features to make it even easier for both emergency services and people in trouble.