Skip to content

Kevinmrgt/boxing_timer_ia

Repository files navigation

BoxingTimer IA

Une application Next.js complète pour générer des entraînements de boxe anglaise personnalisés avec l'intelligence artificielle.

🥊 Fonctionnalités

  • 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

🚀 Installation

  1. Cloner le projet
git clone <repository-url>
cd boxing_timer_ia
  1. Installer les dépendances
npm install
  1. Configurer les variables d'environnement
# Créer .env.local avec :
DATABASE_URL="file:./dev.db"
TOGETHER_API_KEY="your-together-ai-api-key"
  1. Initialiser la base de données
npx prisma generate
npx prisma db push
  1. Lancer l'application
npm run dev

L'application sera accessible sur http://localhost:3000

📋 Structure du Projet

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

🔧 Technologies Utilisées

  • 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

📖 Guide d'Utilisation

1. Créer un Entraînement

  1. Accédez à la page d'accueil
  2. Décrivez votre entraînement souhaité dans le formulaire
  3. Cliquez sur "Générer mon entraînement"
  4. 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.

2. Utiliser le Timer

  1. Une fois l'entraînement généré, vous accédez à la page timer
  2. Cliquez sur "Démarrer" pour commencer
  3. Le timer s'adapte automatiquement à chaque exercice
  4. Utilisez les contrôles (Pause, Suivant, Reset) selon vos besoins

3. Consulter l'Historique

  1. Cliquez sur "Voir mes entraînements précédents"
  2. Parcourez tous vos entraînements sauvegardés
  3. Cliquez sur un entraînement pour le relancer

🔗 API Endpoints

  • POST /api/generate-workout - Génère un nouvel entraînement
  • GET /api/workouts - Liste tous les entraînements
  • GET /api/workouts/[id] - Récupère un entraînement spécifique

🎯 Format JSON des Entraînements

{
  "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
        }
      ]
    }
  ]
}

🚀 Déploiement

Vercel (Recommandé)

  1. Connectez votre dépôt GitHub à Vercel
  2. Ajoutez les variables d'environnement dans les paramètres Vercel
  3. Déployez automatiquement

Autres Plateformes

L'application peut être déployée sur toute plateforme supportant Next.js :

  • Netlify
  • Railway
  • DigitalOcean App Platform

🔒 Variables d'Environnement

# Base de données
DATABASE_URL="file:./dev.db"

# API Together.ai
TOGETHER_API_KEY="your-api-key-here"

🤝 Contribution

  1. Fork le projet
  2. Créez une branche pour votre fonctionnalité
  3. Committez vos changements
  4. Poussez vers la branche
  5. Ouvrez une Pull Request

📄 Licence

Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.

📞 Support

Pour toute question ou problème, ouvrez une issue sur GitHub.


Développé avec ❤️ pour la communauté de boxe anglaise

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors