đŸȘ

Boutique en Ligne

Projet intĂ©grateur qui consolide les 8 modules de la formation. Vous allez concevoir le schĂ©ma complet, Ă©crire des requĂȘtes analytiques avancĂ©es, puis exposer les donnĂ©es via une API REST CRUD en PHP (PDO) et Node.js (mysql2).

Schema Design Jointures complexes Transactions Views & CTE PDO mysql2 Projet Final

đŸ—„ïž SchĂ©ma de la base

categories (id, nom, description, created_at)
↑ FK
produits (id, nom, description, prix, stock, categorie_id, actif, created_at, updated_at)
↑ FK
commande_produits (commande_id, produit_id, quantite, prix_unitaire)
↑ FK ↑ FK
commandes (id, client_id, statut, total, created_at)
↑ FK
clients (id, nom, prenom, email UNIQUE, telephone, ville, created_at)

📩 Livrables attendus

📄 schema.sql SQL

  • DROP / CREATE DATABASE
  • CrĂ©ation des 5 tables avec FK
  • Index de performance
  • DonnĂ©es de test (jeu complet)
  • Vues v_catalogue et v_stats_clients
  • ProcĂ©dure recalculer_totaux()

🐘 app.php PHP

  • Connexion PDO avec gestion d'erreurs
  • Routage manuel via $_SERVER['REQUEST_URI']
  • CRUD produits avec prepared statements
  • CRUD catĂ©gories
  • Endpoint GET /api/stats
  • RĂ©ponses JSON + codes HTTP corrects

🟱 app.js Node.js

  • Pool mysql2/promise
  • Serveur HTTP natif (pas de framework)
  • CRUD produits async/await
  • CRUD catĂ©gories
  • Endpoint GET /api/stats
  • Gestion des erreurs SQL

📊 RequĂȘtes analytiques

  • Top 5 produits les plus vendus
  • CA mensuel sur 12 mois
  • Segmentation clients (VIP/RĂ©gulier)
  • Produits en rupture de stock
  • Taux de conversion par catĂ©gorie

🔌 API REST — Endpoints

MéthodeURLDescription
GET/api/produitsListe paginée (?page=1&limit=10&cat=1)
GET/api/produits/:idDétail d'un produit avec sa catégorie
POST/api/produitsCréer un produit (JSON body)
PUT/api/produits/:idMettre Ă  jour un produit
DELETE/api/produits/:idSoft delete (actif = 0)
GET/api/categoriesListe des catégories
POST/api/categoriesCréer une catégorie
GET/api/statsKPIs globaux (CA, commandes, clients)

🚀 Phases de dĂ©veloppement

1

Conception du schéma SQL

CrĂ©er schema.sql — tables, FK, index, donnĂ©es de test, vues, procĂ©dure stockĂ©e

2

RequĂȘtes analytiques SQL

Top produits, CA mensuel, segmentation clients, stock critique — tester dans MySQL Workbench

3

API PHP (PDO) PHP

ImplĂ©menter app.php — routage, CRUD avec prepared statements, rĂ©ponses JSON

4

API Node.js (mysql2) Node.js

Porter app.php en JavaScript — app.js avec pool mysql2, serveur HTTP natif

5

Tests & validation

Tester tous les endpoints avec curl ou Postman — vĂ©rifier codes HTTP, JSON, gestion des erreurs

▶ Lancer la solution

# 1. Importer le schéma
mysql -u root -p < solution/schema.sql

# 2. API PHP (XAMPP ou built-in server)
cd solution
php -S localhost:8080

# 3. Tester PHP
curl http://localhost:8080/app.php/api/produits
curl http://localhost:8080/app.php/api/stats

# 4. API Node.js
npm install   # mysql2 requis
node app.js   # http://localhost:3000

# 5. Tester Node.js
curl http://localhost:3000/api/produits
curl -X POST http://localhost:3000/api/produits \
  -H "Content-Type: application/json" \
  -d '{"nom":"Nouveau","prix":29.99,"stock":50,"categorie_id":1}'

✅ Critùres de validation

🏆

FĂ©licitations — Formation MySQL terminĂ©e !

Vous maĂźtrisez maintenant la conception de schĂ©mas, les requĂȘtes avancĂ©es (CTE, fenĂȘtrage, sous-requĂȘtes), les transactions et la construction d'une API REST complĂšte avec PHP et Node.js.

⬇ schema.sql ⬇ app.php ⬇ app.js 🧠 QCM Final 🏠 Accueil Formation