No description
Find a file
Gabriel Santana de Menezes 96e35dc21d feat: restructure navbar and fix dead-end navigation across pages
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>
2026-05-12 20:06:44 -04:00
.claude/skills chore: remove duplicated standards from new-task skill 2026-05-12 20:04:45 -04:00
.github chore: enforce coding standards and add project guidelines 2026-05-12 20:04:45 -04:00
backend feat: reduce org dashboard top tasks from 5 to 3 2026-05-12 20:06:44 -04:00
docker/postgres/init project scaffold 2026-04-21 15:58:44 -04:00
frontend feat: restructure navbar and fix dead-end navigation across pages 2026-05-12 20:06:44 -04:00
.gitignore project scaffold 2026-04-21 15:58:44 -04:00
CLAUDE.md chore: removing unecessary lines 2026-05-12 20:06:41 -04:00
docker-compose.yml project scaffold 2026-04-21 15:58:44 -04:00
README.md project scaffold 2026-04-21 15:58:44 -04:00

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 updates
  • backend/: Quarkus API with a simple Clean Architecture split
  • docker-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 /tasks
  • PATCH /tasks/{id}/status
  • GET /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 enum
  • application: use cases and repository port
  • adapter/in: REST API
  • adapter/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