Projet App gestion bibliothèque
Création une application web intuitive pour remplacer la gestion manuelle d'une bibliothèque, en centralisant les données et en automatisant les processus critiques (emprunts, réservations, notifications) en PHP / HTML etc..
Admin
12/1/20242 min read

Développement d'un outil complet pour automatiser la gestion des livres, des emprunts et des utilisateurs.
🎯 Objectif
Créer une application web intuitive pour remplacer la gestion manuelle d'une bibliothèque, en centralisant les données et en automatisant les processus critiques (emprunts, réservations, notifications).
🛠️ Réalisation Technique
Stack Utilisée
Backend : PHP 8.1 (architecture MVC), MySQL (base de données relationnelle).
Frontend : HTML5/CSS3, JavaScript (jQuery), Bootstrap 5.
Outils : Composer (dépendances), PHPMailer (notifications), Git (versionnement).
Structure de la Base de Données
sql
CREATE TABLE Livres (
id INT PRIMARY KEY AUTO_INCREMENT,
titre VARCHAR(255) NOT NULL,
auteur VARCHAR(255),
categorie_id INT,
statut ENUM('disponible', 'emprunté', 'réservé') DEFAULT 'disponible', FOREIGN KEY (categorie_id) REFERENCES Categories(id) );
CREATE TABLE Utilisateurs (
id INT PRIMARY KEY AUTO_INCREMENT,
nom VARCHAR(50),
email VARCHAR(100) UNIQUE,
role ENUM('admin', 'bibliothecaire', 'utilisateur'),
mdp_hash VARCHAR(255) );
CREATE TABLE Emprunts (
id INT PRIMARY KEY AUTO_INCREMENT,
livre_id INT,
utilisateur_id INT,
date_emprunt DATE,
date_retour_prevue DATE,
date_retour_effectif DATE, FOREIGN KEY (livre_id) REFERENCES Livres(id), FOREIGN KEY (utilisateur_id) REFERENCES Utilisateurs(id) );
🚀 Fonctionnalités Clés
Gestion des Livres
Ajout/édition/suppression avec upload de couvertures (PDF/JPEG).
Attribution dynamique de catégories (Roman, Science-Fiction, etc.).
Moteur de recherche full-text (titres, auteurs, ISBN).
Système d'Emprunt
Calcul automatique des dates de retour (14 jours par défaut).
Alerte email (PHPMailer) 3 jours avant l'échéance.
Pénalités pour retards (0.50€/jour stockés en base).
Réservations
File d'attente pour les livres indisponibles.
Notification instantanée (AJAX) lors de la disponibilité.
Sécurité
Authentification JWT pour les API.
Contrôle d'accès RBAC (ex: seuls les admins peuvent supprimer des livres).
🖥️ Interface Utilisateur
html
<div class="container mt-4"> <h2>Livres Empruntés</h2> <table class="table table-striped"> <thead> <tr> <th>Titre</th> <th>Emprunteur</th> <th>Retour prévu</th> <th>Actions</th> </tr> </thead> <tbody> <!-- Exemple de ligne générée par PHP --> <tr> <td>1984 - George Orwell</td> <td>martin.tendero@email.com</td> <td>15/10/2024 <span class="badge bg-warning">3 jours restants</span></td> <td><button class="btn btn-success btn-sm">Marquer comme retourné</button></td> </tr> </tbody> </table> </div>
Run HTML
🔒 Sécurité
Hachage des mots de passe :
php
$mdp_hash = password_hash($_POST['mdp'], PASSWORD_BCRYPT);
Protection contre les injections SQL :
Utilisation de requêtes préparées avec MySQLi :php
$stmt = $conn->prepare("INSERT INTO Livres (titre, auteur) VALUES (?, ?)"); $stmt->bind_param("ss", $titre, $auteur);
📈 Statistiques
Réduction des erreurs : 70% moins d'erreurs de suivi vs méthode manuelle.
Temps de gestion : Emprunts traités en 2 min vs 15 min auparavant.




Localisation
ECE Paris, 37 Quai de Grenelle 75015, Paris FR
Contact
gt.martin.pro@gmail.com
martin.tendero@edu.ece.fr

