Initial commit : CMS Simplifié
This commit is contained in:
101
README.md
Normal file
101
README.md
Normal 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).
|
||||
|
||||
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
|
||||
Reference in New Issue
Block a user