101 lines
3.3 KiB
Markdown
101 lines
3.3 KiB
Markdown
# 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 |