Initial commit : CMS Simplifié

This commit is contained in:
Safouane Bazzi
2025-10-21 21:34:20 +02:00
commit 9e0c151fa6
17 changed files with 622 additions and 0 deletions

101
README.md Normal file
View File

@@ -0,0 +1,101 @@
# 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).
Lobjectif était de créer un **mini CMS** (Content Management System) simplifié permettant :
- la **connexion sécurisée** dun administrateur ;
- la **création**, **modification** et **suppression** darticles (CRUD) ;
- laffichage 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 dajout dun article
│ ├── edit.php → Page de modification dun article
│ ├── delete.php → Page de suppression dun article
│ ├── admin.php → Tableau de bord (gestion des articles)
│ ├── login.php → Page de connexion administrateur
│ ├── logout.php → Déconnexion
│ ├── article.php → Lecture dun 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 dun utilisateur (admin) avec vérification du mot de passe haché.
- Gestion complète des articles (**CRUD**) : créer, lire, modifier, supprimer.
- Interface dadministration 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