Library Management System
Lien du repository
https://etulab.univ-amu.fr/m20004188/gl-projet
Instructions pour lancer l'application
Prérequis
Assurez-vous d'avoir les outils suivants installés sur votre machine :
- Docker et Docker Compose
Démarrage rapide avec Docker Compose
- Ouvrez un terminal dans le répertoire racine du projet.
- Lancez les conteneurs Docker avec la commande suivante :
docker-compose up --build
Cela construira et démarrera les services, y compris l'API, le frontend, la base de données et les tests unitaires.
Lien vers les différentes parties du projets
-
Frontend (interface utilisateur) :
http://localhost:4200
-
Backend (API) :
http://localhost:8080
-
Base de données (pgAdmin) :
http://localhost:8081
-
Test unitaire : Pour voir les logs de tests, lancer à la racine du projet
docker logs gl-projet-tests-1
Accéder aux comptes de test
Utilisez les identifiants suivants pour tester les tester les différentes fonctionnalités :
-
Compte Membre :
- Email :
membre@library.com
- Mot de passe :
member123
- Email :
-
Compte Administrateur :
- Email :
admin@library.com
- Mot de passe :
admin123
- Email :
Structure et explications des parties du projet
Frontend
-
Localisation :
LibraryManagement.FrontEnd
- Ce projet contient l'interface utilisateur construite avec ASP.NET Razor Pages. Il permet aux utilisateurs de gérer leur bibliothèque et aux administrateurs d'administrer les livres et utilisateurs.
Backend (API)
-
Localisation :
LibraryManagement.API
- L'API est construite avec ASP.NET Core et expose des endpoints pour gérer les bibliothèques, les livres, et les utilisateurs.
- Les données sont sécurisées avec JWT Authentification et les rôles (
Membre
etAdministrateur
)
Tests unitaire
-
Localisation :
LibraryManagement.Tests
- Ce projet contient les tests unitaires des méthodes service de notre API.
Base de données
-
Localisation :
LibraryManagement.Core
- La base de données PostgreSQL est utilisée pour stocker les données. Les entités sont définies dans ce projet et les migrations sont gérées via Entity Framework Core.
pgAdmin
- Permet de visualiser et gérer la base de données.
- Configuration par défaut pour accéder à la base de donnée :
-
Hôte :
db
-
Port :
5432
-
Utilisateur :
user
-
Mot de passe :
password
-
Hôte :
Instructions pour les développeurs
Gestion des migrations et du conteneur Docker
1. Prérequis
Avant d'exécuter les commandes suivantes, assurez-vous que votre environnement de développement est correctement configuré avec les outils nécessaires :
- .NET SDK (version compatible avec le projet, par exemple .NET 7.0)
-
EF Core CLI pour gérer les migrations :
dotnet tool install --global dotnet-ef
2. Mise à jour des migrations en local
Lors de toute modification des entités ou du modèle de données, suivez ces étapes avant de redémarrer les conteneurs Docker :
-
Ajoutez une nouvelle migration :
dotnet ef migrations add <NomMigration> --project LibraryManagement.Core --startup-project LibraryManagement.API
Remplacez
<NomMigration>
par un nom pertinent décrivant la modification (exemple :AjoutDateExpiration
). -
Appliquez les migrations à la base de données locale (optionnel pour tester en local avant Docker) :
dotnet ef database update --project LibraryManagement.Core --startup-project LibraryManagement.API
Vérifiez que les modifications sont correctement appliquées en local avant de passer à Docker.
3. Reconstruction des conteneurs Docker
Après avoir ajouté ou modifié des entités ou des migrations, reconstruisez les conteneurs Docker pour prendre en compte les changements :
-
Recréez et redémarrez les conteneurs Docker :
docker-compose up --build
-
Docker appliquera automatiquement les migrations et initialisera les données si nécessaire.
Accès à pgAdmin pour visualiser la base de données
Étapes pour configurer pgAdmin et accéder à la base de données :
-
Lancer pgAdmin :
- Ouvrez pgAdmin depuis votre navigateur à l'adresse
http://localhost:8081
.
- Ouvrez pgAdmin depuis votre navigateur à l'adresse
-
Ajouter un nouveau serveur :
- Faites un clic droit sur "Serveurs" dans le volet de gauche, puis cliquez sur Ajouter un serveur.
-
Configurer le serveur :
-
Nom : Entrez un nom pour identifier le serveur (par exemple,
LibraryDB
). -
Connexion :
-
Hôte :
db
(correspond au nom du service de la base de données dansdocker-compose.yml
). -
Port :
5432
. -
Utilisateur :
user
(défini dans votre fichierdocker-compose.yml
). -
Mot de passe :
password
(défini dans votre fichierdocker-compose.yml
).
-
Hôte :
-
Nom : Entrez un nom pour identifier le serveur (par exemple,
-
Enregistrer et se connecter :
- Cliquez sur Enregistrer pour ajouter le serveur à pgAdmin.
- Une fois ajouté, vous verrez le serveur apparaître dans le volet de gauche.
-
Naviguer pour visualiser les tables :
- Dans le volet de gauche, développez la hiérarchie suivante :
-
Nom du serveur (par exemple,
LibraryDB
) >Bases de données
>library_db
>Schémas
>public
>Tables
.
-
Nom du serveur (par exemple,
- Dans le volet de gauche, développez la hiérarchie suivante :
-
Explorer les données :
- Faites un clic droit sur une table (par exemple,
Utilisateurs
) et sélectionnez Afficher les données / Toutes les lignes pour consulter les enregistrements.
- Faites un clic droit sur une table (par exemple,
Notes importantes
- Toute modification des entités doit être accompagnée d'une nouvelle migration pour maintenir la synchronisation entre le code et la base de données.
- Les données de base (peuplement initial) sont automatiquement insérées dans la base de données lors du démarrage des conteneurs.
Particpant
- Maldonado Kevin :
kevin.maldonado@etu.univ-amu.fr
- Zaime Mohammed Amine :
mohammed-amine.zaime@etu.univ-amu.fr
- Benkortbi Abdelhak :
abdelhak.benkortbi@etu.univ-amu.fr