Skip to content
Snippets Groups Projects
Select Git revision
  • main
  • Test-Unitaire
2 results

gl-projet

  • Clone with SSH
  • Clone with HTTPS
  • 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

    1. Ouvrez un terminal dans le répertoire racine du projet.
    2. 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
    • Compte Administrateur :

      • Email : admin@library.com
      • Mot de passe : admin123

    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 et Administrateur)

    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

    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 :

    1. 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).

    2. 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 :

    1. Recréez et redémarrez les conteneurs Docker :

      docker-compose up --build
    2. 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 :

    1. Lancer pgAdmin :

      • Ouvrez pgAdmin depuis votre navigateur à l'adresse http://localhost:8081.
    2. Ajouter un nouveau serveur :

      • Faites un clic droit sur "Serveurs" dans le volet de gauche, puis cliquez sur Ajouter un serveur.
    3. 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 dans docker-compose.yml).
        • Port : 5432.
        • Utilisateur : user (défini dans votre fichier docker-compose.yml).
        • Mot de passe : password (défini dans votre fichier docker-compose.yml).
    4. 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.
    5. 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.
    6. 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.

    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