Une application Next.js complète pour générer des entraînements de boxe anglaise personnalisés avec l'intelligence artificielle.
- Génération d'entraînements IA : Créez des programmes personnalisés avec Together.ai
- Timer dynamique : Minuteur intelligent qui s'adapte automatiquement à chaque exercice
- Base de données intégrée : Sauvegarde automatique de tous vos entraînements
- Interface moderne : Design responsive avec Tailwind CSS
- Historique complet : Accédez à tous vos entraînements précédents
- Cloner le projet
git clone <repository-url>
cd boxing_timer_ia- Installer les dépendances
npm install- Configurer les variables d'environnement
# Créer .env.local avec :
DATABASE_URL="file:./dev.db"
TOGETHER_API_KEY="your-together-ai-api-key"- Initialiser la base de données
npx prisma generate
npx prisma db push- Lancer l'application
npm run devL'application sera accessible sur http://localhost:3000
boxing_timer_ia/
├── src/
│ ├── app/ # Pages et API routes (App Router)
│ │ ├── api/ # Endpoints API
│ │ ├── workout/[id]/ # Page d'entraînement
│ │ ├── history/ # Historique des entraînements
│ │ ├── page.tsx # Page d'accueil
│ │ └── layout.tsx # Layout principal
│ ├── components/ # Composants React réutilisables
│ │ ├── ui/ # Composants UI de base
│ │ ├── timer/ # Composants du timer
│ │ └── WorkoutCard.tsx # Carte d'entraînement
│ ├── lib/ # Utilitaires et configurations
│ │ ├── db.ts # Configuration Prisma
│ │ ├── together.ts # Intégration Together.ai
│ │ └── utils.ts # Fonctions utilitaires
│ ├── hooks/ # Hooks React personnalisés
│ │ └── useTimer.ts # Hook pour le timer
│ └── types/ # Définitions TypeScript
│ └── workout.ts # Types pour les entraînements
├── prisma/
│ └── schema.prisma # Schéma de base de données
└── plan.md # Journal de développement
- Next.js 13+ avec App Router
- TypeScript pour le typage statique
- Tailwind CSS pour le styling
- Prisma avec SQLite pour la base de données
- Together.ai API pour la génération IA
- Lucide React pour les icônes
- Accédez à la page d'accueil
- Décrivez votre entraînement souhaité dans le formulaire
- Cliquez sur "Générer mon entraînement"
- L'IA créera un programme personnalisé
Exemple de demande :
Génère moi un entraînement de boxe anglaise sur 1h, je veux commencer par de la corde à sauter pour l'échauffement. Je suis seul, j'ai un sac de frappe et une corde à sauter.
- Une fois l'entraînement généré, vous accédez à la page timer
- Cliquez sur "Démarrer" pour commencer
- Le timer s'adapte automatiquement à chaque exercice
- Utilisez les contrôles (Pause, Suivant, Reset) selon vos besoins
- Cliquez sur "Voir mes entraînements précédents"
- Parcourez tous vos entraînements sauvegardés
- Cliquez sur un entraînement pour le relancer
POST /api/generate-workout- Génère un nouvel entraînementGET /api/workouts- Liste tous les entraînementsGET /api/workouts/[id]- Récupère un entraînement spécifique
{
"title": "Entraînement de Boxe",
"description": "Description de l'entraînement",
"duration": 60,
"equipment": ["Gants", "Sac de frappe"],
"sections": [
{
"name": "Échauffement",
"duration": 10,
"exercises": [
{
"name": "Corde à sauter",
"description": "Instructions détaillées",
"duration": 300,
"rounds": 1,
"restTime": 0
}
]
}
]
}- Connectez votre dépôt GitHub à Vercel
- Ajoutez les variables d'environnement dans les paramètres Vercel
- Déployez automatiquement
L'application peut être déployée sur toute plateforme supportant Next.js :
- Netlify
- Railway
- DigitalOcean App Platform
# Base de données
DATABASE_URL="file:./dev.db"
# API Together.ai
TOGETHER_API_KEY="your-api-key-here"- Fork le projet
- Créez une branche pour votre fonctionnalité
- Committez vos changements
- Poussez vers la branche
- Ouvrez une Pull Request
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
Pour toute question ou problème, ouvrez une issue sur GitHub.
Développé avec ❤️ pour la communauté de boxe anglaise