https://github.com/yurilrodrigues/workout-tracker
Interface web para gerenciamento de treinos, exercícios e logs de academia, com dashboard, perfil do usuário, autenticação e visualização de métricas.
https://github.com/yurilrodrigues/workout-tracker
eslint kubb nextjs prettier react tailwindcss typescript
Last synced: 3 months ago
JSON representation
Interface web para gerenciamento de treinos, exercícios e logs de academia, com dashboard, perfil do usuário, autenticação e visualização de métricas.
- Host: GitHub
- URL: https://github.com/yurilrodrigues/workout-tracker
- Owner: YuriLRodrigues
- Created: 2025-05-14T17:46:14.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2025-05-24T00:17:52.000Z (5 months ago)
- Last Synced: 2025-06-11T06:42:15.983Z (4 months ago)
- Topics: eslint, kubb, nextjs, prettier, react, tailwindcss, typescript
- Language: TypeScript
- Homepage: https://workout-tracker-app-three.vercel.app/
- Size: 12 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 💪 Workout Tracker - Plataforma de Gestão de Treinos Pessoais (Frontend)
O **Workout Tracker (Frontend)** é a interface web da plataforma de treinos, desenvolvida com **Next.js 15 + React 19**, voltada à **experiência do usuário final**, seja um aluno, personal trainer ou administrador.
A aplicação permite **criar, editar, visualizar e registrar treinos**, acompanhar métricas de desempenho, editar perfil, interagir com dashboards inteligentes, fazer upload de imagens e muito mais.
Construída com **Server & Client Components**, **Cookies de autenticação**, **Tailwind CSS**, **React Query**, **T3-OSS**, e uma arquitetura limpa, a aplicação é **escalável, acessível, performática e responsiva**.
---
## 🚀 Funcionalidades Atuais
- 🧑💻 Login e cadastro com JWT via cookies
- ⚙️ Dashboard inteligente com KPIs e estatísticas de treino
- 🏋️ Visualização e execução de treinos e exercícios
- 📝 Criação e registro de logs de exercícios
- 📈 Gráficos com progresso semanal/mensal
- 👤 Perfil com avatar, dados físicos e informações pessoais
- 🖼️ Upload de imagem de perfil via MinIO
- 🧭 Navegação responsiva e fluida
- 🔁 Gerenciamento de cache e requisições com React Query
- 🧪 Testes automatizados com Jest e Cypress---
## 🛠️ Tecnologias Utilizadas
| Tecnologia | Descrição |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
|  | **Next.js 15** — Framework React com renderização híbrida |
|  | **React 19** — Biblioteca base para criação de interfaces |
|  | **TypeScript** — Tipagem estática e robustez |
|  | **Tailwind CSS** — Estilização utilitária e responsiva |
|  | **shadcn/ui** — Design System baseado em Tailwind |
|  | **Radix UI** — Componentes acessíveis e customizáveis |
|  | **Lucide Icons** — Ícones modernos e personalizáveis |
|  | **React Hook Form** — Manipulação de formulários |
|  | **Zod** — Validação de schemas |
|  | **React Query** — Gerenciamento de dados assíncronos |
|  | **T3 Stack** — Padrão de estrutura moderna para apps TypeScript |
|  | **Jest** — Testes unitários |
|  | **date-fns** — Manipulação de datas |
|   | **ESLint + Prettier** — Qualidade e formatação de código |
|  | **pnpm** — Gerenciador de pacotes |---
## 📁 Estrutura de Pastas
```bash
src/
├── app/
│ ├── (home)/
│ ├── auth/
│ │ ├── components/
│ │ ├── forgot-password/
│ │ ├── new-password/
│ │ ├── sign-in/
│ │ ├── sign-up/
│ │ └── layout.tsx
│ ├── dashboard/
│ │ ├── components/
│ │ ├── history/
│ │ ├── settings/
│ │ ├── stats/
│ │ ├── workouts/
│ │ ├── layout.tsx
│ │ └── page.tsx
│ ├── favicon.ico
│ ├── globals.css
│ ├── layout.tsx
│ └── not-found.tsx
├── auth/
├── components/
├── context/
├── hooks/
├── http/
├── lib/
├── providers/
├── utils/
├── env.mjs
└── middleware.ts
```## 📦 Instalação
```bash
pnpm install
pnpm generate # geração das chamadas de acordo com o swagger da API configurada no arquivo kubb.config.ts
```## 🛠️ Desenvolvimento
```bash
pnpm dev
```## 🚨 Produção
```bash
pnpm build
pnpm start
```## 🔑 Variáveis de Ambiente
Crie um arquivo .env.local com:
```bash
NEXT_PUBLIC_API_URL=""
```## 🔮 Funcionalidades Futuras
- 🎨 Personalização de cores e temas
- 🔔 Notificações in-app
- 📲 Versão mobile/PWA com push notifications
- 📆 Calendário de treinos
- 🧠 Recomendações de treino via IA
- 👥 Relacionamento com outros usuários (personal, amigos)
- 💳 Gestão de planos e pagamentos (Stripe)
## 📬 Contato
- **Autor**: 👨💻 [YuriLRodrigues](https://github.com/YuriLRodrigues)
- **LinkedIn**: [Yuri Leite Rodrigues](https://www.linkedin.com/in/yuri-leite-rodrigues)