No description
- TypeScript 65.6%
- Go 27.7%
- CSS 3.4%
- Dockerfile 1.8%
- HTML 0.8%
- Other 0.7%
| .forgejo/workflows | ||
| .github | ||
| .vite/deps | ||
| backend | ||
| frontend | ||
| .gitignore | ||
| docker-compose.yml | ||
| README.md | ||
Haushaltsplan
A household chore tracker for kids with a parent confirmation flow. Children can mark tasks as done and earn coins that top up their weekly allowance. Parents confirm or reject completions through a PIN-protected view.
Features
- Child view – shows all chores for the current week, coin rewards per task, and a running allowance total
- Parent view – PIN-protected; confirm or reject pending completions with optional notes; manage tasks and settings
- Configurable – base allowance, coin value (€ per coin), and parent PIN are all editable at runtime
- Persistent – SQLite database stored on a Docker volume
Tech stack
| Layer | Technology |
|---|---|
| Backend | Go 1.26 · chi router · modernc SQLite (no CGO) |
| Frontend | React 19 · TypeScript · Vite · Tailwind CSS v4 |
| Container | Docker Compose (nginx reverse proxy → Go API) |
Local development
Prerequisites
- Go ≥ 1.22
- Node.js ≥ 20
Backend
cd backend
go run .
# API available at http://localhost:8080
Frontend
cd frontend
npm install
npm run dev
# App available at http://localhost:5173
The Vite dev server proxies /api/* requests to http://localhost:8080.
Docker
docker compose up --build
The app will be available at http://localhost:8080.
The SQLite database is persisted in a named Docker volume (db-data).
API overview
| Method | Path | Description |
|---|---|---|
GET |
/api/tasks |
List all tasks |
POST |
/api/tasks |
Create task |
PUT |
/api/tasks/:id |
Update task |
DELETE |
/api/tasks/:id |
Delete task |
POST |
/api/tasks/:id/complete |
Child marks task done |
GET |
/api/completions |
List completions (filter by ?week= and ?status=) |
POST |
/api/completions/:id/confirm |
Parent confirms |
POST |
/api/completions/:id/reject |
Parent rejects |
GET |
/api/summary |
Weekly summary (coins, allowance) |
GET |
/api/settings |
Read settings |
PUT |
/api/settings |
Update settings |
POST |
/api/auth/parent |
Validate parent PIN |
Environment variables
| Variable | Default | Description |
|---|---|---|
DB_PATH |
./haushaltsplan.db |
Path to the SQLite database file |
Default settings (first run)
| Setting | Default | Description |
|---|---|---|
parent_pin |
1234 |
PIN for the parent view |
base_allowance |
500 (= 5.00 €) |
Weekly base allowance in cents |
coin_value |
50 (= 0.50 €) |
Value of one earned coin in cents |