No description
Adiciona tela de analytics organizacional acessível apenas por OWNER e ADMIN, com gráfico de pizza por projeto, top 5 tarefas e ranking de membros por tempo trabalhado. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .claude/skills | ||
| .github | ||
| backend | ||
| docker/postgres/init | ||
| frontend | ||
| specification | ||
| .gitignore | ||
| backlog.md | ||
| CLAUDE.md | ||
| docker-compose.yml | ||
| README.md | ||
TimeTrack MVP
Minimal vertical slice for task management using:
- React + TypeScript + Tailwind CSS
- Java + Quarkus
- PostgreSQL
- Keycloak prepared for future authentication
Structure
frontend/: Vite React app with task list, task creation, and status updatesbackend/: Quarkus API with a simple Clean Architecture splitdocker-compose.yml: local PostgreSQL and Keycloak services
Run infrastructure
Start PostgreSQL and Keycloak:
docker-compose up
Services:
- PostgreSQL:
localhost:5432 - Keycloak:
http://localhost:8081 - Keycloak admin:
admin/admin
Run the backend
The backend uses the Maven wrapper generated by Quarkus.
cd backend
./mvnw quarkus:dev
Default database settings already point to the local Docker PostgreSQL instance:
- database:
timetrack - user:
timetrack - password:
timetrack
Main API endpoints:
POST /tasksPATCH /tasks/{id}/statusGET /tasks
Example create request:
curl -X POST http://localhost:8080/tasks \
-H "Content-Type: application/json" \
-d '{"name":"Prepare sprint review","description":"Collect release notes"}'
Run the frontend
cd frontend
npm install
npm run dev
The Vite dev server runs on http://localhost:5173 and proxies /api/* to the backend on http://localhost:8080.
If needed, you can override the API target with VITE_API_URL.
Architecture notes
The backend keeps the vertical slice intentionally small:
domain: task entity and status enumapplication: use cases and repository portadapter/in: REST APIadapter/out: PostgreSQL persistence with Panache
Important pragmatic decisions:
- UUIDs are generated in the application layer to keep the slice simple.
- Flyway owns schema creation with a single migration.
- Keycloak is available locally now but not integrated into the app yet.
Verification
Backend:
cd backend
./mvnw test
Frontend:
cd frontend
npm run build