Ever since the pandemic began, we have all found ourselves with a lot of free time to focus on hobbies that would have otherwise been lost in the rush of regular life. However, it can often be difficult to remain focused on certain things over a period of months because of day-to-day distractions, making it quite easy for us to waste time and fail to cultivate our skills. In our experience, the most effective way to combat such distractions and maintain focus is by building habits, and Habitat is a social forum for doing just that.

What it does

Habitat encourages the cultivation of habits by surrounding you with people of similar interests and goals. On Habitat, there are smaller communities known as "spheres" that focus on particular hobbies, like meditation or programming. Within these spheres, users can share posts and messages with each other to talk about their experiences with the hobby at hand, including milestones and potential failures. To provide extra motivation, each user has a "streak" associated with each sphere that indicates how long he or she has been keeping up with a particular habit. As the streak increases, the user gains access to more badges and benefits within the community.

How we built it

We used SQLAlchemy to store data about the users (streaks, recommendations, etc.) and posts within a sphere. In order to make the front end, we used HTML and CSS, relying on Bootstrap for certain features as well. Since finding new hobbies is also an important part of our website, we used python to create an item-based filtration system that recommends certain spheres to the user depending on his or her implicit ratings of other spheres (derived from the amount of time that they spend on the other spheres) and the degree of similarity between the spheres (semantic comparison between the descriptions of spheres using gensim and cosine similarity).

Challenges we ran into

The biggest challenge that we faced was connecting the different aspects of our project. For instance, it was difficult to create a messaging system that would connect to the database in real time and store the messages. Additionally, connecting the recommendation engine to the database in order to store the relations between different spheres also proved to be a challenge. Naturally, all of these struggles were compounded by the fact that we had to complete everything in just the span of a few days.

Accomplishments that we're proud of

We are proud of the fact that, despite only having a few days, we managed to implement most of the desired functionality of the webpages with HTML and Javascript and also made a database that works almost exactly how we want it to.

What we learned

Procrastination is a killer. We probably could have made the website look a lot better if we had gotten right to working at the hackathon's outset, but we only started genuinely working on Saturday.

What's next for Habitat

We hope to spend more time on creating a better-looking UI and, depending on opinions from our families and friends, we may even try to deploy it to a real domain at some point.

Share this project: