No description
Restructure the AppShell navbar for better UX grouping: rename "Organizações" to "Equipe", consolidate Org Dashboard and admin items inside the Equipe dropdown, add a persistent "+ Nova Tarefa" CTA button, and replace the isolated logout button with an avatar dropdown showing user name and email. Add "Buscar Organização" to the Equipe dropdown for all roles. Mobile nav simplified to Dashboard · Tarefas · + · Equipe. Per-page fixes: remove non-functional chevron and dead links from ProjectsPage; replace the PDF export button in DashboardPage with a working "Copiar Relatório" clipboard button; remove dead info links from OrganizationsPage; remove the broken support link from LoginPage; add Lista/Quadro view toggle to TaskListPage header. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .claude/skills | ||
| .github | ||
| backend | ||
| docker/postgres/init | ||
| frontend | ||
| .gitignore | ||
| 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