3.3 KiB
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
.gitignoreempêche toute fuite de.env. - Les mots de passe sont hachés avec
password_hash()et vérifiés avecpassword_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