Plataforma profissional de rastreamento de progressão de treinos com Clean Architecture
- Sobre o Projeto
- Galeria Visual
- Características
- Arquitetura
- Stack Tecnológico
- Projetos
- Como Começar
- Documentação
- Status
CargaLog é uma plataforma enterprise para rastreamento de progressão de treinos de musculação. Desenvolvida com Clean Architecture, Domain-Driven Design (DDD) e princípios SOLID, oferece uma experiência integrada entre:
- 🖥️ Backend robusto com API REST escalável
- 🌐 Web responsivo com dashboard moderno
- 📱 App nativo para iOS e Android
Permitir que atletas, personal trainers e academias registrem, analisem e acompanhem a evolução de carga em tempo real através de múltiplos dispositivos com sincronização automática e segura.
- ✅ Autenticação JWT com expiração configurável
- ✅ Criptografia de senhas com bcrypt (10 rounds)
- ✅ Validação de entrada em todas as rotas
- ✅ CORS configurado para produção
- ✅ Rate limiting e proteção contra ataque
- ✅ Registro de treinos com validações robustas
- ✅ Histórico completo de exercícios
- ✅ Cálculo automático de carga máxima e volume
- ✅ Filtros avançados por período, exercício, etc.
- ✅ Comparação de progressão entre treinos
- ✅ Estatísticas gerais do usuário
- ✅ Gráficos de progressão de carga
- ✅ Ranking de exercícios mais treinados
- ✅ Relatórios personalizados
- ✅ Exportação de dados
- ✅ Sincronização em tempo real entre dispositivos
- ✅ Offline-first no mobile
- ✅ Conflito resolution automático
- ✅ Backup automático na nuvem
O projeto segue uma arquitetura limpa com camadas bem definidas:
┌─────────────────────────────────────────┐
│ Apresentação (Web/Mobile) │
├─────────────────────────────────────────┤
│ Interface Adapters (Controllers/API) │
├─────────────────────────────────────────┤
│ Application (Use Cases/Services) │
├─────────────────────────────────────────┤
│ Domain (Entities/Value Objects) │
├─────────────────────────────────────────┤
│ Frameworks & Drivers (DB/HTTP/Auth) │
└─────────────────────────────────────────┘
- SRP: Cada classe tem uma única responsabilidade
- OCP: Aberto para extensão, fechado para modificação
- LSP: Subtypes substituem base types sem quebrar
- ISP: Interfaces específicas, não genéricas
- DIP: Dependência em abstrações, não em concretos
{
"runtime": "Node.js 22",
"framework": "NestJS 11",
"adapter": "FastifyAdapter",
"database": "PostgreSQL 15",
"orm": "TypeORM",
"auth": "JWT + Passport",
"validation": "Class-validator",
"logging": "Winston + Audit Log",
"apiDocs": "Swagger/OpenAPI",
"testing": "Vitest (305 tests)",
"containerization": "Docker & Docker Compose"
}{
"library": "React 19",
"language": "TypeScript",
"buildTool": "Vite 8",
"styling": "Tailwind CSS 4",
"httpClient": "Axios",
"routing": "React Router",
"stateManagement": "Context API + Hooks",
"charts": "Recharts",
"packager": "npm"
}{
"framework": "React Native 0.84",
"platform": "React Native CLI",
"language": "TypeScript",
"styling": "NativeWind (Tailwind CSS)",
"navigation": "React Navigation",
"storage": "AsyncStorage",
"httpClient": "Axios",
"stateManagement": "Context API",
"testing": "Vitest (13 tests)",
"packager": "npm"
}CargaLog/
├── 📘 backend/ # API REST (NestJS)
│ ├── src/
│ │ ├── domain/ # Entidades, Value Objects, Repositórios
│ │ ├── application/ # Use Cases, DTOs
│ │ ├── interface-adapters/ # Controllers, Repositories Impl
│ │ ├── frameworks/ # NestJS Modules, TypeORM
│ │ └── shared/ # Decorators, Filters, Services
│ ├── test/ # Testes E2E
│ ├── Dockerfile
│ ├── docker-compose.yml
│ ├── package.json
│ ├── README.md # 📖 Documentação Detalhada
│ └── README_EN.md
│
├── 🌐 frontend/ # Dashboard Web (React + Vite)
│ ├── src/
│ │ ├── api/ # HTTP clients
│ │ ├── pages/ # Componentes de página
│ │ ├── components/ # Componentes reutilizáveis
│ │ ├── hooks/ # Custom Hooks
│ │ ├── contexts/ # Context API
│ │ ├── utils/ # Utilitários
│ │ └── styles/ # CSS Global + Tailwind
│ ├── public/ # Assets estáticos
│ ├── package.json
│ ├── vite.config.ts
│ ├── tailwind.config.js
│ ├── README.md # 📖 Documentação Detalhada
│ └── README_EN.md
│
├── 📱 mobile/ # App Nativo (React Native)
│ ├── src/
│ │ ├── screens/ # Telas do app
│ │ ├── components/ # Componentes RN
│ │ ├── navigation/ # React Navigation
│ │ ├── api/ # HTTP clients
│ │ ├── contexts/ # Context API
│ │ ├── hooks/ # Custom Hooks
│ │ └── utils/ # Utilitários
│ ├── app.json
│ ├── babel.config.js
│ ├── metro.config.js
│ ├── tailwind.config.js
│ ├── package.json
│ ├── README.md # 📖 Documentação Detalhada
│ └── README_EN.md
│
├── 📋 ARCHITECTURE.md # 🏗️ Detalhes arquitetura completa
├── 📄 README.md # Este arquivo
├── 📄 README_EN.md # English version
├── 📋 IDEAS.md # Roadmap e ideias futuras
├── 📋 LICENSE # MIT License
└── 📋 next-steps.txt # Próximas ações
# Verificar versões mínimas
node --version # v22.0.0+
npm --version # v10.0.0+
git --version # 2.30+
# Ferramentas opcionais
docker --version # Para containerização
postgresql --version # Se usar local (caso contrário use Docker)git clone https://github.com/seu-usuario/cargalog.git
cd CargaLogcd backend
# Instalar dependências
npm install
# Configurar ambiente
cp .env.example .env
# Migrations do banco (ou usar docker-compose)
npm run migration:run
# Iniciar servidor
npm run start:devAcesso: http://localhost:3000
Documentação: http://localhost:3000/api
cd frontend
# Instalar dependências
npm install
# Iniciar desenvolvimento
npm run devAcesso: http://localhost:5173
cd mobile
# Instalar dependências
npm install
# Terminal 1
npm run start
# Terminal 2 (Android)
npm run android
# Terminal 2 (iOS - macOS)
npm run ios# Na raiz do projeto
cd backend
# Build e iniciar
docker-compose up -d
# Migrations automáticas
npm run migration:run- Backend - API REST, autenticação, banco de dados
- Frontend - Dashboard web, componentes, estado
- Mobile - App nativo, sincronização, offline
- ARCHITECTURE.md - Clean Architecture, DDD, SOLID
- IDEAS.md - Roadmap e funcionalidades futuras
- API Docs (Swagger) - Após iniciar backend
- NestJS Docs
- React Docs
- React Native Docs
- Clean Architecture
- DDD Fundamentals
- Backend API completa com CRUD
- Autenticação com JWT
- Validações e tratamento de erro
- Testes unitários e E2E (Backend: 305, Frontend: 31, Mobile: 13)
- Documentação API Swagger/OpenAPI
- Logging com Winston + Audit Log no banco
- Docker setup completo
- Clean Architecture implementada
- Frontend web - Dashboard interativo
- Mobile app - Sincronização real-time
- Gráficos avançados
- Notificações push
- Biometria no mobile
- Sistema de grupos e competições
- Integração com wearables
- IA para recomendações de treino
- Marketplace de planos de treino
- Certificação de Personal Trainers
- Versão desktop (Electron)
- Fork o projeto
- Crie uma branch (
git checkout -b feature/MinhaFeature) - Commit suas mudanças (
git commit -m 'Add: nova feature') - Push para a branch (
git push origin feature/MinhaFeature) - Abra um Pull Request
- Use conventional commits:
feat:,fix:,docs:,refactor: - Exemplo:
feat(backend): adicionar validação de carga

















