Aplicação web para registrar treinos de corrida e gerenciar planos de treino.
- ✅ Registrar Treinos: Registre seus treinos com distância, duração, ritmo e observações
- ✅ Histórico: Visualize todos os seus treinos registrados com estatísticas
- ✅ Gráficos e Estatísticas: Visualize sua evolução com gráficos interativos
- Evolução da distância ao longo do tempo
- Distância total por mês
- Distribuição por tipo de treino
- Frequência de treinos por semana
- Evolução do ritmo
- ✅ Rotas no Mapa: Cadastre e gerencie suas rotas de corrida
- Desenhe rotas diretamente no mapa
- Visualize rotas nos treinos registrados
- Compare múltiplas rotas lado a lado
- Cálculo automático de distância
- ✅ Planos de Treino: Importe e gerencie planos de treino em formato JSON
- ✅ Filtros: Filtre treinos por tipo (treino, longão, tiro, recuperação)
- ✅ Sincronização Firebase: Seus dados são sincronizados automaticamente em todos os dispositivos
- Instale as dependências:
npm install- Inicie o servidor de desenvolvimento:
npm run dev- Abra o navegador em
http://localhost:5173
npm run buildOs arquivos estarão na pasta dist/.
Para acessar de qualquer dispositivo, faça o deploy em uma plataforma de hospedagem.
🚀 Opção mais fácil: Vercel
- Faça push do código para o GitHub
- Acesse vercel.com e conecte com GitHub
- Selecione o repositório e clique em "Deploy"
- Pronto! Sua aplicação estará online em segundos
📖 Guia completo: Veja DEPLOY.md para instruções detalhadas de deploy em várias plataformas.
running/
├── src/
│ ├── components/
│ │ ├── WorkoutForm.jsx # Formulário para registrar treinos
│ │ ├── WorkoutList.jsx # Lista e histórico de treinos
│ │ └── TrainingPlans.jsx # Gerenciamento de planos
│ ├── styles/
│ │ ├── index.css # Estilos globais
│ │ ├── App.css # Estilos do app principal
│ │ ├── WorkoutForm.css # Estilos do formulário
│ │ ├── WorkoutList.css # Estilos da lista
│ │ └── TrainingPlans.css # Estilos dos planos
│ ├── App.jsx # Componente principal
│ └── main.jsx # Ponto de entrada
├── index.html
├── package.json
└── vite.config.js
Os planos devem ser importados em formato JSON seguindo esta estrutura:
[
{
"id": 1,
"name": "Plano de 5K - Iniciante",
"duration": "8 semanas",
"description": "Plano para correr 5km em 8 semanas",
"weeks": [
{
"week": 1,
"workouts": [
{
"day": "Segunda",
"type": "Corrida leve",
"distance": "3km",
"duration": "20min"
}
]
}
]
}
]- React 18
- Vite
- CSS3 (sem frameworks)
- LocalStorage para persistência
MIT