Skip to content

italovinicius18/train

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Train - Workout Management App

Um aplicativo completo de gerenciamento de treinos com frontend React e backend NestJS.

🏗️ Arquitetura

  • Frontend: React 18 + TypeScript + SWC + Tailwind CSS
  • Backend: NestJS + Prisma + PostgreSQL
  • Banco de Dados: PostgreSQL
  • Autenticação: JWT
  • Containerização: Docker & Docker Compose

📁 Estrutura do Projeto

train/
├── client/          # Frontend React
├── server/          # Backend NestJS
├── docker-compose.yml
├── .github/
│   └── workflows/
│       └── deploy.yml
└── README.md

🚀 Funcionalidades

✅ Autenticação

  • Sistema de login/registro
  • Proteção de rotas com JWT
  • Perfil do usuário

🏋️ Gerenciamento de Treinos

  • 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

📝 Check-in Diário

  • Marcar treinos como concluídos
  • Registrar cargas utilizadas
  • Anotações pessoais
  • Histórico completo

📊 Controle de Evolução

  • Gráficos de progressão
  • Histórico de cargas por exercício
  • Relatórios mensais
  • Análise de performance

🛠️ Instalação e Execução

Pré-requisitos

  • Docker e Docker Compose
  • Node.js 18+ (para desenvolvimento)
  • Git

Com Docker (Recomendado)

# 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

Desenvolvimento Local

Backend

cd server
npm install
npm run start:dev

Frontend

cd client
npm install
npm run dev

📚 API Endpoints

Autenticação

  • POST /auth/login - Login
  • POST /auth/register - Registro
  • GET /auth/profile - Perfil do usuário

Planos de Treino

  • GET /workout-plans - Listar planos
  • POST /workout-plans - Criar plano
  • PUT /workout-plans/:id - Editar plano
  • DELETE /workout-plans/:id - Deletar plano

Sessões de Treino

  • POST /workout-sessions - Criar check-in
  • GET /workout-sessions - Histórico
  • PUT /workout-sessions/:id - Atualizar check-in

Análises

  • GET /analytics/progress/:exerciseId - Progressão
  • GET /analytics/monthly-summary - Resumo mensal

🗄️ Modelo de Dados

User

interface User {
  id: string
  email: string
  name: string
  createdAt: Date
  updatedAt: Date
}

WorkoutPlan

interface WorkoutPlan {
  id: string
  userId: string
  name: string
  startDate: Date
  endDate: Date
  isActive: boolean
  workoutDays: WorkoutDay[]
}

Exercise

interface Exercise {
  id: string
  name: string
  sets: number
  reps: string
  currentWeight?: number
  notes?: string
}

🚀 Deploy

O projeto inclui configuração para deploy automático via GitHub Actions. Configure as variáveis de ambiente necessárias no seu repositório.

🔧 Variáveis de Ambiente

Backend (.env)

DATABASE_URL=postgresql://train_user:train_pass@localhost:5432/train_db
JWT_SECRET=your-super-secret-jwt-key
NODE_ENV=development

Frontend (.env)

REACT_APP_API_URL=http://localhost:3001

📝 Scripts Disponíveis

Backend

  • npm run start - Executar em produção
  • npm run start:dev - Executar em desenvolvimento
  • npm run build - Build do projeto
  • npm run test - Executar testes

Frontend

  • npm run dev - Executar em desenvolvimento
  • npm run build - Build do projeto
  • npm run preview - Preview do build

🤝 Contribuição

  1. Fork o projeto
  2. Crie uma branch para sua feature
  3. Commit suas mudanças
  4. Push para a branch
  5. Abra um Pull Request

📄 Licença

Este projeto está sob a licença MIT.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages