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.

It is not a random experiment. It is a small domestic tool with a clear purpose: shared list management, quick editing and immediate printing.

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

  1. `printerManager.py` handles the printing side and waits for incoming connections
  2. `server.py` manages the web list and sends data to the printer manager
  3. `index.html` provides a simple UI to add, sort, mark and unmark items
  4. 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.

Back to Technology Open the repository