Um aplicativo completo de gerenciamento de treinos com frontend React e backend NestJS.
- Frontend: React 18 + TypeScript + SWC + Tailwind CSS
- Backend: NestJS + Prisma + PostgreSQL
- Banco de Dados: PostgreSQL
- Autenticação: JWT
- Containerização: Docker & Docker Compose
train/
├── client/ # Frontend React
├── server/ # Backend NestJS
├── docker-compose.yml
├── .github/
│ └── workflows/
│ └── deploy.yml
└── README.md
- Sistema de login/registro
- Proteção de rotas com JWT
- Perfil do usuário
- Criação de planos de treino mensais
- CRUD completo para exercícios
- Organização por grupos musculares
- Definição de séries e repetições
- Marcar treinos como concluídos
- Registrar cargas utilizadas
- Anotações pessoais
- Histórico completo
- Gráficos de progressão
- Histórico de cargas por exercício
- Relatórios mensais
- Análise de performance
- Docker e Docker Compose
- Node.js 18+ (para desenvolvimento)
- Git
# Clone o repositório
git clone <repository-url>
cd train
# Execute com Docker Compose
docker-compose up -d
# Acesse a aplicação
# Frontend: http://localhost:3000
# Backend: http://localhost:3001
# API Docs: http://localhost:3001/api
cd server
npm install
npm run start:dev
cd client
npm install
npm run dev
POST /auth/login
- LoginPOST /auth/register
- RegistroGET /auth/profile
- Perfil do usuário
GET /workout-plans
- Listar planosPOST /workout-plans
- Criar planoPUT /workout-plans/:id
- Editar planoDELETE /workout-plans/:id
- Deletar plano
POST /workout-sessions
- Criar check-inGET /workout-sessions
- HistóricoPUT /workout-sessions/:id
- Atualizar check-in
GET /analytics/progress/:exerciseId
- ProgressãoGET /analytics/monthly-summary
- Resumo mensal
interface User {
id: string
email: string
name: string
createdAt: Date
updatedAt: Date
}
interface WorkoutPlan {
id: string
userId: string
name: string
startDate: Date
endDate: Date
isActive: boolean
workoutDays: WorkoutDay[]
}
interface Exercise {
id: string
name: string
sets: number
reps: string
currentWeight?: number
notes?: string
}
O projeto inclui configuração para deploy automático via GitHub Actions. Configure as variáveis de ambiente necessárias no seu repositório.
DATABASE_URL=postgresql://train_user:train_pass@localhost:5432/train_db
JWT_SECRET=your-super-secret-jwt-key
NODE_ENV=development
REACT_APP_API_URL=http://localhost:3001
npm run start
- Executar em produçãonpm run start:dev
- Executar em desenvolvimentonpm run build
- Build do projetonpm run test
- Executar testes
npm run dev
- Executar em desenvolvimentonpm run build
- Build do projetonpm run preview
- Preview do build
- Fork o projeto
- Crie uma branch para sua feature
- Commit suas mudanças
- Push para a branch
- Abra um Pull Request
Este projeto está sob a licença MIT.