Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CargaX HypertroLab

API REST em Express para controlar treinos A/B/C/D e progressão semanal de carga.

Escopo do MVP

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.

Como Executar

Instalação

npm install

Testes

npm test

No Windows PowerShell, se a política de execução bloquear npm, use:

npm.cmd test

Servidor

npm start

O servidor inicia na porta 3000.

Variáveis de Ambiente

Crie um arquivo .env local ou configure a variável no ambiente:

JWT_SECRET=troque-por-um-segredo-forte

Em desenvolvimento e testes, a API usa um segredo padrão caso JWT_SECRET não esteja definido. Em produção, JWT_SECRET é obrigatório.

Documentação da API

  • http://localhost:3000/api-docs quando o servidor estiver rodando
  • docs/cargax-api.yaml como contrato OpenAPI

Endpoints Principais

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

Estrutura do Projeto

.
├── 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

Notas de Desenvolvimento

  • 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=moderate deve permanecer sem vulnerabilidades.

About

CargaX será um aplicativo web completo que traz inteligência ao treinamento de força. Impulsionado pelo HypertroLab Engine, ele gera sobrecarga progressiva a partir das cargas iniciais, promovendo hipertrofia consistente. Desenvolvido com APIs REST, testes automatizados e sólidas práticas de engenharia.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages