Project record
01 / 03The athletics management system at Poli-USP
Poliatletas
The Poli-USP athletics team uses the system to record meets, results, records, and training, replacing the spreadsheets that went missing every season. More than a hundred people use it, athletes and coaching staff, with an auditable history and public rankings.
I built Poliatletas to bring the team's operations into a model that understands events, marks, eligibility, and history. The backend serves public athlete and ranking pages as well as coaches' workflows for results, competitions, and training.
- Period
- 08.2025 · present
- My contribution
- Sports-domain modeling, NestJS backend, API contracts, and integration with the React frontend.
- Technology
- NestJS · Fastify · PostgreSQL · Prisma · React · Redis
- Status
- In production and under active development
RING
Comparing marks without erasing context
In the 100 metres, a lower mark is better; in shot put, the greater distance wins. Results also vary by unit, gender, competition, round, and validity. Treating each mark as a sortable number would create false records and lose its source.
SECTOR
Decisions behind the product
Direction-aware eligible metrics
Each event defines a canonical unit and comparison direction. PBs, rankings, and records are derived only from eligible results without modifying the history that produced them.
Idempotent, auditable writes
Batch imports prevent duplicates; sensitive changes record actor, role, action, and metadata. Reprocessing rebuilds derived data without rewriting the original result.
Explicit training concurrency
Offline execution uses an Idempotency-Key, session revisions, and If-Match. Retries return the same response, while concurrent structural edits produce a conflict instead of silently overwriting data.
One contract for API and UI
The versioned REST API exports OpenAPI. The frontend generates types from that contract, reducing drift between NestJS DTOs and React screens.
MARK
What can be checked
- Public rankings by event, period, and season, plus athlete profiles with PBs and history
- Idempotent imports, record recomputation, and an audit trail for sensitive operations
- More than 250 tests across the backend and frontend
- Public product at poliatletas.com.br; application code kept in private repositories
SHEET