# Amorçage du projet Laravel

> Statut du poste : **PHP et Composer ne sont pas installés** (git, Docker, Node le sont).
> Deux options pour démarrer : (A) installer PHP/Composer en local, ou (B) tout faire dans Docker.

---

## Option A — Installer PHP 8.2+ et Composer (développement local Windows)

1. **PHP 8.2+** : le plus simple sous Windows est [Laragon](https://laragon.org/) (inclut PHP, MySQL, Apache)
   ou [XAMPP](https://www.apachefriends.org/). Sinon PHP seul via `winget install PHP.PHP.8.3`.
2. **Composer** : https://getcomposer.org/Composer-Setup.exe
3. Vérifier :
   ```powershell
   php -v
   composer --version
   ```

## Option B — Démarrer sans rien installer (via Docker, déjà présent)

```powershell
# Lancer un shell PHP+Composer jetable dans le dossier du projet
docker run --rm -it -v ${PWD}:/app -w /app composer:2 bash
# (à l'intérieur du conteneur, exécuter les commandes de la section suivante)
```

---

## Créer le projet Laravel dans ce dossier

> ⚠️ Le dossier contient déjà README.md, docs/, database/, deploy/, .env.example.
> Créer Laravel dans un sous-dossier temporaire puis fusionner, OU initialiser ici en
> conservant ces fichiers (Composer refuse un dossier non vide → on passe par un temp).

```bash
# 1. Générer Laravel dans un dossier temporaire
composer create-project laravel/laravel app-temp

# 2. Déplacer le contenu de app-temp/ ici (en gardant nos fichiers existants),
#    puis supprimer app-temp/. (Sous PowerShell : Move-Item / Remove-Item)

# 3. Dépendances de la plateforme
composer require livewire/livewire
composer require laravel/breeze --dev
php artisan breeze:install blade        # auth + Tailwind + Vite

# 4. Configuration
copy .env.example .env                  # (cp sous bash)
php artisan key:generate
#   -> renseigner DB_* puis :
php artisan migrate                      # tables Laravel

# 5. Schéma métier : créer les migrations à partir de database/schema.sql
#    (recréer chaque table en migration, ou importer le SQL puis générer les models)
mysql -u root -p plateforme_formation < database/schema.sql

# 6. Models & relations
php artisan make:model Category
php artisan make:model Formation
php artisan make:model FormationModule
php artisan make:model Lesson
php artisan make:model SessionFormation
php artisan make:model Enrollment
php artisan make:model LessonCompletion
php artisan make:model Order
php artisan make:model OrderItem
php artisan make:model Payment
php artisan make:model Certificate

# 7. Assets + serveur de dev
npm install
npm run build           # ou: npm run dev
php artisan serve
```

---

## Ordre de réalisation conseillé

Voir `docs/ROADMAP.md`. En résumé : Auth/rôles → Catalogue → Contenu e-learning →
Sessions blended → Panier/paiement Mobile Money → Attestations → Back-office, **puis**
l'implémentation des fonctionnalités d'IA (assistant, RAG sur le contenu).
