From c7d0542d5ff2930226ec21d928ff6452ecbbe7f9 Mon Sep 17 00:00:00 2001 From: Julia Spriggs Date: Mon, 14 Oct 2024 20:05:26 +0200 Subject: [PATCH] added images and changed around page breaks to better fit images --- dossier de projet/main.md | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/dossier de projet/main.md b/dossier de projet/main.md index 7aa30bb..d99e822 100644 --- a/dossier de projet/main.md +++ b/dossier de projet/main.md @@ -292,8 +292,6 @@ On a aussi fait les maximalités (chiffres en bleu dans notre diagramme). Cela n ---- -\newpage - ### Modèle Logique de Données Nous progressons vers le Modèle Logique de Données, une étape plus concrète dans la définition de la base de données. Comme mentionné ci-dessus, on peut voir qu'il est nécessaire de créer un tableau intermédiaire entre Réservation et Material, qu’on a décidé d’appeler reserved_material, afin d’éviter une relation Many to Many. À cause de cela, on voit qu’on a deux attributs qui sont des foreign keys dans ce tableau, alors que dans d’autres comme Reservation, on a une clé étrangère pour lier les deux entités. @@ -329,12 +327,16 @@ Pour le diagramme de classe, nous nous reposons sur ces idées : * Pour louer un matérial, un utilisateur doit créer un compte sur le site, avec son prénom, nom de famille, son email et un mot de passe. * Chaque fois qu'un utilisateur se connecte à notre site, cela crée une session, où nous pouvons garder les information de leur panier dans un fichier JSON. + \newpage + #### Multiplicités Dans le diagramme de classe, il faut travailler les multiplicités, alors si on prend l’exemple de l’entity User, dans les deux directions, vers Reservation ainsi que Session, on voit qu’il y a une Multiplicité de 1. Pourquoi ? Car un User est relié à une session. Il ne peut en avoir plusieurs. Une Reservation est également relié à seulement un User, alors c’est également 1. ![Multiplicités entre Session et User, et Reservation et User](images/Reservation User Session.jpg){height=50%} +\newpage + #### Portée On peut avoir plusieurs types de portées pour les attributs : public, privé, ou protégé par exemple. On a décidé de garder tout public à part les mots de passe pour un utilisateur, qui sont privés, pour les raisons de sécurité. De cette façon, les autres classes ne pourront pas y accéder, et cela protège ces données. @@ -1208,11 +1210,11 @@ useEffect(() => { *Accueil* -(image de l'accueil) +![Capture d'écran de la page d'accueil](images/welcome page.png) *Catégorie "Sports d'hiver"* -(image des matérials trié par une catégorie) +![Capture d'écran du matérial trié par la catégorie sports d'hiver](images/material sorted by category.png) Lorsque l'utilisateur se trouve sur la page d'accueil, ces boutons de catégorie sont visibles, offrant un accès direct aux différentes catégories de matériels. Ces boutons sont créés dynamiquement en parcourant les catégories obtenues grâce à la requête GraphQL. Chaque bouton permet de rediriger l'utilisateur vers une page de liste de matériels correspondant à la catégorie choisie. @@ -2069,3 +2071,9 @@ La securité d’une application est extrêmement importante. On ne peut pas pen * CORS management : Middleware peut gérer les settings de Cross-Origin Resource Sharing (CORS) pour contrôler quels domaines peuvent accéder les ressources, ce qui empêche des accès non-authorisés. * Security Headers : Middleware peut ajouter des security headers HTTP aux réponse, ce qui donne une couche additionnelle de sécurité contre les attaques. * Gestion des Sessions : Middleware peut gérer les cookies de session secures et implemente les mesures comme expiration des cookies et secure flags pour protéder les données de session. + +\newpage + +# Annexe (diagramme de classe) + +![](images/class diagram.jpg){height=99%}