As sleep-deprived students, we would like to have as much sleep as possible before starting the next day. Also, we like to arrive to school and other places just on time - not too early, while not being late. CommuteAlarm was designed to solve these problems.

What it does

CommuteAlarm is an Android application allows users to create alarms to help them wake up for a daily commute. Provide the location of the workplace, when you need to arrive by, and the length of your routine to prepare, then CommuteAlarm will handle the rest. The application will adjust when the alarm will ring based on the distance between your current location and your workplace, the length of your morning routine, and traffic conditions. In addition, the user-estimated prepare time will be automatically adjusted to its actual value, and the user's driving speed will adjust when the alarm will ring.

How we built it

We used the Google Maps API to get the user's current location and the Google Places API to select a workplace location. Google Maps was then used to determine the travel time to the workplace based on traffic conditions.

Geofencing was used to determine when a user left the house (prepare time length) and when a user arrived at work. These data points were stored for each day and analyzed to ensure that users arrive to work just on time and that alarms are adjusted as necessary.

Challenges we ran into

Serializing the workplace into JSON in a way that allowed us to retrieve its name and location later, getting traffic data from the Google Maps API with a HTTP request, as methods were not directly built into the Android Google Maps API.

Accomplishments that we're proud of

An intuitive and simple material design user interface

What I learned

Most of our team members worked with the Android SDK for the first time, and now we all know how to make our own Android apps. It was also our first time working with the Google Places and Maps APIs and sending, receiving, and processing HTTP requests on Android.

What's next for CommuteAlarm

Features that we would like to implement in the future include:

  • Option to set a different ringtone for each alarm
  • Select different modes of transportation
  • Cache historical traffic data, so the app can work effectively while offline
Share this project: