Inspiration

During Purdue snow days, it is common to go sledding on Slayter hill. This is normally a fun time, but 2 years ago for one of our teammates, it was a little catastrophic. He broke his shoulder in a sledding accident and needed medical attention. Being out in the cold, after calling an ambulance, he had no way of telling exactly where it was and how far it was. It was also difficult to communicate over the phone in a hectic environment with 9-1-1 operators.

What it does

Ambutime allows you to send SOS alerts to emergency authorities. These alerts can include details such as severity and the nature of the emergency. Upon sending an emergency alert, a dispatcher can view a list of available ambulances to assign to each alert. From here, ambulance drivers will get the alert, and whoever called the ambulance will see the real-time location of the ambulance.

How we built it

We build Ambutime using Flutter and MongoDB. We used Flutter because it allows for development on a wide variety of devices. This is perfect for an app like Ambutime, where accessibility is of the essence. We planned on this application mostly being used on mobile, but know that for areas like dispatch, a desktop application may be preferred. We used MongoDB as it allows us to store custom data types easily. We stored our EmergencyAlert and Ambulance objects here. We were also able to store location data on Mongo effectively.

Challenges we ran into

We encountered challenges effectively coming up with a system to dispatch ambulances to emergencies. In the end, we created a third user story, the dispatcher, where someone would manually do this. We initially hoped for some sort of algorithm to do this based on distance, severity, and ETA, but in the essence of time and soundness, we chose to add this role instead. We also had issues getting location data. Since we had to run our program on a variety of mobile emulators, location data on these was often inaccurate. To get around this, we were able to manually create test emergencyAlerts with direct MongoQueries with predetermined locations.

Accomplishments that we're proud of

We are very proud of how the mapping system turned out. It was able to plot both the distress location and the ambulance location well. We also did a good job splitting our work, Jon focused on the mapping system, Amogh focused on the reporting system, and Jason worked on the dispatch and ambulance registration systems. We were able to develop these effectively and combine with minimal obstacles.

What we learned

We learned a lot about the urgency of time and overall efficiency in software development. We had to work hard to make sure that our reporting system was fast. For a feature like calling in an emergency, we wanted that to get to the database quickly. To do this, we preloaded database connections and buffered entries. We also pre-loaded emergencies to ambulance drivers, so once assigned, they could be selected without having to wait to query them again.

What's next for Ambutime

We would love to develop this in a more integrated way for mobile devices. Rather than having this be a larger/heavyweight platform, we would like to find a way to integrate this into the device's built in SOS features. Also potentially overhauling the app to optimize it for ambulance drivers could make it much more feasible. Building a separate application altogether for dispatch, drivers, and the general public would be a great next step for Ambutime.

Share this project:

Updates