# Mini-Projet de Développement Web – CMS Simplifié ## Présentation du projet Ce mini-projet a été réalisé dans le cadre du module **Développement Web** (BTS CIEL – 2ᵉ année). L’objectif était de créer un **mini CMS** (Content Management System) simplifié permettant : - la **connexion sécurisée** d’un administrateur ; - la **création**, **modification** et **suppression** d’articles (CRUD) ; - l’affichage des données stockées en base **MySQL**. Le projet est réalisé **sans framework**, uniquement avec les langages vus en cours : **HTML, CSS, Bootstrap, PHP (PDO), et SQL**. --- ## Technologies utilisées | Technologie | Utilisation | |--------------|--------------| | **HTML5** | Structure des pages | | **CSS3 / Bootstrap 5** | Mise en forme et design responsive (thème noir & or) | | **PHP (Sessions, PDO)** | Connexion, sécurité et interaction avec MySQL | | **MySQL** | Base de données pour les utilisateurs et articles | | **Docker** | Conteneurs PHP/Apache et MySQL | | **Git / Gitea** | Gestion de version et hébergement du projet | --- ## Structure du projet cms-simplifie/ │ ├── public/ │ ├── assets/ │ │ └── style.css → Design global (thème noir & or) │ ├── add.php → Page d’ajout d’un article │ ├── edit.php → Page de modification d’un article │ ├── delete.php → Page de suppression d’un article │ ├── admin.php → Tableau de bord (gestion des articles) │ ├── login.php → Page de connexion administrateur │ ├── logout.php → Déconnexion │ ├── article.php → Lecture d’un article │ └── index.php → Accueil (affichage des articles) │ ├── inc/ │ └── db.php → Connexion PDO sécurisée à MySQL │ ├── scripts/ → (optionnel, outils ou scripts SQL) │ ├── .env.example → Exemple de configuration (sans mot de passe) ├── .gitignore → Exclut .env et fichiers sensibles ├── stack.bibli.yaml / Dockerfile → Configuration Docker └── README.md → Ce fichier --- ## Fonctionnalités principales - Connexion d’un utilisateur (admin) avec vérification du mot de passe haché. - Gestion complète des articles (**CRUD**) : créer, lire, modifier, supprimer. - Interface d’administration simple et claire. - Design **noir & or** pour une ambiance moderne et élégante. - Sécurisation via **sessions PHP** et **requêtes préparées PDO**. - Aucune donnée sensible visible dans le code source. --- ## Sécurité - Les identifiants MySQL sont stockés dans **`.env`**, jamais dans le code. - Le fichier `.gitignore` empêche toute fuite de `.env`. - Les mots de passe sont **hachés** avec `password_hash()` et vérifiés avec `password_verify()`. - Connexion à la base via **PDO** pour éviter les injections SQL. --- ## Lancer le projet en local ### Étapes : 1️⃣ Démarrer les conteneurs Docker : docker stack deploy -c stack.bibli.yaml cms 2️⃣ Copier le fichier .env.example pour créer ton .env personnel : cp .env.example .env 3️⃣ Modifier le fichier .env pour y mettre tes identifiants MySQL : DB_HOST=mysql DB_NAME=cms_simplifie DB_USER=root DB_PASS=tonmotdepasse 4️⃣ Accéder au site localement : 👉 http://localhost:8000 5️⃣ Tester la connexion à la base : 👉 http://localhost:8000/test-db.php