Execução e Progresso de Exercícios
Esta seção detalha os endpoints para registro, acompanhamento e análise de execuções de exercícios na plataforma FitLocus.Visão Geral
O registro de execuções de exercícios é fundamental para o acompanhamento do progresso dos usuários. Cada vez que um usuário realiza um exercício como parte de um treino, os detalhes dessa execução (séries, repetições, cargas, etc.) são registrados para análise posterior.Registrar Execução de Exercício
Endpoint
Parâmetros de URL
| Parâmetro | Tipo | Descrição |
|---|---|---|
| id | number | ID do exercício |
Cabeçalhos da Requisição
| Cabeçalho | Valor | Descrição |
|---|---|---|
| Authorization | Bearer | Token JWT do usuário |
| Content-Type | application/json | Tipo de conteúdo da requisição |
Parâmetros da Requisição
O corpo da requisição deve conter um objeto JSON com os seguintes campos:| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| trainingId | number | Sim | ID do treino ao qual a execução está associada |
| sets | array | Sim | Lista de séries realizadas |
| notes | string | Não | Observações sobre a execução |
| duration | number | Não | Duração da execução em segundos |
sets deve conter:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| repetitions | number | Sim | Número de repetições realizadas |
| weight | number | Não | Carga utilizada (em kg) |
| completed | boolean | Sim | Se a série foi concluída |
Exemplo de Requisição
Resposta de Sucesso
Código: 201 CreatedRespostas de Erro
Código: 400 Bad RequestListar Execuções de um Exercício
Endpoint
Parâmetros de URL
| Parâmetro | Tipo | Descrição |
|---|---|---|
| id | number | ID do exercício |
Parâmetros de Consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| userId | number | Não | Filtrar por usuário |
| startDate | string | Não | Data inicial (formato: YYYY-MM-DD) |
| endDate | string | Não | Data final (formato: YYYY-MM-DD) |
| page | number | Não | Número da página (default: 0) |
| size | number | Não | Tamanho da página (default: 20) |
| sort | string | Não | Campo e direção de ordenação (ex: executedAt,desc) |
Cabeçalhos da Requisição
| Cabeçalho | Valor | Descrição |
|---|---|---|
| Authorization | Bearer | Token JWT do usuário |
Exemplo de Requisição
Resposta de Sucesso
Código: 200 OKRespostas de Erro
Código: 401 UnauthorizedListar Execuções de Exercícios de um Usuário
Endpoint
Parâmetros de URL
| Parâmetro | Tipo | Descrição |
|---|---|---|
| userId | number | ID do usuário |
Parâmetros de Consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| exerciseId | number | Não | Filtrar por exercício |
| startDate | string | Não | Data inicial (formato: YYYY-MM-DD) |
| endDate | string | Não | Data final (formato: YYYY-MM-DD) |
| page | number | Não | Número da página (default: 0) |
| size | number | Não | Tamanho da página (default: 20) |
| sort | string | Não | Campo e direção de ordenação (ex: executedAt,desc) |
Cabeçalhos da Requisição
| Cabeçalho | Valor | Descrição |
|---|---|---|
| Authorization | Bearer | Token JWT do usuário |
Exemplo de Requisição
Resposta de Sucesso
Código: 200 OKRespostas de Erro
Código: 401 UnauthorizedObter Recordes Pessoais
Endpoint
Cabeçalhos da Requisição
| Cabeçalho | Valor | Descrição |
|---|---|---|
| Authorization | Bearer | Token JWT do usuário |
Exemplo de Requisição
Resposta de Sucesso
Código: 200 OKRespostas de Erro
Código: 401 UnauthorizedObter Progresso de um Exercício
Endpoint
Parâmetros de URL
| Parâmetro | Tipo | Descrição |
|---|---|---|
| id | number | ID do exercício |
Parâmetros de Consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| startDate | string | Não | Data inicial (formato: YYYY-MM-DD) |
| endDate | string | Não | Data final (formato: YYYY-MM-DD) |
| interval | string | Não | Intervalo de agrupamento (DAY, WEEK, MONTH) |
Cabeçalhos da Requisição
| Cabeçalho | Valor | Descrição |
|---|---|---|
| Authorization | Bearer | Token JWT do usuário |
Exemplo de Requisição
Resposta de Sucesso
Código: 200 OKRespostas de Erro
Código: 401 UnauthorizedImplementação no Frontend
Componente de Registro de Execução
Componente de Visualização de Progresso
Considerações de Design
A interface de execução e progresso de exercícios do FitLocus segue as diretrizes de design da plataforma:- Cores: Fundo escuro (#202020), elementos de destaque em verde (#B4ED00), texto em branco (#F9F9F9)
- Tipografia: Hanken Grotesk para texto e SUPERINE para títulos
- Layout: Design minimalista com espaçamento generoso e hierarquia clara
- Componentes: Campos de formulário com bordas arredondadas, botões com feedback visual ao interagir
- Gráficos: Visualizações de dados claras e intuitivas, com cores consistentes com a identidade visual
Considerações de Segurança
- Validação de Dados: Todos os dados de entrada são validados tanto no frontend quanto no backend para prevenir injeção de dados maliciosos.
- Controle de Acesso: Verificações rigorosas garantem que um usuário só possa acessar e modificar suas próprias execuções ou, no caso de personal trainers, as execuções de seus alunos vinculados.
- Sanitização de Dados: Todos os dados de entrada são sanitizados antes de serem armazenados ou exibidos.
- HTTPS: Todas as comunicações com a API devem ser realizadas através de HTTPS para proteger dados sensíveis durante a transmissão.
Troubleshooting
Problemas Comuns
- “Deve haver pelo menos uma série”: Adicione pelo menos uma série antes de registrar a execução.
- “Acesso negado”: Verifique se você está tentando acessar suas próprias execuções ou, se for um personal trainer, as execuções de um aluno vinculado a você.
- “Erro ao carregar progresso”: Verifique se o intervalo de datas selecionado contém dados de execução.
Depuração
Para depurar problemas com execuções de exercícios:- Verifique os logs do console para mensagens de erro detalhadas
- Utilize ferramentas como o Postman para testar os endpoints diretamente
- Verifique se o token JWT está sendo enviado corretamente no cabeçalho Authorization
- Confirme que os dados enviados estão no formato correto e dentro dos limites permitidos