Application web de gestion de bibliothèque personnelle avec challenge de lecture.
- Catalogue de livres : parcourir, ajouter et supprimer des livres
- Marquer comme lu : suivre ses lectures
- Challenge de lecture : se fixer un objectif annuel et suivre sa progression
- Livre aléatoire : obtenir une suggestion par genre
- Base de données : persistance via MySQL (API PHP)
- Frontend : HTML, Tailwind CSS v4, DaisyUI v5, JavaScript vanilla
- Backend : PHP, MySQL (PDO)
- Build : Vite
- Police : Lexend
- Thème : daisysword (custom DaisyUI)
npm install
npm run devLe serveur de dev proxy les appels /api vers http://localhost:8000.
Pour le backend PHP local :
php -S localhost:8000npm run buildLes fichiers de production sont générés dans dist/.
- Créer une base de données MySQL dans hPanel
- Exécuter
schema.sqldans phpMyAdmin - Copier
api/config.example.phpenapi/config.phpet remplir les identifiants
npm run build- Copier
api/et.htaccessdansdist/ - Uploader le contenu de
dist/danspublic_html/ - Accéder à
/api/seed.phppour importer les livres initiaux (une seule fois)
Ajouter ces secrets dans GitHub (Settings > Secrets > Actions) :
| Secret | Description |
|---|---|
FTP_HOST |
Serveur FTP Hostinger |
FTP_USER |
Utilisateur FTP |
FTP_PASSWORD |
Mot de passe FTP |
DB_NAME |
Nom de la base de données |
DB_USER |
Utilisateur de la base de données |
DB_PASSWORD |
Mot de passe de la base de données |
Chaque push sur main déclenche le build et le déploiement automatique.
├── index.html # Page principale
├── style.css # Tailwind + thème DaisyUI
├── script.js # Logique frontend
├── vite.config.js # Configuration Vite
├── schema.sql # Structure de la base de données
├── .htaccess # Sécurité et HTTPS
├── api/
│ ├── config.example.php # Template de configuration BDD
│ ├── books.php # CRUD livres
│ ├── read.php # Toggle lu/non lu
│ ├── challenge.php # CRUD challenge
│ └── seed.php # Import initial des livres
└── .github/workflows/
└── deploy.yml # Déploiement automatique