Alt text

Inspiration

We were inspired, as students, to better organize our lives for the sake of our mental health. Many of us balance our heavy course-loads, job searching, extracurriculars and social lives on a fine thread daily.

It can often be extremely messy to map and plan our weeks out, even on paper. As such, we wanted an online solution that was a clean, seamless, and efficient way to organize our tasks and help us find rhythm in our lives.

What it does

Kreatures of Habit is a web app that allows its users to effectively organize their tasks for the foreseeable future and help them build familiar rhythms and healthy habits in the future.

Additionally, we hope that KOH will be able to show its users different insights into their tasks and help them more easily plan for the future.

How we built it

Kreatures of Habit was built using React.js and Node.js. It was a language and library that none of our team had ever had experience with and we wanted to use this hackathon as an opportunity to learn and apply the new skill.

Additionally, we wanted to have a clear and organized frontend and backend. Our backend and database storage was done using Firebase Firestore.

The backend focused mainly on two collections, Users and Habits.

Habits: Alt text

Users: Alt text

Habits are what we want to track for our users. Users have the option to add and remove them on a whim and our target product would show them all the habits they have set up for the week as well as give them an opportunity to record their progress and note highlights of the week.

Challenges we ran into

Our very first challenge, and one we kept running into, was attempting to implement something right as we were learning it, especially the Firebase Realtime Database - it felt like we didn't understand a lot of the tools we were using until much later after we had tinkered with it for hours. Unsurprisingly, it turned out that a lot of seemingly simple functionality was much harder to actually implement than it seemed on the surface. Along the same vein, we ran the huge range of avenues we could go down. While we had come in with the plan to create a habit tracker, there are many ways to approach such a topic, and narrowing our focus to what we could feasibly create and/or convincingly plan out was a slight challenge. After wrestling with the Realtime Database for 7 hours, we switched to Firebase Firestore and it worked out a lot easier.

Accomplishments that we're proud of

From the beginning, we were determined to plan our project very carefully - we were all familiar with the problem of coding something without planning and then running into issues much later on that are caused by a flaw in the basics of the implementation. We were able to give ourselves the peace of mind to think of lots of additional features we could add to our project along the way without worrying that we would have to refactor code in order to do so. Otherwise, we were very proud of our ability to work as a team - though we hadn't explicitly discussed team roles or responsibilities ahead of time, each person's individual contributions felt balanced and complementary. We kept good track of the milestones we completed using Trello as we went to stay motivated and on task. We are also proud that we were able to deploy our app fully on GitHub Pages and still be able to connect to the database with new users, habits, and updates.

What we learned

As mentioned, we learned just how many layers there are to something that seems relatively simple

What's next for KOH: Kreatures of Habit

We had many stretch goals and nice-to-haves for KOH, generally, we can split them into two categories.

UI/UX Expansions: One of the things that we really wanted to add but unfortunately did not have a chance to finalize was a proper user account system where people could sign in with a username and password and have the option to customize their own KOH Boards with their own themes and their own color coding for categories and such and perhaps maybe even their own custom categories.

Analytical Forecasting: While you might have noticed that our habits store a relatively wide variety of data pertaining to each task, very few are used in the final frontend product. That is because this database structure was initially designed with the concept of analytics in mind. Originally, we were hoping to be able to pull various fields of data from each habit and use them to give our users a more descriptive picture of their week.

Alt text

This tableau dashboard would have pulled data off of Firestore using Google Analytics to form a live embed page unique to the user and would provide them insights into their week and also potentially suggest to them places where they might have too many tasks and places where they might have time/space to schedule more.

Built With

Share this project:

Updates