diff --git a/.drone.yml b/.drone.yml index 56e01dc..e8cffd2 100644 --- a/.drone.yml +++ b/.drone.yml @@ -9,7 +9,7 @@ trigger: steps: - name: build-daidokoro - image: hub.codefirst.iut.uca.fr/clement.freville2/plugins/kaniko:latest + image: plugins/docker settings: dockerfile: ./daidokoro/Dockerfile context: ./daidokoro diff --git a/README.md b/README.md index 4504aba..657cb97 100644 --- a/README.md +++ b/README.md @@ -12,9 +12,72 @@ ![BuyMeACoffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-ffdd00?style=for-the-badge&logo=buy-me-a-coffee&logoColor=black) -# :bookmark: Présentation +# Daidokoro + +## Lancer l'application + +Pour lancer l'application, veuillez suivre les étapes suivantes : +1. Cloner le repository du projet. +2. Se rendre dans le dossier `daidokoro`. +3. Exécuter la commande suivante : `ng serve --open`. + + + +## Présentation rapide du projet + +Daidokoro est un projet réalisé en Angular. Il s'agit d'une application web de gestion de recettes et d'ingrédients. +Les fonctionnalités incluent la gestion des utilisateurs, la consultation, l'ajout, la modification et la suppression d'ingrédients, ainsi que la création et la commande de recettes. +Le projet est conçu pour être intuitif et facile à utiliser, avec une interface utilisateur agréable et des fonctionnalités robustes. + +## Prérequis demandés + +Pour ce projet, les fonctionnalités suivantes étaient requises : +- Une barre de navigation commune à tout le site avec : + - Une page de connexion (/login) permettant de créer un cookie ou un local storage avec une valeur `isAdmin = true` et une redirection vers la page des ingrédients. Le bouton de connexion n'apparaît que si la valeur `isAdmin` est `false` ou inexistante. + - Une page de déconnexion (/logout) ayant le comportement inverse de la connexion. + - Un bouton vers la page des ingrédients avec une guard qui vérifie la valeur `isAdmin`. Si `true`, l'accès est permis, sinon, redirection vers la page d'accueil. + - Listing des ingrédients existants. + - Ajout d'un ingrédient. + - Modification d'un ingrédient. + - Connexion à une API pour les ingrédients, remplaçant le stub actuel. +- Sur la page d'accueil : + - Liste de recettes chargées depuis le local storage avec une image enregistrée ou un placeholder (`placehold.co/50x50`). + - Pagination de la liste de recettes. + - Un bouton pour ajouter une recette, faisant apparaître un formulaire avec : + - Nom + - Image + - Description + - Liste d'ingrédients avec possibilité de rajouter et de supprimer des ingrédients, au moins un devant être sélectionné. + - Un bouton "Commander" sur chaque recette qui ajoute la recette commandée à une liste "Commande en cours" sur la page d'accueil. + - Un bouton "Détail" redirigeant vers `/recettes/:id` et affichant la recette avec tous ses attributs. + +## Réalisation des prérequis + +Nous avons mis en œuvre toutes les fonctionnalités demandées : +- **Barre de navigation :** Elle est présente sur toutes les pages et comprend les boutons de connexion et de déconnexion. La gestion de `isAdmin` est effectuée via le local storage. +- **Guard d'accès aux ingrédients :** Nous avons implémenté une guard qui vérifie si l'utilisateur est connecté avant de permettre l'accès à la page des ingrédients. +- **Gestion des ingrédients :** Nous avons créé des pages pour lister, ajouter et modifier les ingrédients via l'API. +- **Page d'accueil :** La liste des recettes est chargée depuis le local storage et paginée. Un formulaire d'ajout de recette permet de créer de nouvelles recettes avec tous les champs requis. Chaque recette a des boutons "Commander" et "Détail". + +## Fonctionnalités supplémentaires + +En plus des fonctionnalités de base demandées, nous avons : +- Implémenté un style personnalisé pour l'application afin d'améliorer l'expérience utilisateur. + +## Difficultés + +Nous avons aussi rencontrer certaines difficultés : +- L'application a du mal à stocker dans le local storage à partir d'un certain quota, il est limité. +- Nous avons tenté de déployer l'application mais sans succès, le hub de codefirst était surchargé. + +## Organisation du travail + +Nous avons utilisé un système de branches et de merge requests pour organiser notre travail de manière efficace. Chaque fonctionnalité a été développée sur une branche dédiée et intégrée dans la branche principale via des merge requests. Cela nous a permis de travailler en parallèle tout en maintenant un code base stable et propre. + +## Conclusion + +Le projet Daidokoro a été une expérience enrichissante, nous permettant d'acquérir des connaissances en Angular et en gestion de projets. -このプロジェクトはレシピを閲覧・追加できるサイトを目指したプロジェクトです!あなたの作品を世界と共有しましょう! # :construction: Développeurs