ECOM-1FO 1819 Restaurant

<<<< Retour vers la page ECOM 2018-2019

=Le projet en quelques mots= 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=


 * 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

= Livrables =

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.

L5. SRS
SRS

L9. Journal
Journal de l'équipe

L10. Dépôt Git
https://gitlab.com/myresto2018

L11. Application en ligne
Site web

API

L13. Evaluation qualité du projet
SonarQube
 * Rapports SonarQube

L14. Evaluation économique du projet
Nous prenons comme salaire de base 2500€/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, ...)

L17. Gestion des risques (option)

 * [[Media:ECOM-1FO_1819_MYRESTO_RISQUES.pdf]]

L18. Slides de présentation conception

 * [[Media:ECOM-1FO_1819_MYRESTO_SLIDES_CONCEPTION.pdf]]

L19. Slides de présentation finale

 * [[Media:ECOM-1FO_1819_MYRESTO_SLIDES_FINALE.pdf]]

L20. Auto-évaluation

 * [[Media:ECOM-1FO_1819_MYRESTO_EVAL.pdf]]

L21. Slides de présentation client

 * [[Media:ECOM-1FO_1819_MYRESTO_SLIDES_CLIENT.pdf]]