https://github.com/G-DoubleU/PiChoreBoard-
Daily Chore Tracker on a Raspberry Pi
Piboard? Phore board? Pi-Chore board?
I have been trying to find a catchy name for this project, but nothing has worked for me so far.
My friends have a cool counter-top digital calendar from Skylight. I would have bought one myself but I didn’t want to spend the money. I figured I would make something similar instead.
Behold my Pi-Chore Board! Written in Python, primarily using the Pygame library and running on a Raspberry Pi.
Pygame
I had never worked with the Pygame library at the start of this. I knew I wanted to write this app in Python, and found Pygame made creating the UI elements and handling input fairly straightforward. I spent a few hours making super basic display outputs with Pygame to get my feet wet. It took me a while to get my head around Pygame loops.
Essentially all of your Pygame code runs in a continuous While loop. Each loop will check for user inputs, update logic and check for collisions, and then redraw the entire screen if necessary. I spent A TON of time messing with the positioning and size of the UI elements. Every UI element requires specific coordinates, and I spent hours just trying to arrange things in a pleasing way. Once I had the base level created, I farmed the rest of this UI work out to Claude. I was much more interested in the internal logic that the UI/UX.
Outside of the learning curve on the element placing and looping logic, Pygame was really fun to work with. The documentation is great, and there are so many possibilities.
Raspberry Pi
It’s been years since I’ve even held a Raspberry Pi. I was really excited to see how they have improved and to find a practical use for one again.
I purchased a Raspberry Pi 5 (4GB RAM) and a Pi Touch Display 2. Once you add up the cost of the Pi, the screen, SD card, and other bits and pieces, I likely didn’t same much over buying a Skylight. But I sure had more fun! The 4GB version of the Pi is overkill for this task, but I have future plans for this Pi and wanted some room to grow.
I knew I wanted this device to stick on my fridge, so my original idea was to use magnets. I purchased some fairly strong neodymium magnets and epoxied four of them to the USB housing. Unfortunately, I could not get this to work. The device was just to heavy, and I couldn’t get it to stay securely stuck to the fridge. I ended up going with velcro Command Strips so the Pi is still removable.
What’s Next?
I have a few short term fixes I need to apply now that it’s actually running on my fridge. I need to add recurrence options of bi-weekly and monthly for the “Add Chore” screen. I also need to update how frequently the save function runs. Currently the chore list and it’s “checked” value save to a JSON file after a new chore is saved. The save function does not run outside of a new chore getting added, so any other updates to the chore list do not persist if the Pi loses power.
Longer term I have a few ideas I am really excited about.
First, I want to set up SMS notifications for important chores. I will add a UI element to mark a chore as important. If that chore hasn’t been checked off by X time of the day it’s due, I want to receive SMS notifications.
Second, I want to set this up as a Web App running in Azure. The end goal is to have the Pi act as a browser Kiosk that is locked to my Web App site. This way I can use the Pi for more than just this one app. I’ll also be able to implement some CD with Azure Dev Ops.
More updates to come!