2 KiB
2 KiB
AutoKanban
A minimal FastAPI webapp for a physical kanban workflow with a 58mm Arduino thermal printer.
Tested on macOS, designed for deployment on Raspberry Pi 4 (Raspbian/Debian-based).
Features
- 📝 Users submit tasks as cards via the web UI
- ✅ Admins approve tasks and print them to a 58mm thermal printer (ESC/POS, Arduino-based)
- 📌 Printed cards are pinned to an analogue kanban board
Kanban Workflow
flowchart TD
A[User submits task via web UI] --> B[Task appears as pending]
B -->|Admin approves| C[Task marked as approved]
C -->|Admin prints| D[Card printed on 58mm thermal printer]
D --> E[Card is pinned to physical kanban board]
Quickstart
1. Install system dependencies (Raspberry Pi)
sudo apt update
sudo apt install python3 python3-venv python3-pip python3-serial
2. Set up Python environment and install packages
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
3. Run the app
uvicorn app.main:app --reload
4. Open http://localhost:8000 in your browser
Printer Integration
- The app uses
python-escposto print to a serial-connected 58mm Arduino thermal printer. - On macOS for testing: Use a USB-serial adapter and check your device path (e.g.,
/dev/tty.usbserial-*). - On Raspberry Pi: Default device is
/dev/ttyUSB0(update inapp/printer.pyif needed). - The printer must support ESC/POS commands and be accessible via serial.
- For Arduino-based printers, ensure the correct baudrate (default: 19200) and permissions (
sudo usermod -a -G dialout $USER).
Project Structure
app/main.py— FastAPI app, task logic, printer integrationapp/printer.py— Printer abstraction for cross-platform serial printingapp/models.py— Task modelapp/templates/index.html— Web UIapp/static/— Static files (optional)
License
See LICENSE (CC BY-NC 4.0)