We were inspired by roommates that don’t do chores in the apartment. We wanted to create a site where groups of people could register together and have that week’s chores randomly assigned to everyone.

What it does

Our website allows users to sign-up for an account and register for a group using a team key. The idea is that "teams" would be comprised of a household or apartment, who need to share chores together. Once logged in, users can add chores to their household list, which will then be randomly assigned for that week, much like spinning a chore wheel. Every Saturday the chore assignments will be re-randomized. An event is created on each person’s Google calendar, and an email notification will be sent to let them know what their chores for the week are.

How we built it

The website is build upon the flask framework, using SQLAlchemy for the database, and Google's Calendar API for the calendar integration. Python is used to manage the sorting algorithm, and to interface with the calendar API.

Challenges we ran into

Some of the challenges we ran into while building BoDo, included writing the JavaScript code to spin the color wheel and have it land randomly on a chore (which didn't end up making it into the final project), and implementing a relational user/chore database to determine which chores would be associated for which user when they logged in. Managing the relationships between the many tables of the database also proved challenging at first, but we managed to get all the relationships functioning correctly for the final product.

What we learned

While building BoDo, we learned a lot about working with databases in SQLAlchemy, managing logins and unique sessions for different users, and redirecting pages in flask. We also refined skills in HTML and CSS for the front-end web pages, with many different forms and styles used to make the websites look how they are.

What's next for BoDo

We would like to expand our user base so that parents can create teams for the family and have chores assigned to their children, and so businesses can use it to fairly schedule work for their employees. As of right now, the application is intended for splitting chores up in an apartment, but it could be modified to account for users with elevated permissions or assigning tasks in general. We also want to look into having a chore swap market of sorts, where if a user cannot or does not want to complete one of their chores it can be traded with another user in the same team. In the future it would also be good to implement a way to complete chores and have consequences for not completing a chore such as a heavier load the next week.

Share this project: