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.yml
para 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.py
estejam 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
.env
ou 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.