Files
cms-simplifie/README.md
2025-10-21 21:34:20 +02:00

101 lines
3.3 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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