Inspiration

Solving the Patient-Paramedic challenge to allow EMS to make more accurate decisions upon arriving on the scene, ultimately saving lives.

What it does

Medify is a cross-platform mobile application to address the Patient Safety Technology Challenge. Medify features a dual-interface app for both EMT/EMS First Responders along with regular patients. Patients are asked to enter their medical information into the encrypted application. When arriving upon the scene, EMS can verify their status using the National EMS Registry and access necessary medical information to make more accurate and timely decisions, ultimately saving lives.

EMS arriving upon scene can use the Drivers ID found on the person to locate all medical information through the EMS facet of the app, once creating an account with the app and proving their EMS status.

How we built it

Frontend: Built in Python with kivy

The front end displays the cross-platform mobile app, allowing the user to select whether they are EMS or a regular patient. The app itself features a blue color scheme following the Nautical theme. The frontend widgets were built with Python's Kivy framework allowing efficient resource use across multiple platforms.

Patient Frontend: Once following the account signup process, the patient is allowed to input their medical information into a secure and friendly UI.

EMS Frontend: The EMS is expected to create an account as well. The UI verifies the EMS status with the National EMS Registry before creating a full account. After signing in with these credentials, the EMS is allowed to input a Drivers License number to retrieve patient data. The license number would be found on the patient upon arriving on the scene if the patient was unconscious.

Backend: Built with Firebase REST API and Pyrebase wrapper

The app stores all information securely into Firebase's Realtime Database over a secure connection. Realtime syncing improves app performance for users and allows data access from any device. Database is efficiently organized by license number in a tree-like structure. Pyrebase was used as a lightweight alternative to the SDK.

Authentication: Built with Firebase Authentication

Firebase Auth allowed for top-level security in account creation to access various nodes of the database. Firebase Auth allowed easy user management and enforced necessary email-password based account rules (password length, valid email, etc).

Challenges we ran into

With the multitude of tools incorporated in our project (Kivy, Pyrebase, pip, git, etc) we had trouble installing all of them on all members laptops initially. We also had a steep learning curve with git as a member accidentally rewrote the entire repository and commit history with a single change (we were able to reverse it much later). As Kivy is an unconventional choice to build apps, there was also trouble figuring out certain Kivy niche behaviors when positioning widgets, but we were able to figure out clean solutions that allowed for relative positioning (on any device size).

Accomplishments that we're proud of

Thanks to our extra time spent planning and delegating backend/frontend duties in the beginning, the integration between the two was near seamless. We were able to plug-and-play functions with the backend allowing for rapid progress to work on other features. Learning Kivy and accessing the database efficiently was a learning curve for all of us yet we were able to pace ourselves well, taking much needed breaks and we are proud to create this application.

What we learned

We learned the proper workflow for full-stack app development. We learned how to fully write a custom front-end using Kivy and integrate it and make calls to a backend database with Firebase. As freshman at NJIT, we will use what we've learned and apply it in future projects / classes.

What's next for Medify App

Some things we want to do in the future is to keep track of logins for certain amounts of time and cache them in the device. We would also want to add more security by integrating this with a proper drivers license verification system and find a truly efficient way to use the National EMS Registry for verification of EMS IDs.

Built With

Share this project:

Updates