Inspiration
We recognized that community is essential for achieving goals and breaking habits, but quarantine and social distancing has made that difficult in this season. We wanted a tool that would help keep people connected and working together while also helping break down large goals into smaller ones.
What it does
Habitity allows you to come together with a group of friends to work on breaking (or making) a habit together. It allows you to join a group together with other people and mark every time you achieve a specific goal (ex. not buying cigarettes while at the store). Each goal awards a certain number of points, and each week the group tries to reach a certain number of points.
How we built it
We used firebase functions to form a backend for secure authentication, while using angular.js (using TypeScript) with firebase to build the frontend.
Challenges we ran into
We had to figure out a good division of labor especially since most of our app was in the frontend, so everyone working on the same file was likely to create merge conflicts. In the end we overcame this by having one person work on the backend with firebase functions, then working on the design for the frontend, while others setup and built individual parts of the frontend.
Accomplishments that I'm proud of
We've kept a fairly high level of production quality in the code, and can use this as a base for future expansions rather than a simple prototype which we would later rewrite from scratch.
What I learned
Martin learned how it's very easy to underestimate how easy it is to complete a goal, and how difficult it is to manage a team (I [Daniel] think he did a great job).
Daniel learned a good bit about the features of firebase, especially the firebase functions, their serverless functions API.
What's next for Habitity
We'd love to add some more advanced social features, including likes for specific goals achieved. We'd also like to let users add their own habits to track with their custom goals (this is very simple to do with the technology, but requires more UI work than we had time for).
We'd also want to get some feedback from experts on the effectiveness of this technique and see if we can get any improvements in the general approach.
Log in or sign up for Devpost to join the conversation.