KAOS/TASKS/done/T08.md
djuka 3302f83cff T09: Dashboard — Kanban board sa Go templates
- html/template sistem: layout, dashboard, column, task-card, task-detail
- Dark tema CSS, responsive grid (5→3→2→1 kolona)
- HTMX: klik→detalj panel, move dugmad, auto-refresh active kolone
- /report/:id za prikaz izveštaja
- Slide-in animacija za detalj panel
- 16 server testova, 83 ukupno — svi prolaze
- T08 premešten u done/

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 12:14:31 +00:00

1.8 KiB

T08: HTTP server + API za taskove

Kreirao: planer Datum: 2026-02-20 Agent: coder Model: Sonnet Zavisi od: T07


Opis

Go HTTP server koji servira dashboard i API za upravljanje taskovima. Koristi postojeću supervisor logiku (ScanTasks, FindTask, MoveTask).

Fajlovi za kreiranje

code/
├── cmd/kaos-server/
│   └── main.go                ← HTTP server entry point
├── internal/server/
│   ├── server.go              ← Server struct, rute, handler-i
│   └── server_test.go         ← testovi API-ja
└── web/
    └── static/
        ├── htmx.min.js        ← HTMX (ugradi u binary)
        └── sortable.min.js    ← Sortable.js (ugradi u binary)

API endpointi

GET  /                         → dashboard stranica (HTML)
GET  /api/tasks                → svi taskovi (JSON)
GET  /api/task/{id}            → jedan task (JSON + sadržaj fajla)
POST /api/task/{id}/move       → premesti task (query: to=ready)
GET  /task/{id}                → task detalj (HTML fragment za HTMX)
POST /task/{id}/move           → premesti + vrati ažuriran HTML

Pravila

  • Gin framework (već odlučeno)
  • Port iz .env: KAOS_PORT (default 8080)
  • Static fajlovi ugrađeni u binary (embed.FS)
  • CORS nije potreban (sve sa istog servera)
  • Graceful shutdown

Testovi

  • GET /api/tasks → vraća JSON listu taskova
  • GET /api/task/T01 → vraća task sa sadržajem
  • POST /api/task/T08/move?to=ready → premesti fajl, vrati 200
  • POST /api/task/T99/move?to=ready → 404
  • POST /api/task/T01/move?to=invalid → 400

Očekivani izlaz

go build ./cmd/kaos-server/ kreira binary. go test ./internal/server/ -v — svi testovi zeleni. Server sluša na portu, vraća JSON na API pozive.


Pitanja


Odgovori