Treino Track é uma API RESTful desenvolvida em Python com FastAPI e SQLAlchemy para gerenciamento de treinos, exercícios, avaliações físicas, metas, equipamentos e usuários em academias ou ambientes fitness.
- Gestão de Usuários: Cadastro, consulta e associação de usuários a treinos.
- Metas: Criação, consulta, atualização e remoção de metas individuais.
- Avaliações Físicas: Registro e consulta de avaliações físicas de alunos.
- Equipamentos: Cadastro, edição e consulta de equipamentos.
- Exercícios: CRUD completo para exercícios, incluindo nível de dificuldade e associação a equipamentos.
- Músculos: Cadastro e gerenciamento de grupos musculares.
- Treinos: CRUD de treinos, com associação a usuários e exercícios.
- Registro de Treinos: Registro de execuções de treinos, calorias queimadas e feedback.
- Associação Usuário-Treino: Controle de quais treinos pertencem a quais usuários.
- Associação Treino-Exercício: Organização dos exercícios dentro de cada treino, com ordem, séries e repetições.
O projeto está organizado da seguinte forma:
app/main.py: Ponto de entrada da aplicação FastAPI.app/models/: Modelos SQLAlchemy das entidades do sistema.app/schemas/: Schemas Pydantic para validação e serialização.app/routers/: Rotas FastAPI para cada recurso (usuário, treino, exercício, etc).app/database.py: Configuração do banco de dados.requirements.txt: Dependências do projeto.
- Python 3.9+
- MySQL ou outro banco compatível com SQLAlchemy
- (Opcional) Docker
O projeto já possui um docker-compose.yml configurado para subir tanto o banco de dados (MariaDB) quanto a API Python.
-
Clone o repositório e acesse a pasta do projeto:
git clone https://github.com/Nertonm/treino-track.git cd treino-track -
(Opcional) Ajuste variáveis de ambiente
Se necessário, edite odocker-compose.ymlpara alterar usuário, senha ou nome do banco. -
Suba os containers:
docker-compose up
Isso irá:
- Subir o banco MariaDB na porta 3306
- Subir a API FastAPI na porta 8000
-
Acesse a API:
- Documentação Swagger: http://localhost:8000/docs
- Banco de dados MariaDB disponível em
localhost:3306(usuário/senha conformedocker-compose.yml)
-
Parar os containers:
docker-compose down
- O diretório
./appé montado no container Python, permitindo hot reload durante o desenvolvimento. - Scripts de inicialização do banco podem ser colocados em
db-init/. - Certifique-se de que as configurações de conexão do banco em
app/database.pyestejam compatíveis com as variáveis dodocker-compose.yml.
- Clone o repositório:
git clone https://github.com/Nertonm/treino-track.git cd treino-track/app - Instale as dependências:
pip install -r requirements.txt
- Configure o acesso ao banco de dados em um arquivo
.envou diretamente emdatabase.py.
- Na pasta
app, rode:uvicorn main:app --reload
- Acesse a documentação interativa em:
http://127.0.0.1:8000/docs
A API expõe endpoints REST para todos os recursos principais do sistema. Consulte /docs para exemplos de payloads e rotas.
- Fork este repositório.
- Crie uma branch (
git checkout -b minha-feature). - Faça commits e push (
git commit -m 'Minha feature'). - Abra um Pull Request.
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Para dúvidas ou sugestões, abra uma issue no GitHub.
