ECOM-1FO 1819 Restaurant: Difference between revisions
(15 intermediate revisions by 4 users not shown) | |||
Line 3: | Line 3: | ||
=Le projet en quelques mots= |
=Le projet en quelques mots= |
||
MyResto est une application pouvant être utilisé par différents utilisateurs. Premièrement, elle peut être utilisée par des gestionnaires voulant regarder les statistiques des restaurants qu'ils gèrent. Deuxièmement, par des serveurs de restaurants voulant réaliser leur plan de salle suite aux réservations des clients en amont. Dernièrement, par des clients souhaitant réserver un restaurant pour une date future. |
|||
L’objectif de notre projet E-com est de mettre en place un service en ligne (et une application mobile) permettant l'organisation des réservations, du placement et de l'accueil de clients dans de multiples restaurants. |
|||
=L'équipe et leurs rôles= |
=L'équipe et leurs rôles= |
||
Line 21: | Line 21: | ||
=SCRUM= |
=SCRUM= |
||
==Sprint 1 |
==Sprint 1 25 Sept au 9 Oct== |
||
* Découverte du projet |
* Découverte du projet |
||
* Mise en place des rôles au sein de l’équipe |
* Mise en place des rôles au sein de l’équipe |
||
* Détermination des dates clés du projet |
* Détermination des dates clés du projet |
||
* Etablissement de la longueur des sprints |
* Etablissement de la longueur des sprints |
||
* Icone de l'application |
|||
* Justification du choix : |
|||
* Finalisation du diagramme de tâche |
|||
* Arbre des tâches |
|||
==Sprint 2 9 Oct au 20 Oct== |
|||
===Audit 1=== |
|||
* Préparation à l'audit 1 |
|||
* Réflexion sur les entités de l'application |
|||
* Découverte du langage JDL |
|||
* Génération et premier contact avec JHipster |
|||
* Formation sur le Spring et Angular |
|||
* Mise en place d'un processus d'integration |
|||
[[File:SlideAudit1.pdf]] |
|||
===Remarque=== |
|||
Mettre le modèle de tâche dans la présentation. |
|||
Pas besoin de montrer des maquettes à cette étape la. |
|||
==Sprint |
==Sprint 3 20 Oct au 6 Nov== |
||
* Création d'une première version du JDL de l'application |
|||
* IHM Concrète |
|||
* IHM abstraite |
|||
* Diagrammes de cas d'utilisation |
|||
* Diagrammes de contexte |
|||
* Test de création de requêtes personnalisées avec JPA |
|||
* Analyse et tentative de compréhension du code généré par JHipster |
|||
* Mise en place d'un proxy HTTPS |
|||
==Sprint 4 6 Nov au 20 Nov== |
|||
* Préparation audit 2 |
|||
* Création requête JPA personnalisées pour calcul de statistiques |
|||
* Affichage graphique dynamique avec Angular |
|||
* Génération d'un PDF avec Spring |
|||
* Amélioration du déploiement de l'application sur le serveur |
|||
[[File:SlideAudit2.pdf]] |
|||
==Sprint 3 XX au XX== |
|||
==Sprint 4 XX au XX== |
|||
==Sprint 5 XX au XX== |
|||
==Sprint 5 20 Nov au 11 Dec== |
|||
* Affichage d'une carte OpenStreetMap des restaurants |
|||
* Liaison du backend et frontend pour l'affichage des stats |
|||
* Monitoring du serveur |
|||
* Résolution de bugs |
|||
* Mise en place de la recherche de restaurant coté backend |
|||
* Problème sur l'attribution des réservations sur les tables |
|||
= Livrables = |
= Livrables = |
||
==L2. Dossier de conception système == |
|||
[[File:ECOM-1FO_1819_MYRESTO_L2_DCS.pdf]] |
|||
==L3. Analyse des scénarios clients == |
==L3. Analyse des scénarios clients == |
||
[[File:Sujet_Myresto.pdf]] |
[[File:Sujet_Myresto.pdf]] |
||
===Scénario 1=== |
===Scénario 1=== |
||
*En tant que gestionnaire, je souhaite voir les taux de remplissage passés et futurs |
|||
*En tant que gestionnaire, je souhaite pouvoir comparer les taux des différents restaurants supervisés |
|||
*En tant que gestionnaire, je souhaite pouvoir comparer les taux entre restaurants |
|||
*En tant que gestionnaire, je souhaite pouvoir filtrer les résultat (hausse, baisse) |
|||
===Scénario 2=== |
===Scénario 2=== |
||
*En tant que gestionnaire des réservations, je veux pouvoir voir le nombre de réservation |
|||
*En tant que gestionnaire des réservations, je veux pouvoir voir le plan de la salle |
|||
*En tant que gestionnaire des réservations, je veux pouvoir assigner des réservations à une table |
|||
*En tant que gestionnaire des réservations, je veux pouvoir assigner des tables à un serveur |
|||
===Scénario 3=== |
===Scénario 3=== |
||
*En tant que serveur, je souhaite pouvoir retrouver la réservation d’un client avec un QRCode qui aura été généré lors de la réservation. |
|||
*En tant que serveur, je souhaite voir quelle table sur le plan de salle est attribué à la réservation d’un client. |
|||
*En tant que serveur, si un client se présente sans réservation, je souhaite pouvoir lui attribuer une table. |
|||
*En tant que serveur, je souhaite voir l’intégralité des réservations pour le service à venir. |
|||
===Scénario 4=== |
===Scénario 4=== |
||
*En tant que client, je veux pouvoir choisir la date ou une fourchette de ma réservation |
|||
*En tant que client, je veux pouvoir choisir les restaurant ouvert le midi et/ou le soir |
|||
===Scénario 5=== |
===Scénario 5=== |
||
*En tant que client, je veux pouvoir choisir les restaurant possédant un certain type de cuisine |
|||
*En tant que client, je veux pouvoir savoir les menus des restaurants, leur prix et la quantité disponible |
|||
*En tant que restaurateur, je souhaite pouvoir faire des promotions en fonctions des quantités (groupe) ou de la période de réservation (optionnel) |
|||
*En tant que client, je veux recevoir mes billets de réservation par PDF imprimable ou en version mobile (QR Code) |
|||
*En tant que client, je veux pouvoir payer ma commande en ligne par Paypal ou CB |
|||
===Scénario 6=== |
===Scénario 6=== |
||
*En tant que client, je souhaite pouvoir filtrer le résultats de recherche en fonction du lieu. |
|||
*En tant que client, je souhaite pouvoir consulter la carte du restaurant. |
|||
*En tant que client, je suis capable de réserver sans choisir un menu et donc sans payer en me créant/connectant à un compte client avec adresse e-mail et mot de passe. |
|||
*En tant que client, je souhaite être notifié du bon déroulement de ma réservation. |
|||
*En tant que client, je souhaite recevoir un justificatif de commande sur ma boîte mail. |
|||
==L4. Maquette== |
==L4. Maquette== |
||
Line 99: | Line 140: | ||
===Modèle de tache : Effectuer une réservation=== |
===Modèle de tache : Effectuer une réservation=== |
||
[[File:Taskmodel-MYRESTO-reservation.png]]<br> |
[[File:Taskmodel-MYRESTO-reservation.png]]<br> |
||
==L8. Scrum== |
|||
==L9. Journal== |
==L9. Journal== |
||
Line 120: | Line 159: | ||
* Rapports SonarQube |
* Rapports SonarQube |
||
[https://sonar.myresto.guyteub.xyz SonarQube] |
|||
** [[Media:ECOM-1FO_1819_MYRESTO_SonarQubeReport_Sprint1.pdf]] |
|||
** [[Media:ECOM-1FO_1819_MYRESTO_SonarQubeReport_Sprint2.pdf]] |
|||
** [[Media:ECOM-1FO_1819_MYRESTO_SonarQubeReport_Sprint3.pdf]] |
|||
** [[Media:ECOM-1FO_1819_MYRESTO_SonarQubeReport_Sprint4.pdf]] |
|||
** [[Media:ECOM-1FO_1819_MYRESTO_SonarQubeReport_Sprint5.pdf]] |
|||
* Tests |
|||
** [[Media:ECOM-1FO_1819_MYRESTO_TestReport_Sprint1.pdf]] |
|||
** [[Media:ECOM-1FO_1819_MYRESTO_TestReport_Sprint2.pdf]] |
|||
** [[Media:ECOM-1FO_1819_MYRESTO_TestReport_Sprint3.pdf]] |
|||
** [[Media:ECOM-1FO_1819_MYRESTO_TestReport_Sprint4.pdf]] |
|||
** [[Media:ECOM-1FO_1819_MYRESTO_TestReport_Sprint5.pdf]] |
|||
==L14. Evaluation économique du projet== |
==L14. Evaluation économique du projet== |
||
Nous prenons comme salaire de base 5000€/mois et par personne. |
|||
===COCOMO=== |
|||
Les rapports SonarQube nous indique les lignes de codes du projet. |
|||
===Evaluation économique du projet=== |
|||
Au départ, JHipster génère 13 062 lignes et à la fin du projet nous avons environ 15 000 lignes. |
|||
Vous pouvez utiliser les évaluations des salaires avec cette [https://stackoverflow.com/jobs/salary calculatrice] pour connaître les salaires des membres de l'équipe. (pensez à ajouter les charges). |
|||
Le rapport COCOMO est le suivant : |
|||
[[File:cocomo.png]] |
|||
==L15. Evaluation de la cybersécurité du projet (option)== |
==L15. Evaluation de la cybersécurité du projet (option)== |
||
Line 151: | Line 180: | ||
==L18. Slides de présentation conception== |
==L18. Slides de présentation conception== |
||
*[[File:SlideAudit2.pdf]] |
|||
* [[Media:ECOM-1FO_1819_MYRESTO_SLIDES_CONCEPTION.pdf]] |
|||
==L19. Slides de présentation finale== |
==L19. Slides de présentation finale== |
||
Line 157: | Line 186: | ||
==L20. Auto-évaluation== |
==L20. Auto-évaluation== |
||
* [[Media:ECOM- |
* [[Media:ECOM-1FO_1819_MYRESTO_EVAL_PDF.pdf]] |
||
==L21. Slides de présentation client== |
==L21. Slides de présentation client== |
Latest revision as of 09:30, 18 December 2018
<<<< Retour vers la page ECOM 2018-2019
Le projet en quelques mots
MyResto est une application pouvant être utilisé par différents utilisateurs. Premièrement, elle peut être utilisée par des gestionnaires voulant regarder les statistiques des restaurants qu'ils gèrent. Deuxièmement, par des serveurs de restaurants voulant réaliser leur plan de salle suite aux réservations des clients en amont. Dernièrement, par des clients souhaitant réserver un restaurant pour une date future.
L'équipe et leurs rôles
- William WEILL : Chef de projet, Frontend
- Théo LEVESQUE : Scrum Master, Devops, Backend
- Loris GENTILLON : Lead Développeur, Backend
- Benjamin BESNIER : Développeur, Backend
- Thomas OZENDA : Développeur, Frontend
Gestion de projet
Choix des outils :
- Gitlab : pour le dépôt, pour la documentation, l'intégration en continu
- ClickUp : pour la gestion des sprints et des user stories
- Google Docs : pour la répartition et la gestion des tâches hors code (rédaction de documents etc)
SCRUM
Sprint 1 25 Sept au 9 Oct
- Découverte du projet
- Mise en place des rôles au sein de l’équipe
- Détermination des dates clés du projet
- Etablissement de la longueur des sprints
- Icone de l'application
- Finalisation du diagramme de tâche
- Arbre des tâches
Sprint 2 9 Oct au 20 Oct
- Préparation à l'audit 1
- Réflexion sur les entités de l'application
- Découverte du langage JDL
- Génération et premier contact avec JHipster
- Formation sur le Spring et Angular
- Mise en place d'un processus d'integration
Sprint 3 20 Oct au 6 Nov
- Création d'une première version du JDL de l'application
- IHM Concrète
- IHM abstraite
- Diagrammes de cas d'utilisation
- Diagrammes de contexte
- Test de création de requêtes personnalisées avec JPA
- Analyse et tentative de compréhension du code généré par JHipster
- Mise en place d'un proxy HTTPS
Sprint 4 6 Nov au 20 Nov
- Préparation audit 2
- Création requête JPA personnalisées pour calcul de statistiques
- Affichage graphique dynamique avec Angular
- Génération d'un PDF avec Spring
- Amélioration du déploiement de l'application sur le serveur
Sprint 5 20 Nov au 11 Dec
- Affichage d'une carte OpenStreetMap des restaurants
- Liaison du backend et frontend pour l'affichage des stats
- Monitoring du serveur
- Résolution de bugs
- Mise en place de la recherche de restaurant coté backend
- Problème sur l'attribution des réservations sur les tables
Livrables
L3. Analyse des scénarios clients
Scénario 1
- En tant que gestionnaire, je souhaite voir les taux de remplissage passés et futurs
- En tant que gestionnaire, je souhaite pouvoir comparer les taux des différents restaurants supervisés
- En tant que gestionnaire, je souhaite pouvoir comparer les taux entre restaurants
- En tant que gestionnaire, je souhaite pouvoir filtrer les résultat (hausse, baisse)
Scénario 2
- En tant que gestionnaire des réservations, je veux pouvoir voir le nombre de réservation
- En tant que gestionnaire des réservations, je veux pouvoir voir le plan de la salle
- En tant que gestionnaire des réservations, je veux pouvoir assigner des réservations à une table
- En tant que gestionnaire des réservations, je veux pouvoir assigner des tables à un serveur
Scénario 3
- En tant que serveur, je souhaite pouvoir retrouver la réservation d’un client avec un QRCode qui aura été généré lors de la réservation.
- En tant que serveur, je souhaite voir quelle table sur le plan de salle est attribué à la réservation d’un client.
- En tant que serveur, si un client se présente sans réservation, je souhaite pouvoir lui attribuer une table.
- En tant que serveur, je souhaite voir l’intégralité des réservations pour le service à venir.
Scénario 4
- En tant que client, je veux pouvoir choisir la date ou une fourchette de ma réservation
- En tant que client, je veux pouvoir choisir les restaurant ouvert le midi et/ou le soir
Scénario 5
- En tant que client, je veux pouvoir choisir les restaurant possédant un certain type de cuisine
- En tant que client, je veux pouvoir savoir les menus des restaurants, leur prix et la quantité disponible
- En tant que restaurateur, je souhaite pouvoir faire des promotions en fonctions des quantités (groupe) ou de la période de réservation (optionnel)
- En tant que client, je veux recevoir mes billets de réservation par PDF imprimable ou en version mobile (QR Code)
- En tant que client, je veux pouvoir payer ma commande en ligne par Paypal ou CB
Scénario 6
- En tant que client, je souhaite pouvoir filtrer le résultats de recherche en fonction du lieu.
- En tant que client, je souhaite pouvoir consulter la carte du restaurant.
- En tant que client, je suis capable de réserver sans choisir un menu et donc sans payer en me créant/connectant à un compte client avec adresse e-mail et mot de passe.
- En tant que client, je souhaite être notifié du bon déroulement de ma réservation.
- En tant que client, je souhaite recevoir un justificatif de commande sur ma boîte mail.
L4. Maquette
L5. SRS
L6. Diagramme UML
Diagramme de contexte
Vue logique de haut niveau
Vues logiques détaillées
Vue physique
Vues dynamiques
L7. Modèles des tâches
Modèle de tache : Gérer restaurants
Modèle de tache : Gérer service
Modèle de tache : Effectuer une réservation
L9. Journal
L10. Dépôt Git
https://gitlab.com/myresto2018
L11. Application en ligne
L12. Evaluation IHM réalisée
L13. Evaluation qualité du projet
- Rapports SonarQube
L14. Evaluation économique du projet
Nous prenons comme salaire de base 5000€/mois et par personne.
Les rapports SonarQube nous indique les lignes de codes du projet. Au départ, JHipster génère 13 062 lignes et à la fin du projet nous avons environ 15 000 lignes. Le rapport COCOMO est le suivant :
L15. Evaluation de la cybersécurité du projet (option)
- Media:ECOM-1FO_1819_MYRESTO_RGPD_Report.pdf (1 page de type checklist)
L16. Evaluation des performances (option)
- Media:ECOM-1FO_1819_MYRESTO_PERF.pdf (résultat des injections de charge JMeter, Gatling, ...)