Compare commits

...

2 Commits

View File

@ -7,21 +7,32 @@ Une plateforme web simple et élégante pour la publication et la lecture de rom
### Zone Administrative ### Zone Administrative
- Interface sécurisée pour la gestion des contenus - Interface sécurisée pour la gestion des contenus
- Création et édition de romans avec éditeur WYSIWYG - Création et édition de romans avec éditeur WYSIWYG
- Gestion flexible des chapitres - Gestion flexible des chapitres avec réorganisation par glisser-déposer
- Prévisualisation avant publication - Prévisualisation avant publication
- Stockage JSON pour une maintenance simplifiée - Stockage JSON pour une maintenance simplifiée
- Système d'upload d'images avec redimensionnement automatique
- Gestion des métadonnées (date de création, mise à jour, etc.)
![image](https://concepts.esenjin.xyz/cyla/fichiers/67b1db9462f60_1739709332.png)
![image](https://concepts.esenjin.xyz/cyla/fichiers/67b1db949a6d2_1739709332.png)
![image](https://concepts.esenjin.xyz/cyla/fichiers/67b1db947d0d0_1739709332.png)
### Zone Publique ### Zone Publique
- Interface de lecture épurée et confortable - Interface de lecture épurée et confortable
- Navigation intuitive entre les chapitres - Navigation intuitive entre les chapitres
- Design responsive optimisé pour la lecture - Design responsive optimisé pour la lecture
- Thème personnalisé aux tons bruns/ocre - Thème personnalisé aux tons bruns/ocre
- Affichage adaptatif des images et du contenu
![image](https://concepts.esenjin.xyz/cyla/fichiers/67b1db949863b_1739709332.png)
![image](https://concepts.esenjin.xyz/cyla/fichiers/67b1db9569d54_1739709333.png)
## 📋 Prérequis ## 📋 Prérequis
- PHP 8.0 ou supérieur - PHP 8.0 ou supérieur
- Serveur web (Apache/Nginx) avec mod_rewrite activé - Serveur web (Apache/Nginx) avec mod_rewrite activé
- Permissions d'écriture sur les dossiers `stories/` et `admin/` - Extensions PHP : GD ou Imagick pour le traitement des images
- Permissions d'écriture sur les dossiers `stories/`, `assets/images/` et `admin/`
## 🛠️ Installation ## 🛠️ Installation
@ -61,6 +72,7 @@ cp config.example.json config.json
chmod 755 . chmod 755 .
chmod 644 config.json chmod 644 config.json
chmod -R 755 stories/ chmod -R 755 stories/
chmod -R 755 assets/images/
``` ```
## 📁 Structure du Projet ## 📁 Structure du Projet
@ -68,10 +80,15 @@ chmod -R 755 stories/
``` ```
/ /
├── admin/ # Zone administrative sécurisée ├── admin/ # Zone administrative sécurisée
│ ├── api/ # Endpoints API pour les opérations CRUD
│ ├── index.php # Dashboard administratif
│ └── login.php # Page de connexion
├── assets/ # Ressources statiques ├── assets/ # Ressources statiques
│ ├── css/ │ ├── css/ # Styles CSS
│ ├── js/ │ ├── js/ # Scripts JavaScript
│ └── images/ │ └── images/ # Images uploadées
│ ├── covers/ # Couvertures des romans
│ └── chapters/ # Images des chapitres
├── includes/ # Fichiers PHP réutilisables ├── includes/ # Fichiers PHP réutilisables
├── stories/ # Dossier contenant les récits (JSON) ├── stories/ # Dossier contenant les récits (JSON)
├── config.json # Configuration du site ├── config.json # Configuration du site
@ -80,11 +97,13 @@ chmod -R 755 stories/
## 🔒 Sécurité ## 🔒 Sécurité
- L'accès à la zone administrative est protégé par authentification - Authentification sécurisée avec hashage des mots de passe
- Les mots de passe sont hashés
- Protection contre les attaques XSS et CSRF - Protection contre les attaques XSS et CSRF
- Validation des données entrantes - Validation des données entrantes
- Sanitization des sorties HTML
- Restrictions sur les types de fichiers uploadés - Restrictions sur les types de fichiers uploadés
- Redimensionnement automatique des images
- Sessions sécurisées avec paramètres renforcés
## 🌐 Utilisation ## 🌐 Utilisation
@ -92,22 +111,65 @@ chmod -R 755 stories/
1. Accédez à `/admin` et connectez-vous 1. Accédez à `/admin` et connectez-vous
2. Utilisez le menu pour gérer vos romans et chapitres 2. Utilisez le menu pour gérer vos romans et chapitres
3. L'éditeur WYSIWYG permet une mise en forme riche du texte 3. L'éditeur WYSIWYG permet une mise en forme riche du texte
4. Prévisualisez vos modifications avant publication 4. Uploadez des images directement dans l'éditeur
5. Réorganisez les chapitres par glisser-déposer
6. Prévisualisez vos modifications avant publication
### Interface Publique ### Interface Publique
- La page d'accueil liste tous les romans disponibles - La page d'accueil liste tous les romans disponibles
- Chaque roman a sa page dédiée avec description et chapitres - Chaque roman a sa page dédiée avec description et chapitres
- Navigation fluide entre les chapitres - Navigation fluide entre les chapitres
- Interface adaptative pour une lecture confortable sur tous les appareils - Interface adaptative pour une lecture confortable sur tous les appareils
- Optimisation des images selon la taille d'écran
## 💾 Structure des Données
### Configuration (config.json)
```json
{
"site": {
"name": "Nom du Site",
"description": "Description du site",
"logo": "path/to/logo.png"
},
"users": [
{
"id": "admin",
"password": "hashed_password"
}
]
}
```
### Romans (stories/roman-id.json)
```json
{
"id": "roman-id",
"title": "Titre du Roman",
"description": "Description complète",
"cover": "assets/images/covers/cover.jpg",
"created": "2025-02-14",
"updated": "2025-02-14",
"chapters": [
{
"id": "chapitre-1",
"title": "Titre du Chapitre",
"content": "Contenu au format Delta/HTML",
"created": "2025-02-14",
"updated": "2025-02-14"
}
]
}
```
## 🤝 Contribution ## 🤝 Contribution
Les contributions sont les bienvenues ! Pour contribuer : Les contributions sont les bienvenues ! Pour contribuer :
1. Forkez le projet 1. Forkez le projet
2. Créez une branche pour votre fonctionnalité 2. Créez une branche pour votre fonctionnalité (`git checkout -b feature/AmazingFeature`)
3. Committez vos changements 3. Committez vos changements (`git commit -m 'Add some AmazingFeature'`)
4. Poussez vers la branche 4. Poussez vers la branche (`git push origin feature/AmazingFeature`)
5. Ouvrez une Pull Request 5. Ouvrez une Pull Request
## 📝 License ## 📝 License