Compare commits
No commits in common. "main" and "v.1.3.2" have entirely different histories.
186
README.md
186
README.md
@ -1,59 +1,179 @@
|
|||||||
# Lectures d'Esenjin - Plateforme de Publication de Romans
|
# Plateforme de Publication de Romans en Ligne
|
||||||
|
|
||||||
Une plateforme web élégante pour la publication et la lecture de romans, développée en PHP avec stockage JSON.
|
Une plateforme web simple et élégante pour la publication et la lecture de romans en ligne, développée en PHP avec stockage JSON.
|
||||||
|
|
||||||

|
## 🚀 Fonctionnalités
|
||||||
|
|
||||||
## Fonctionnalités principales
|
|
||||||
|
|
||||||
### 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 (Quill.js)
|
- Création et édition de romans avec éditeur WYSIWYG
|
||||||
- Gestion des chapitres avec réorganisation par glisser-déposer
|
- Gestion flexible des chapitres avec réorganisation par glisser-déposer
|
||||||
- Mode brouillon pour les chapitres en cours de rédaction
|
- Prévisualisation avant publication
|
||||||
- Système d'upload et de gestion d'images
|
- Stockage JSON pour une maintenance simplifiée
|
||||||
- Gestion des accès utilisateurs (administrateurs, éditeurs)
|
- Système d'upload d'images avec redimensionnement automatique
|
||||||
- Import/Export des romans au format ZIP
|
- Gestion des métadonnées (date de création, mise à jour, etc.)
|
||||||
- Personnalisation des options du site (logo, bannière, informations)
|
- Import/Export des romans
|
||||||
|
- Gestion du profil et des options du site
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
### Zone Publique
|
### Zone Publique
|
||||||
- Interface de lecture épurée aux tons bruns/ocre
|
- Interface de lecture épurée et confortable
|
||||||
- Navigation intuitive entre les chapitres
|
- Navigation intuitive entre les chapitres
|
||||||
- Design responsive optimisé pour tous les appareils
|
- Design responsive optimisé pour la lecture
|
||||||
- Section "À propos" personnalisable avec statistiques automatiques
|
- Thème personnalisé aux tons bruns/ocre
|
||||||
- Indicateurs pour nouveaux chapitres et contenus en cours de rédaction
|
- Affichage adaptatif des images et du contenu
|
||||||
|
|
||||||
## Prérequis techniques
|

|
||||||
|

|
||||||
|
|
||||||
|
## 📋 Prérequis
|
||||||
|
|
||||||
- PHP 8.0 ou supérieur
|
- PHP 8.0 ou supérieur
|
||||||
- Extensions PHP : GD pour le traitement des images
|
- Serveur web (Apache/Nginx) avec mod_rewrite activé
|
||||||
- Permissions d'écriture sur les dossiers `stories/` et `assets/images/`
|
- Extensions PHP : GD ou Imagick pour le traitement des images
|
||||||
|
- Permissions d'écriture sur les dossiers `stories/`, `assets/images/` et `admin/`
|
||||||
|
|
||||||
## Installation rapide
|
## 🛠️ Installation
|
||||||
|
|
||||||
1. Clonez le dépôt
|
1. Clonez le dépôt :
|
||||||
2. Copiez et modifiez `config.json` avec vos paramètres
|
```bash
|
||||||
3. Définissez les permissions appropriées sur les dossiers
|
git clone https://github.com/votre-username/nom-du-projet.git
|
||||||
4. Accédez à `/admin` pour commencer à gérer vos romans
|
cd nom-du-projet
|
||||||
|
```
|
||||||
|
|
||||||
## Structure du projet
|
2. Configurez votre serveur web pour pointer vers le dossier racine du projet
|
||||||
|
|
||||||
|
3. Copiez et modifiez le fichier de configuration :
|
||||||
|
```bash
|
||||||
|
cp config.example.json config.json
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Modifiez `config.json` avec vos paramètres :
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"site": {
|
||||||
|
"name": "Votre Site",
|
||||||
|
"url": "https://votre-domaine.com",
|
||||||
|
"description": "Description de votre site",
|
||||||
|
"logo": "assets/images/logo.png"
|
||||||
|
},
|
||||||
|
"users": [
|
||||||
|
{
|
||||||
|
"id": "admin",
|
||||||
|
"password": "votre_mot_de_passe_hashé"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
5. Définissez les permissions appropriées :
|
||||||
|
```bash
|
||||||
|
chmod 755 .
|
||||||
|
chmod 644 config.json
|
||||||
|
chmod -R 755 stories/
|
||||||
|
chmod -R 755 assets/images/
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📁 Structure du Projet
|
||||||
|
|
||||||
```
|
```
|
||||||
/
|
/
|
||||||
├── admin/ # Zone administrative
|
├── admin/ # Zone administrative sécurisée
|
||||||
├── assets/ # Ressources statiques (CSS, JS, images)
|
│ ├── api/ # Endpoints API pour les opérations CRUD
|
||||||
|
│ ├── index.php # Dashboard administratif
|
||||||
|
│ └── login.php # Page de connexion
|
||||||
|
├── assets/ # Ressources statiques
|
||||||
|
│ ├── css/ # Styles CSS
|
||||||
|
│ ├── js/ # Scripts JavaScript
|
||||||
|
│ └── images/ # Images uploadées
|
||||||
|
│ ├── covers/ # Couvertures des romans
|
||||||
|
│ └── chapters/ # Images des chapitres
|
||||||
├── includes/ # Fichiers PHP réutilisables
|
├── includes/ # Fichiers PHP réutilisables
|
||||||
├── stories/ # Romans au format JSON
|
├── stories/ # Dossier contenant les récits (JSON)
|
||||||
├── config.json # Configuration du site
|
├── config.json # Configuration du site
|
||||||
└── index.php # Page d'accueil
|
└── index.php # Page d'accueil publique
|
||||||
```
|
```
|
||||||
|
|
||||||
## Sécurité
|
## 🔒 Sécurité
|
||||||
|
|
||||||
- Authentification sécurisée avec hashage des mots de passe
|
- Authentification sécurisée avec hashage des mots de passe
|
||||||
- Protection contre les injections et les attaques XSS
|
- Protection contre les attaques XSS et CSRF
|
||||||
- Validation des données et restrictions sur les uploads
|
- 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
|
||||||
|
|
||||||
## License
|
## 🌐 Utilisation
|
||||||
|
|
||||||
|
### Interface Administrative
|
||||||
|
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. 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é (`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
|
||||||
|
|
||||||
Ce projet est sous licence MIT - voir le fichier [LICENSE.md](LICENSE.md) pour plus de détails.
|
Ce projet est sous licence MIT - voir le fichier [LICENSE.md](LICENSE.md) pour plus de détails.
|
@ -45,9 +45,7 @@ $canViewDrafts = Auth::check() && Auth::canAccessStory($storyId);
|
|||||||
<div class="novel-header-background" style="background-image: url('<?= htmlspecialchars($story['cover']) ?>');"></div>
|
<div class="novel-header-background" style="background-image: url('<?= htmlspecialchars($story['cover']) ?>');"></div>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<div class="header-actions">
|
<div class="header-actions">
|
||||||
<a href="index.php" class="about-button">
|
<a href="index.php" class="about-button">Accueil</a>
|
||||||
<i class="fas fa-home"></i> Accueil
|
|
||||||
</a>
|
|
||||||
</div>
|
</div>
|
||||||
<h1><?= htmlspecialchars($story['title']) ?></h1>
|
<h1><?= htmlspecialchars($story['title']) ?></h1>
|
||||||
</header>
|
</header>
|
||||||
|
@ -1 +1 @@
|
|||||||
1.3.3
|
1.3.2
|
Loading…
x
Reference in New Issue
Block a user