Inspiration

The general consensus today: in order to avoid the prolonged negative mental and physical effects of sitting, you must stand up and move every half-hour, on average.

What it does

StandUp is a web app that manages and incentivizes these breaks. At a random interval between 20-40 minutes, every single person on StandUp receives a push notification, informing them that it is, well, time to stand up and move around. From there, users are guided on a short exercise to get their blood and lymph moving. Finally, they may upload a photo with evidence of their StandUp moment.

In addition to these workout events, StandUp also includes a system for finding and making friends. When a user's friend uploads evidence of their StandUp moments, it will appear in their feed, creating a forward-thinking atmosphere for office exercise.

How we built it

StandUp is a Svelte app hosted on Firebase with Firestore as our backing database. We use Firebase messaging to distribute the push notifications and a daemon written in Go (which is hosted on fly.io) to create them.

Challenges we ran into

The most significant challenge we ran into was getting push notifications working properly on a web app. We solved this by setting up an additional notification registration service which allowed us to subscribe each new device to a topic which we use to push to all registered users. Because this service was hosted outside of Firebase we naturally ran into CORS and deployment issues. Additionally, the api for sending notifications was not very well documented.

What we learned

The most important element to the success of our project was the organizational system we used. By creating KanBan buckets for each person on the team and defining a single pool of to-do items, we were able to streamline the development of new features and maintenance of bugs.

What's next for StandUp

StandUp was a blast to create and makes a great proof of concept. If we decide to continue the project, we would probably rewrite it, incorporating the lessons we learned and adapting the design for scalability.

Built With

Share this project:

Updates

posted an update

The API key for sending out notifications was leaked at the end of the competition when we published the code. As such, it has now been disabled. Due to the significant security flaws, expect the page itself to go down at some point as well.

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