Mise à jour du README (version finale simplifiée)

This commit is contained in:
Safouane Bazzi
2025-11-02 18:44:47 +01:00
parent 6dc6fa3204
commit e67fe24f6a

125
README.md
View File

@@ -1,101 +1,82 @@
# Mini-Projet de Développement Web CMS Simplifié
README CMS Simplifié
- Présentation
## Présentation du projet
Ce mini-projet a été réalisé dans le cadre du module **Développement Web** (BTS CIEL 2ᵉ année).
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**.
Lobjectif est de créer un petit site de gestion darticles (mini CMS).
Un administrateur peut se connecter, ajouter, modifier ou supprimer des articles.
Les données sont stockées dans une 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
Le projet utilise uniquement les langages vus en cours :
HTML, CSS, Bootstrap, PHP et SQL.
- Technologies utilisées
Technologie Utilisation
HTML Structure des pages
CSS / Bootstrap 5 Mise en forme et design (thème noir et or)
PHP (PDO) Connexion à la base de données et gestion des pages dynamiques
MySQL Stockage des utilisateurs et des articles
Git / Gitea Sauvegarde 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)
├── assets/
└── style.css
├── add.php
├── edit.php
├── delete.php
├── admin.php
├── login.php
├── logout.php
├── article.php
└── index.php
├── inc/
│ └── db.php → Connexion PDO sécurisée à MySQL
└── db.php
├── 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
├── .env.example
├── .gitignore
── README.md
- Fonctionnalités principales
---
Connexion de ladministrateur avec un mot de passe haché
## 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.
Ajout, modification et suppression darticles
---
Liste des articles sur la page daccueil
## 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.
Thème sombre avec couleurs noir et or
---
Aucune information sensible visible sur Gitea
## Lancer le projet en local
- Sécurité
### Étapes :
Les identifiants MySQL sont stockés dans un fichier .env (non visible sur Gitea)
1⃣ Démarrer les conteneurs Docker :
Connexion sécurisée avec PDO et requêtes préparées
docker stack deploy -c stack.bibli.yaml cms
Mots de passe stockés avec password_hash() et vérifiés avec password_verify()
Fichier .gitignore empêche denvoyer les données sensibles
2⃣ Copier le fichier .env.example pour créer ton .env personnel :
- Exécution du projet en local
Étape 1 — Ouvrir le dossier dans VS Code
cp .env.example .env
Ouvre le dossier cms-simplifie.
Étape 2 — Vérifier le fichier .env
3⃣ Modifier le fichier .env pour y mettre tes identifiants MySQL :
Si tu nas pas de fichier .env, copie .env.example et renomme-le .env.
DB_HOST=mysql
DB_NAME=cms_simplifie
DB_USER=root
DB_PASS=tonmotdepasse
Étape 3 — Lancer le serveur PHP
Dans le terminal :
4⃣ Accéder au site localement :
👉 http://localhost:8000
php -S localhost:8000 -t public
5⃣ Tester la connexion à la base :
👉 http://localhost:8000/test-db.php
Étape 4 — Accéder au site
Va dans ton navigateur :
👉 http://localhost:8000