As someone who is constantly scatter-brained, I have made many different to-do lists. Sometimes I follow through with them, but other times -- let's be honest -- they tend to get forgotten. I've tried other apps and things that "gamified" keeping up with these kinds of things, like Habitica, but could never stay motivated enough to keep up with them.

I've always been a fan of virtual pets like Tamagotchis, and had the idea of using a virtual pet that you had to care for and raise as the motivation to complete the to-do list.

What it does

The idea behind this was to create a page centered around the "critter" that you care for. There is a checklist to the side that you fill out with your tasks, how long you expect to take doing them, etc. If you complete the tasks on time, you are able to feed your critter. However, if you start neglecting your tasks, your critter starts to suffer negative repercussions. To keep your critter healthy and growing, you have to manage your time effectively and get your work done.

To help users bond with their critters, and to keep them motivated, after completing a certain number of tasks, you can unlock mini-games to play with your pet. As they grow from a baby to the older stages, you will be able to unlock more game options to play with them.

How I built it

This web app is built mainly using the Django framework. As the most senior developer on the team, I used this to handle all the back-end features and organization needed for the app. We wanted to keep everything looking simple, with the main focus being on the page with the pet itself. Django let me easily keep everything consistent as well as set up quick and simple forms for users to create accounts and log in.

The front-end work was handled mostly by my teammates, who used HTML and CSS to build the pages themselves, which I then implemented into the overall code.

The main focus for the work for this hackathon was the checklist widget on the main page. I used JavaScript to display it, as well as allow users to add to the list, delete unnecessary list items, and cross them off when they're finished.

The games we decided to try to make were simple matching games and a simplified version of Blackjack. Since they required user input as well, they would also need to be made in JavaScript.

Challenges I ran into

JavaScript was the biggest challenge we ran into for this project. All three of us were not that experienced with the language, and ran into many issues that took time to resolve. Some changes and sacrifices had to be made to get the applications, such as the checklist and the matching game, into a workable state for the hackathon.

Accomplishments that I'm proud of

On that note, I personally am proud of getting the checklist application to work. It was probably the most important feature of the site, and I knew for this project to be even remotely successful, it would have to be at least functional enough to work as a basic checklist. After several hours of focusing solely on that, and a lot of Googling, I managed to get it to work, with only minor tweaks to the rest of the website to accommodate it.

I'm also proud of my teammates, who haven't had as much experiences with these languages, but were eager and willing to learn, and learned quickly. They were able to adapt to problems that arose, and we were all able to come together to work on the more difficult problems we faced.

What I learned

Even though I was fairly familiar with Django, I hadn't used it for a project quite like this, and was pleased to learn a lot from it. I also learned quite a lot about JavaScript, a language I had only recently been learning, and quickly had to find ways to overcome the challenges it brought to the project.

Also, as the senior of the group, I became the unofficial team leader, and learned quite a bit about how to delegate and manage tasks among my teammates, as well as stepping in to help them when they ran into issues they couldn't figure out.

What's next for In-Critter-ble To-Do List

The main thing I want to focus on is finishing the rest of the checklist app. I need to make it so that finishing or not finishing a task has an effect on the critter, which is the main feature of the site.

Once that is done, I will probably recruit the help of one of my more artistically-inclined friends to create proper images -- and possibly animations -- for the critter itself, and the different stages it goes through.

Finally, I want to finish the games and perfect them, as well as having them able to be unlocked at the appropriate times.

Share this project: