API REST em Express para controlar treinos A/B/C/D e progressão semanal de carga.
Nesta fase, a API cobre apenas:
- criação, login e logout simples de usuários;
- perfil do usuário autenticado;
- fichas de treino A, B, C e D;
- exercícios dentro de cada ficha;
- carga inicial do exercício;
- regra de progressão semanal por porcentagem ou kg fixo;
- geração de cargas futuras por ficha;
- ajuste manual de uma carga gerada.
Não fazem parte do MVP atual: dashboard, relatórios, histórico, plano semanal, sessões de treino e feedback de performance.
Os dados ficam em memória por decisão de escopo desta fase.
npm installnpm testNo Windows PowerShell, se a política de execução bloquear npm, use:
npm.cmd testnpm startO servidor inicia na porta 3000.
Crie um arquivo .env local ou configure a variável no ambiente:
JWT_SECRET=troque-por-um-segredo-forteEm desenvolvimento e testes, a API usa um segredo padrão caso JWT_SECRET não esteja definido. Em produção, JWT_SECRET é obrigatório.
http://localhost:3000/api-docsquando o servidor estiver rodandodocs/cargax-api.yamlcomo contrato OpenAPI
POST /auth/register
POST /auth/login
POST /auth/logout
GET /users/me
GET /workout-sheets
POST /workout-sheets
GET /workout-sheets/:workoutSheetId
PATCH /workout-sheets/:workoutSheetId
DELETE /workout-sheets/:workoutSheetId
POST /workout-sheets/:workoutSheetId/duplicate
GET /workout-sheets/:workoutSheetId/exercises
POST /workout-sheets/:workoutSheetId/exercises
PATCH /workout-sheets/:workoutSheetId/exercises/:exerciseId
DELETE /workout-sheets/:workoutSheetId/exercises/:exerciseId
PUT /exercises/:exerciseId/initial-load
PUT /exercises/:exerciseId/progression-rule
POST /workout-sheets/:workoutSheetId/progressions/generate
PATCH /load-plans/:loadPlanId
.
├── src/
│ ├── app.js
│ ├── server.js
│ ├── controllers/
│ │ └── auth.controller.js
│ ├── data/
│ │ └── database.js
│ ├── middleware/
│ │ └── auth.middleware.js
│ ├── routes/
│ │ ├── auth.routes.js
│ │ ├── exercise.routes.js
│ │ └── workoutSheet.routes.js
│ ├── services/
│ │ ├── auth.service.js
│ │ └── workout.service.js
│ └── utils/
│ ├── http.js
│ └── validation.js
├── test/
│ ├── auth.test.js
│ ├── health.test.js
│ └── workout-sheets.test.js
├── docs/
│ └── cargax-api.yaml
├── package.json
└── README.md
- O contrato OpenAPI está em
docs/cargax-api.yaml. - A autenticação usa JWT e senha com hash
scrypt. - O tratamento de erros usa helpers em
src/utils/http.js. - As validações compartilhadas ficam em
src/utils/validation.js. npm audit --audit-level=moderatedeve permanecer sem vulnerabilidades.