This project starts from a very simple and very good idea: use a Raspberry Pi and a thermal printer to manage and print a family shopping list from a lightweight web page.
How it works
The structure is intentionally simple. On one side there is a Raspberry Pi connected to the thermal printer. On the other side there is a web page used to manage the list. When printing is needed, the content is sent to a dedicated printer service.
Main building blocks
- Raspberry Pi connected to a thermal printer
- A web page used by the family to manage the shopping list
- A Python printer manager that opens a socket and waits for print requests
- A Python server that manages the list and forwards data to the print service
- A local `shopping_list.json` file used as lightweight persistence
Project layout
- `printerManager.py` handles the printing side and waits for incoming connections
- `server.py` manages the web list and sends data to the printer manager
- `index.html` provides a simple UI to add, sort, mark and unmark items
- Both services can be registered with `systemd` to start automatically at boot
What makes this project useful
Because it connects hardware, Python services and a useful interface without overengineering any of it. It shows a practical mindset: solve a real household need with a setup that stays understandable and maintainable.
Useful details from the repository
- The UI supports drag-and-drop reordering of list items
- Items can be marked and unmarked from the page
- The list memory is intentionally simple and local
- The README includes sample `systemd` service units for both processes
Repository
The complete project is available here: RaspberryThermal on GitHub.