Skip to content

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.

Notifications You must be signed in to change notification settings

YuriLRodrigues/workout-tracker

Repository files navigation

💪 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 Next.js 15 — Framework React com renderização híbrida
React React 19 — Biblioteca base para criação de interfaces
TypeScript TypeScript — Tipagem estática e robustez
Tailwind CSS Tailwind CSS — Estilização utilitária e responsiva
Shadcn/UI shadcn/ui — Design System baseado em Tailwind
Radix UI Radix UI — Componentes acessíveis e customizáveis
Lucide Lucide Icons — Ícones modernos e personalizáveis
React Hook Form React Hook Form — Manipulação de formulários
Zod Zod — Validação de schemas
React Query React Query — Gerenciamento de dados assíncronos
T3-OSS T3 Stack — Padrão de estrutura moderna para apps TypeScript
Jest Jest — Testes unitários
date-fns date-fns — Manipulação de datas
ESLint Prettier ESLint + Prettier — Qualidade e formatação de código
pnpm pnpm — Gerenciador de pacotes

📁 Estrutura de Pastas

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

pnpm install
pnpm generate # geração das chamadas de acordo com o swagger da API configurada no arquivo kubb.config.ts

🛠️ Desenvolvimento

pnpm dev

🚨 Produção

pnpm build
pnpm start

🔑 Variáveis de Ambiente

Crie um arquivo .env.local com:

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

About

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.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages