Ficha do projeto

01 / 03

Sistema da equipe de atletismo da Poli-USP

Poliatletas

A equipe de atletismo da Poli-USP usa o sistema para registrar competições, resultados, recordes e treinos, no lugar das planilhas que se perdiam a cada temporada. São mais de cem pessoas entre atletas e comissão técnica, com histórico auditável e rankings públicos.

Construí o Poliatletas para reunir a operação da equipe em um modelo que entende modalidades, marcas, elegibilidade e histórico. O backend atende tanto as páginas públicas de atletas e rankings quanto os fluxos de treinadores para resultados, competições e treinos.

Período
08.2025 · atual
Minha atuação
Modelagem do domínio esportivo, backend NestJS, contratos da API e integração com o frontend React.
Tecnologia
NestJS · Fastify · PostgreSQL · Prisma · React · Redis
Estado
Em produção e em evolução
Logotipo oficial do Poliatletas em azul e amarelo
Marca do Poliatletas, sistema usado para publicar atletas, resultados e rankings da equipe.

CÍRCULO

Comparar marcas sem apagar o contexto

Nos 100 metros, uma marca menor é melhor; no peso, vence a maior distância. Resultados ainda variam por unidade, gênero, competição, fase e validade. Tratar tudo como um número ordenável produziria recordes falsos e perderia a origem de cada marca.

SETOR

Decisões que sustentam o produto

  1. Métrica com direção e elegibilidade

    Cada modalidade define unidade canônica e direção de comparação. PBs, rankings e recordes são derivados somente de resultados elegíveis, sem alterar o histórico que os originou.

  2. Escrita idempotente e auditável

    Importações em lote evitam duplicidade; alterações sensíveis registram ator, papel, ação e metadados. Reprocessamentos recalculam derivados sem regravar o resultado original.

  3. Concorrência explícita nos treinos

    A execução offline usa Idempotency-Key, revisão de sessão e If-Match. Reenvios devolvem a mesma resposta e uma edição estrutural concorrente produz conflito em vez de sobrescrever dados silenciosamente.

  4. Contrato único entre API e interface

    A API REST é versionada e exporta OpenAPI. O frontend gera seus tipos a partir desse contrato, reduzindo divergência entre DTOs do NestJS e as telas em React.

MARCA

O que pode ser conferido

  • Rankings públicos por modalidade, período e temporada, além de perfis com PBs e histórico
  • Importação idempotente, recomputação de recordes e trilha de auditoria para operações sensíveis
  • Mais de 250 testes distribuídos entre backend e frontend
  • Produto público em poliatletas.com.br; código de aplicação mantido em repositórios privados

SÚMULA