Have you ever received a notification from someone asking you to wake them up? People usually feel a bit more reassured if they know that there are others who are aware that they might oversleep. As a human myself, I also feel the need to / desire to have a safety layer of other people if I fail to wake up. There can be situations such as the following when this is warranted:
- You have an important conference with business leaders tomorrow morning
- You have a speech to give in the morning
- You have a bus to catch
- You have to go to the gym and you are really determined to wake up
- You have an exam for which you have to wake up at 6 AM and you are aware that you would not be able to sleep early the night before
- You just have to, have to, have to wake up!
- There will be great losses if you don’t wake up (The world depends on you waking up)
What it does
Allows three things
- Allow to put phone numbers that are notified when there is failure to stop the alarm
- notify the user when the user enters a certain location radius (Entered Chicago!)
- Create a group alarm and track whether others stopped / snoozed the alarm
How I built it
Passion > School Project > Individual Project > Being built
Challenges I ran into
- Intricacies in scheduling and more importantly, cancelling, alarms that have been set up in the system.
- Understanding the parallel multi-processing activity model in Android
- Designing the architecture / tech stack
- Financial model to service Twilio. Note that an application is (as far as I know) cannot place a call from the user's phone without a manual confirmation from the user. Hence Twilio is employed on behalf of the user.
Accomplishments that I'm proud of
Intricately and delicately understanding pain points of users and allowing such features to enter the app
What I learned
Balancing between time spent in different parts of the development process. Specfically, the time spent in GUI development (cosmetics of the app) over working features.
What's next for Alarm²
- Redesign the financial model by having user "coins" or currency so as to scale the application
- Make it cross platform