A lightweight QR-driven task management system for property or house operations. Guests can scan a QR code to submit maintenance requests, while administrators can manage tasks, houses, and bulk updates via an admin panel.
qr-task-system/
├── backend/
│ ├── Dockerfile
│ ├── requirements.txt
│ └── app/
│ ├── main.py
│ └── templates/
│ ├── admin.html
│ ├── confirmation.html
│ └── form.html
├── db/
│ └── tasks.db
├── docker-compose.yml
└── reset_tasks.py
Contains all backend logic and configuration for containerization.
Dockerfile— Builds the FastAPI container image usingpython:3.10, installs dependencies, and launchesuvicorn.requirements.txt— Lists all required Python packages (FastAPI, Jinja2, Uvicorn, etc.).
Core application directory.
main.py— The main FastAPI app:- Handles all routes (
/submit,/admin,/import_houses, etc.) - Interacts with SQLite database
- Uses Jinja2 to render templates
- Implements cookie-based banner messaging
- Auto-generates unique house IDs
- Supports CSV import/export with deduplication logic
- Handles all routes (
HTML views rendered by FastAPI using Jinja2.
-
admin.html— Admin interface:- Create/update/delete houses
- Manage tasks
- Upload/download CSVs
- Display import results via a dismissible banner
-
form.html— User-facing task submission form:- Triggered via house-specific QR codes
- Allows preset or custom task input
-
confirmation.html— Success page confirming task submission
Contains persistent application data.
tasks.db— SQLite database holding two tables:houses: Metadata about each property (ID, owner, contact info)tasks: Task descriptions and statuses submitted by users
🔒 This is the most critical file to back up for live data.
Defines how to launch the app with Docker Compose.
- Builds the backend service from
Dockerfile - Maps container port 8000 to the host
- Mounts volume for live development
Start with:
docker-compose up --buildOptional script to delete all records in the tasks table.
Can be used during development or before deployments.
- QR-based guest submission forms
- Admin dashboard to manage houses and tasks
- CSV import/export with validation and banner feedback
- Dismissible import messages stored via cookies
- Dockerized for easy deployment
git clone https://github.com/YOUR_USERNAME/home_management.git
cd qr-task-systemdocker-compose up --buildVisit http://localhost:8000/admin to access the admin panel.
When importing houses:
owner,address,manager_email,email2,phone1,phone2
- No
house_idneeded — generated automatically - Duplicate (owner + address) rows are skipped with banner summary
- The system uses cookies to pass flash messages (e.g., CSV import results)
- The SQLite database file should be backed up regularly (
db/tasks.db)
From the root of your project (qr-task-system/):
✅ 1. Stop the app docker-compose down This stops and removes all running containers, networks, and volumes defined in your docker-compose.yml.
✅ 2. Rebuild the app (after code or dependency changes) docker-compose build Only needed if you’ve changed:
Dockerfile
Python dependencies (requirements.txt)
Any app code (e.g., main.py, templates)
MIT or custom internal license.
Shay Byrne — shaybyrne.ca