Relevant Prize Categories
- Hack for Fun
- It’s fun, fresh, and potentially friendship-ending!
- Google Cloud
- We use Google Cloud for the geocoding API along with hosting our backend
- Cockroach Labs Tech Prize
- We use CochroachDB to store our user data!
- [MLH] Most Creative Use of Twilio
- We use Twilio for our initial wake-up call, and for texting your friends to wake you up!
Inspiration
Standing atop the zenith of inconceivable scientific ingenuity and unimaginable advancements in modern technology, we have overcome an unthinkable number of obstacles facing the human race from treating lethal diseases to vastly increasing agricultural output. However, over many millennia of human existence, one obstruction stands above the rest, seemingly impervious from modern innovation: waking the f*ck up.
From un-snoozable alarms to earthquake-like vibrators, many have tried and failed to tackle this misleading simple problem, with great consequence. Missed job interviews, late first-date brunches, failed midterms; too many unfortunate souls have lost their livelihoods to this behavioral ailment.
... but the answer is clear. If modern technology can't, then maybe the power of friendship will wake us the f*ck up!
What it does
Wake the F*ck Up is a web application that allows you to set a phone call alarm where, if you fail to pick up, it will call and text each one of your on-call friends in successive geolocative order to come over to your address and wake you up! Each friend can choose whether or not to take the charge of waking you up; if they don’t, the responsibility will be passed onto the next friend. If none of your friends want to wake you up, no worries: we’ll call 911.
User Authentication!
Our app supports user authentication! You can log in with a username and password, and sign up by inputting the address you’d like to be woken up at, along with your phone number.
Add Friends!
Add your friends to your friends’ list, where you can set them to be on-call for alarms.
Alarm!
You can set a date and time for your alarm to ring. Here’s how it works:
- When the alarm goes off, we’ll call you at your phone number!
- If there’s no response after 10 seconds, we’ll call the on-call friend that’s closest to you and tell them to go to your address and wake you up!
- If a friend either chooses not to wake you up (through texting back “yes” or “no” to a text message) or doesn’t respond in 10 seconds, we’ll call the next on-call friend that’s closest to you.
- Step 3 will keep repeating until there are no friends left! In that case, we’ll call 911 because you’ll definitely wake up with police at your door.
How we built it
Using React and JavaScript, we built Wake the F*ck up as a full-stack web application. For our backend, we used Python, Flask, sqlalchemy, Serverless CockRoachDB, and Google Cloud Engine for hosting. Our project consists of 3 major technical components:
Twilio Messaging and Calling
When your alarm goes off, we use Twilio to call and message you and your friends. We spawn a process for each alarm activation; each parent thread is responsible for sending Twilio robot calls and messages, receiving back a response and routing it to our backend API, and timing out after 10 seconds to notify the next friend. This allows the server to continuously process multiple alarms from different users without having to wait for child processes to finish.
However, to handle the case where you might have multiple outgoing alarms at once, we set up inter-process communication for all alarm processes to share memory while using locks and semaphores to prevent race conditions; this allows each process to serially update their state in a queued buffer such that our backend knows which text response was for which alarm instance.
Geocoding and Geolocations
When users sign up to Wake the F*ck Up, they input the address where they want to be woken up. Behind the hood though, we actually use Google API geocoding to translate that address to a latitude and longitude coordinate. Then, to decide the order of your friends to call when your alarm goes off, we sort your on-call friends by calculating their distance from you (even taking into account the curvature of the earth!).
User Interface
For our UI, we wanted to focus on simplicity, cleanliness, and neutral aesthetics. After all, we felt it was important to juxtapose the stress of potentially losing friends and having the police at your door with a sense of calm, cuteness, and sunshine. That’s why we hand-drew all our bees from scratch!
Challenges we ran into
To start, one of the major challenges we had was getting everything … to just work. Especially since half of our team is new to full-stack web development, it was particularly difficult to get the many moving parts of our project to work together. From painful git merge confits to Heisenberg-like npm package management issues to learning what the heck useState and useEffect are, it was a super fun challenge to learn new things and tackle problems as a team!
Here are a few other technical challenges we faced:
- There were networking issues with port forwarding with Google Cloud Engine
- Using transaction contexts and rolling back bad SQL queries in sqlalchemy
- Using webhooks to get Twilio to connect back to our server
- Creating a custom React hook for our alarm to update state (weird math things with base 60!)
- Edge cases (as mentioned above: race conditions, simultaneous alarms, server sockets) with Twilio functionality that needed to be gracefully dealt with
- Bees. But like, making them cute.
- Using Figma for the first time.
Accomplishments that we're proud of
We’re super proud of what we accomplished with Wake the F*ck Up!
First of all, especially with our team not being experts in full-stack development, this was such an incredible learning experience (at the expense of our sleep). From learning React to dealing with OS concurrency issues, we not only overcame the many obstacles that faced us but most importantly, we faced them together.
Lastly, we’re also proud of the fact that we deployed our project; we’re genuinely excited to use this on all of our friends back home. While our app might not be used to help non-profits, optimize web7 zkEVM chain smart contract gas fee multisig efficiency, or solve world hunger, we’re really happy to have created something fun as a team, with a good amount of laughs on the way.
What we learned
Many important languages, tools, and frameworks that we used in our project were new to us! Throughout our hacking process, we picked up:
- Figma for designing
- JavaScript and React for our frontend
- Flask, SQL, sqlalchemy
- CockroachDB! (thank you for sponsoring)
- To dos (and most importantly don’ts) of concurrent software development
Most importantly though, we learned just how fun hackathons can be, not just for the project building, but the friends we can make along the way <3
What's next for Wake the F*ck Up
Polishing!
Even though Wake the F*ck Up is deployed and can be used by our friends, we want to make the experience as polished and bug-free as possible!
- Speeding up query times
- Improving UI cleanliness
- Adding more bees
New Features!
… and heck, why not throw in some more features! Let us know what you’d like to see.
- Customize response waiting time limit (currently 10 seconds)
- Setting multiple alarms at once for a user account
- Friend requests + friend acceptances
- … why stop at phone calls and text messages? every. messaging. medium
- Customizable wakeup robot call messaging
Built With
- cockroach-db
- css
- google-cloud
- html
- javacript
- node.js
- python
- react
- sqlalchemy
- twilio

Log in or sign up for Devpost to join the conversation.