Inspiration

  • Gio and his wife were wondering why on earth there weren't any good Discord todo list bots available. I mean, people use Discord for everything, including planning social events and coordinating team projects. So why not create a todo list that makes it easy to manage tasks and stay on top of things within the comfort of your own Discord server?

What it does

  • A Discord bot that you can add to any server, that can keep track of ToDo lists. Users interact with the bot with commands and emojis. Our discord bot makes it easy to dynamically create and edit your todo lists, as well as create private ones that no one else can mess with.

How we built it

  • The backend logic was written in Python using a library called Discord.py, the database logic was written using a Firebase Python SDK called Pyrebase, and the project was hosted on Amazon AWS.

Challenges we ran into

  • It was difficult dealing with null values in Firebase. For example, when a collection or document becomes empty (e.g., completing all items in a todo list), the entire collection/document get deleted. As a result, when trying to work with the same collection in the future, an error would be raised as it would no longer exist in the database. Therefore, we had a to do a lot of error checking to deal with null values.
  • Race conditions where users multiple users tried doing the same thing at once (e.g., checking off the same todo item). This required us to add more error checking (e.g., if this todo item no longer exists, return)
  • Input validation and handling the different ways a user can call a command
  • The concept of private/public todo lists and checking a user's permissions before allowing them to interact with a todo list.

Accomplishments that we're proud of

  • Learning new technologies/libraries like Discord.py, Firebase, and AWS
  • Finishing a project that we can actually use in our daily lives

What we learned

  • How to work and coordinate within a team and create a productive workflow
  • Using Firebase/NoSQL, working around its limitations, and observing the advantages/disadvantages of using NoSQL over a relational database
  • How to host things on AWS and its limitations

What's next for Dis A ToDo List

  • User testing and fixing the bugs, and fixing naming issues
  • Ability to edit items in lists
  • Improve UI/UX in Discord
Share this project:

Updates