diff --git a/README.md b/README.md index 3c0db86..e2b5578 100644 --- a/README.md +++ b/README.md @@ -7,21 +7,25 @@ Une plateforme web simple et élégante pour la publication et la lecture de rom ### Zone Administrative - Interface sécurisée pour la gestion des contenus - 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 - 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.) ### Zone Publique - Interface de lecture épurée et confortable - Navigation intuitive entre les chapitres - Design responsive optimisé pour la lecture - Thème personnalisé aux tons bruns/ocre +- Affichage adaptatif des images et du contenu ## 📋 Prérequis - PHP 8.0 ou supérieur - 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 @@ -61,6 +65,7 @@ cp config.example.json config.json chmod 755 . chmod 644 config.json chmod -R 755 stories/ +chmod -R 755 assets/images/ ``` ## 📁 Structure du Projet @@ -68,10 +73,15 @@ chmod -R 755 stories/ ``` / ├── 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 -│ ├── css/ -│ ├── js/ -│ └── images/ +│ ├── css/ # Styles CSS +│ ├── js/ # Scripts JavaScript +│ └── images/ # Images uploadées +│ ├── covers/ # Couvertures des romans +│ └── chapters/ # Images des chapitres ├── includes/ # Fichiers PHP réutilisables ├── stories/ # Dossier contenant les récits (JSON) ├── config.json # Configuration du site @@ -80,11 +90,13 @@ chmod -R 755 stories/ ## 🔒 Sécurité -- L'accès à la zone administrative est protégé par authentification -- Les mots de passe sont hashés +- Authentification sécurisée avec hashage des mots de passe - Protection contre les attaques XSS et CSRF - Validation des données entrantes +- Sanitization des sorties HTML - Restrictions sur les types de fichiers uploadés +- Redimensionnement automatique des images +- Sessions sécurisées avec paramètres renforcés ## 🌐 Utilisation @@ -92,22 +104,65 @@ chmod -R 755 stories/ 1. Accédez à `/admin` et connectez-vous 2. Utilisez le menu pour gérer vos romans et chapitres 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 - La page d'accueil liste tous les romans disponibles - Chaque roman a sa page dédiée avec description et chapitres - Navigation fluide entre les chapitres - 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 Les contributions sont les bienvenues ! Pour contribuer : 1. Forkez le projet -2. Créez une branche pour votre fonctionnalité -3. Committez vos changements -4. Poussez vers la branche +2. Créez une branche pour votre fonctionnalité (`git checkout -b feature/AmazingFeature`) +3. Committez vos changements (`git commit -m 'Add some AmazingFeature'`) +4. Poussez vers la branche (`git push origin feature/AmazingFeature`) 5. Ouvrez une Pull Request ## 📝 License