# Application Carb-Cycling - Papa In Shape

Application web Django pour vous aider à planifier vos repas selon la méthode du carb-cycling.

## Fonctionnalités

- 📅 **Tableau de bord hebdomadaire** : Visualisez et planifiez votre semaine
- 🔄 **3 types de journées** : Pauvre, Normal, Riche en glucides
- 🍽️ **Gestion des repas** : Planifiez vos repas (petit-déjeuner, déjeuner, collation, dîner)
- 📊 **Recommandations personnalisées** : Selon le type de journée
- 🥗 **Guide des aliments** : Liste complète des aliments avec portions standards
- 📖 **Guide du carb-cycling** : Explications détaillées de la méthode

## La méthode Carb-Cycling

Le carb-cycling consiste à alterner l'apport en glucides selon trois types de journées :

### 🔴 Jour Pauvre en glucides
- Glucides : 0-1 apport
- Protéines : 3-4 apports
- Lipides : 3-4 apports
- Légumes verts : Sans modération

### 🟡 Jour Normal
- Glucides : 2-3 apports
- Protéines : 3-4 apports
- Lipides : 2-3 apports
- Légumes verts : Sans modération

### 🟢 Jour Riche en glucides
- Glucides : 4-5 apports
- Protéines : 3-4 apports
- Lipides : 1-2 apports
- Légumes verts : Sans modération

## Installation

### Prérequis
- Python 3.8 ou supérieur
- pip (gestionnaire de paquets Python)

### Étapes d'installation

1. **Cloner ou télécharger le projet**
   ```bash
   cd carb_cycling_app
   ```

2. **Créer un environnement virtuel (recommandé)**
   ```bash
   python -m venv venv
   
   # Sur Windows
   venv\Scripts\activate
   
   # Sur Mac/Linux
   source venv/bin/activate
   ```

3. **Installer les dépendances**
   ```bash
   pip install -r requirements.txt
   ```

4. **Initialiser la base de données**
   ```bash
   python manage.py makemigrations
   python manage.py migrate
   ```

5. **Charger les aliments de référence**
   ```bash
   python manage.py load_aliments
   ```

6. **Créer un super utilisateur (admin)**
   ```bash
   python manage.py createsuperuser
   ```
   Suivez les instructions pour créer votre compte administrateur.

7. **Lancer le serveur de développement**
   ```bash
   python manage.py runserver
   ```

8. **Accéder à l'application**
   Ouvrez votre navigateur et allez sur : http://127.0.0.1:8000

## Utilisation

### Première utilisation

1. **Connectez-vous** avec le compte créé
2. **Accédez au tableau de bord** pour voir votre semaine
3. **Planifiez une journée** en cliquant sur "Planifier" pour un jour donné
4. **Choisissez le type** : Pauvre, Normal ou Riche en glucides
5. **Ajoutez des repas** (petit-déjeuner, déjeuner, collation, dîner)
6. **Composez vos repas** en ajoutant des aliments depuis le guide

### Navigation

- **Accueil** : Présentation de la méthode
- **Tableau de bord** : Vue hebdomadaire de vos journées
- **Aliments** : Guide complet des aliments avec portions
- **Guide** : Explications détaillées du carb-cycling

### Administration

Accédez à l'interface d'administration sur : http://127.0.0.1:8000/admin

Vous pouvez y gérer :
- Les utilisateurs
- Les aliments
- Les journées et repas

## Mise à jour de l'application

### Ajouter de nouveaux aliments

Vous pouvez ajouter des aliments via l'interface d'administration ou en modifiant le fichier :
`nutrition/management/commands/load_aliments.py`

Puis relancez la commande :
```bash
python manage.py load_aliments
```

### Personnaliser l'apparence

Les templates se trouvent dans : `nutrition/templates/nutrition/`
Les styles CSS sont dans le fichier : `nutrition/templates/nutrition/base.html`

## Structure du projet

```
carb_cycling_app/
├── manage.py                      # Script de gestion Django
├── requirements.txt               # Dépendances Python
├── carb_cycling/                  # Configuration du projet
│   ├── settings.py                # Paramètres Django
│   ├── urls.py                    # URLs principales
│   └── wsgi.py                    # Configuration WSGI
└── nutrition/                     # Application principale
    ├── models.py                  # Modèles de données
    ├── views.py                   # Vues (logique)
    ├── forms.py                   # Formulaires
    ├── urls.py                    # URLs de l'app
    ├── admin.py                   # Interface d'administration
    ├── templates/                 # Templates HTML
    │   └── nutrition/
    │       ├── base.html          # Template de base
    │       ├── index.html         # Page d'accueil
    │       ├── tableau_de_bord.html
    │       ├── guide.html
    │       └── ...
    └── management/                # Commandes personnalisées
        └── commands/
            └── load_aliments.py   # Chargement des aliments
```

## Dépannage

### La base de données n'est pas créée
```bash
python manage.py makemigrations
python manage.py migrate
```

### Les aliments ne s'affichent pas
```bash
python manage.py load_aliments
```

### Erreur "Port already in use"
Le port 8000 est peut-être déjà utilisé. Utilisez un autre port :
```bash
python manage.py runserver 8001
```

### Réinitialiser la base de données
⚠️ Attention : cela supprime toutes vos données !
```bash
rm db.sqlite3
python manage.py migrate
python manage.py createsuperuser
python manage.py load_aliments
```

## Sécurité

⚠️ **Important pour la production** :
- Changez la `SECRET_KEY` dans `settings.py`
- Mettez `DEBUG = False`
- Configurez `ALLOWED_HOSTS`
- Utilisez une vraie base de données (PostgreSQL, MySQL)
- Configurez les fichiers statiques avec `collectstatic`

## Support

Pour toute question ou problème :
1. Vérifiez la documentation Django : https://docs.djangoproject.com/
2. Consultez le guide Papa In Shape original

## Licence

Application inspirée de la méthode Papa In Shape.
À usage personnel uniquement.

## Crédits

- Méthode : Papa In Shape (Thomas & Pierre)
- Framework : Django
- Design : Bootstrap 5
