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.
Log in or sign up for Devpost to join the conversation.