Difference between revisions of "ECOM-1FO 1819 Sport"

From air
Jump to navigation Jump to search
 
(69 intermediate revisions by 5 users not shown)
Line 1: Line 1:
   
 
[[ECOM-1FO|<<<< Retour vers la page ECOM 2018-2019]]
 
[[ECOM-1FO|<<<< Retour vers la page ECOM 2018-2019]]
 
PRIERE DE NE PAS UTILISER XXX COMME NOM DE PROJET DANS LES REFERENCES VERS LES DOCUMENTS
 
   
   
 
=Le projet en quelques mots=
 
=Le projet en quelques mots=
  +
Le but de ce projet est de réaliser une application web ainsi qu'une application mobile permettant la création, la gestion, l'inscription, la participation et le paiement des frais à des évènements sportifs comme des marathons, des courses à pied, des courses de vélo, etc.
L’objectif de notre projet E-com est de mettre en place un service en ligne (et une application mobile) permettant A COMPLETER
 
  +
  +
Les différents types d'utilisateurs que nous pourrons retrouver dans notre application sont :
  +
  +
* L'organisateur, c'est lui qui créé les évènements, il peut accéder à son "Espace Organisateur" pour visualiser ses évènements, les participants, etc.
  +
* Le bénévole, il peut s'inscrire gratuitement à un évènement en tant que bénévole pour différents roles : Kinésithérapiste, photographe, docteur, etc.
  +
* Le coureur, c'est l'utilisateur de base, il peut s'inscrire à un évènement sportif et payer son inscription. Il pourra ensuite se rendre à l'évènement et y participer.
   
 
=L'équipe et leurs rôles=
 
=L'équipe et leurs rôles=
   
 
* Hugo GROS-DAILLON : Chef de projet + Backend, Code review, Doc review
 
* Hugo GROS-DAILLON : Chef de projet + Backend, Code review, Doc review
* Tim LEPAGE : Scrum Master + Backend
+
* Tim LEPAGE : Scrum Master + Frontend
* Quentin FOMBARON : Développeur Frontend
+
* Quentin FOMBARON : Développeur Frontend, CSO
* Vincent AUBERT : Développeur Backend
+
* Vincent AUBERT : Développeur Backend, CPO
   
 
=Gestion de projet=
 
=Gestion de projet=
Line 19: Line 23:
   
 
* ''Gitlab'' : pour le dépôt, pour la documentation, l'intégration en continu
 
* ''Gitlab'' : pour le dépôt, pour la documentation, l'intégration en continu
* ''XXX'' : pour la gestion des sprints et des user stories
+
* ''[https://trello.com/b/4Y985yyt Trello]'' : pour la répartition et la gestion des tâches hors code (rédaction de documents etc)
* ''XXX'' : pour la répartition et la gestion des tâches hors code (rédaction de documents etc)
 
   
 
=SCRUM=
 
=SCRUM=
==Sprint 1 XX au XX==
+
==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
  +
* Icon de l'application
* Justification du choix :
 
  +
* Finalisation du diagramme de tâche
  +
* IHM Concrète
  +
* Arbre des tâches
  +
* IHM abstraite
  +
* Diagrammes de cas d'utilisation
  +
* Diagrammes de contexte
   
  +
==Sprint 2 9 Oct au 20 Oct==
===Audit 1===
 
  +
* Préparation à l'audit
  +
* Réflexion sur la structure de la future DB
  +
* Routage entre les pages web
  +
* Réflexion sur la langage JDL
  +
* Mise en place du projet Jhipster
  +
* Début de la mise en place de la Leafleft Map
  +
* Correction du glossaire sur la page AIR.
  +
* Création de la barre de navigation du site avec Bootstrap.
  +
* Création du squelette de la page d'accueil avec Bootstrap.
  +
* Squelette de la page de visualisation d'une course
  +
* Formulaires d'inscription
  +
* Insertion d'une carte OpenStreetMap avec Leaflet sur la page d'accueil d'un projet JHipster
  +
* Insertion de markers et de tracés sur cette carte.
  +
* Rédaction page air
  +
* Compréhension du fonctionnement de l'API Rest
   
===Remarque===
 
   
  +
----
==Sprint 2 XX au XX==
 
  +
Remarque durant l'audit :
   
  +
- Ajouter un fil conducteur lors de la navigation. L'utilisateur doit **toujours** savoir ou il se trouve et comment il en est arrivé là.
  +
- Aligner les champs lors de l'inscription
  +
- Rédiger un glossaire
   
==Sprint 3 XX au XX==
+
==Sprint 3 20 Oct au 6 Nov==
  +
* Création d'un service
  +
* ⚠️ Gros soucis avec la version 11 de Node, obligé de downgrade pour le bon fonctionnement de `yarn start` entre autre
  +
* Vues logiques
  +
* IHM page de visualisation
  +
* Formation pour réaliser des requêtes dans la base de données grâce aux JPA queries.
  +
* Création de méthodes pour l'API REST.
  +
* Vue logique de haut niveau
  +
* Vue dynamique
  +
* API Rest
  +
* Diaporama de l'Audit 2
  +
* Formulaire inscription bénévole
  +
* Insertion des utilisateurs dans la base de données
  +
* API Rest avec la base de données
  +
* Test API Rest avec la base de donnée
   
  +
==Sprint 4 6 Nov au 20 Nov==
  +
* Barre de recherche
  +
* Filtres
  +
* page de visualisation liée avec le backend
  +
* merge front end
  +
* debug
  +
* Api rest
  +
* Vue logique haut niveau
  +
* Vue physique
  +
* Envoi de mails lors de l'inscription.
  +
* Utilisation d'une API externe permettant de trouver la longitude et la latitude en fonction d'un lieu.
  +
* Mise en place de l'intégration continue
  +
* Page de visualisation
   
==Sprint 4 XX au XX==
+
==Sprint 5 20 Nov au 11 Dec==
  +
* Mise en place de la récupération de la longitude et de la latitude en fonction d'un lieu grâce à une API externe.
 
  +
* Mise en place de l'intégration continue.
 
  +
*Mise en place du chargement des images Lazy
==Sprint 5 XX au XX==
 
  +
* Mise en place du déploiement continu
 
  +
* Déploiement du docker
  +
* Mise en place de l'intégration continue
  +
* Page de visualisation
  +
* Application mobile, github: https://github.com/TimLepage/MesCoursesApp
  +
* Page de confirmation
   
 
= Livrables =
 
= Livrables =
 
==L2. Dossier de conception système ==
 
==L2. Dossier de conception système ==
   
  +
[https://air.imag.fr/images/1/1b/DossierdeConceptionECOMMesCourses2018.pdf Dossier de Conception Système - Mes Courses]
[[File:ECOM-1FO_1819_PROJETXXXX_L2_DCS.pdf]]
 
   
 
==L3. Analyse des scénarios clients ==
 
==L3. Analyse des scénarios clients ==
* Scan des feuilles
+
* [https://air.imag.fr/images/c/ca/Numerisation18de2018MesCourses.pdf Scan des feuilles]
   
 
==L4. Maquette ==
 
==L4. Maquette ==
  +
  +
=== Page d'accueil ===
  +
  +
[[File:IHM_Concrète_Maquette-Index.png|1000px]]
  +
  +
=== Inscription d'un participant ===
  +
  +
[[File:IHM_Concrète_Maquette-Inscription_coureur.png|1000px]]
  +
  +
=== Inscription d'un bénévole ===
  +
  +
[[File:IHM_Concrète_Maquette-Inscription_bénévole.png|1000px]]
  +
  +
=== Selection d'une course ===
  +
  +
[[File:IHM_Concrète_Maquette-Select._course.png|1000px]]
   
 
==L5. SRS ==
 
==L5. SRS ==
[[ECOM-1FO_1819_PROJETXXXX_L5_SRS|SRS]]
+
[[ECOM-1FO_1819_Sport_L5_SRS|SRS]]
   
 
==L6. Diagramme UML ==
 
==L6. Diagramme UML ==
  +
===Diagramme de contexte===
  +
[[File:diagramme_de_contexte_ecom_2018_2019_mescourses.png]]
  +
  +
  +
===Diagramme de cas d'utilisation d'un participant===
  +
[[File:UseCaseParticipant_ecom20182019_mescourses.png]]
  +
  +
  +
===Diagramme de cas d'utilisation d'un bénévole===
  +
[[File:UseCaseBenevole_ecom20182019_mescourses.png]]
  +
  +
  +
===Diagramme de cas d'utilisation d'un organisateur===
  +
[[File:UseCaseOrganisateur_ecom20182019_mescourses.png]]
  +
  +
===Diagramme Base de données (JDL)===
  +
[[File:Jhipster-jdlMesCourses2018.png]]
   
 
==L7. Modèles des tâches==
 
==L7. Modèles des tâches==
   
  +
===Arbre des tâches de l'inscription à une course - participant===
==L8. Scrum==
 
  +
  +
[[File:Arbre_Taches-Participants_ecom2018_mescourses.png]]
  +
  +
  +
===Arbre des tâches de la création d'une course - organisateur===
  +
  +
[[File:Arbre Taches-Organisateurs ecom20182019 mescourses.png]]
  +
  +
  +
==L8. Journal==
  +
[[ECOM-1FO_1819_Sport_L9_LOG|Journal de l'équipe]]
  +
  +
==L9. Dépôt Git==
  +
[https://gricad-gitlab.univ-grenoble-alpes.fr/grosdaih/ecom-mescourses GitLab Application web]
  +
  +
[https://github.com/TimLepage/MesCoursesApp GitHub Application mobile]
  +
  +
==L10. Application en ligne==
  +
  +
[https://mes-courses-2018.herokuapp.com website]
  +
  +
==L11. Evaluation IHM réalisée==
  +
  +
==L12. Evaluation qualité du projet==
  +
  +
[https://sonarcloud.io/dashboard?id=QuentinFombaron_ECOM-MesCourses SonarQube]
  +
  +
==L13. Evaluation économique du projet==
  +
  +
===COCOMO===
  +
Grâce à la commande : '''git ls-files | xargs cat | wc -l'''
  +
  +
Nous avons pu savoir que le projet à son état final comportait 65359 lignes de codes avec uniquement ce qui est envoyé sur GitLab (donc sans les nodes_modules, etc.).
  +
  +
Puis, avec la commande '''cloc src''' réalisée sur un projet JHipster de base avec les mêmes options que le notre puis sur notre projet, nous voyons que nous avons ajoutés 4511 lignes de code source à ce qui a été généré par JHipster.
  +
  +
Nous avons décidés que comme nous étions des jeunes diplomés, le salaire développeur pour ce projet serait de 2000€ net par mois.
   
  +
En comptant toutes les charges, on arriverait à environ 5000€ par mois et par employés.
==L9. Journal==
 
[[ECOM-1FO_1819_PROJETXXXX_L9_LOG|Journal de l'équipe]]
 
   
  +
Le résultat COCOMO II correspondant est le suivant :
==L10. Dépôt Git==
 
   
==L11. Application en ligne==
 
   
[https://www.monprojet.fr website]
 
   
  +
[[File:CocomoiiMesCourses20182019.png]]
[https://www.monprojet.fr/api/ API OpenAPI]
 
   
==L12. Evaluation IHM réalisée==
+
===Evaluation économique du projet===
  +
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).
   
==L13. Evaluation qualité du projet==
+
==L14. Evaluation de la cybersécurité du projet (option)==
  +
* [[Media:ECOM-1FO_1819_Sport_RGPD_Report.pdf]] (1 page de type checklist)
   
  +
==L15. Evaluation des performances (option)==
* Rapports SonarQube
 
  +
* [[Media:ECOM-1FO_1819_Sport_YYYYYY.pdf]] (résultat des injections de charge JMeter, Gatling, ...)
** [[Media:ECOM-1FO_1819_PROJETXXXX_SonarQubeReport_Sprint1.pdf]]
 
** [[Media:ECOM-1FO_1819_PROJETXXXX_SonarQubeReport_Sprint2.pdf]]
 
** [[Media:ECOM-1FO_1819_PROJETXXXX_SonarQubeReport_Sprint3.pdf]]
 
** [[Media:ECOM-1FO_1819_PROJETXXXX_SonarQubeReport_Sprint4.pdf]]
 
** [[Media:ECOM-1FO_1819_PROJETXXXX_SonarQubeReport_Sprint5.pdf]]
 
   
  +
==L16. Gestion des risques (option)==
* Tests
 
** [[Media:ECOM-1FO_1819_PROJETXXXX_TestReport_Sprint1.pdf]]
+
* [[Media:ECOM-1FO_1819_Sport_YYYYYY.pdf]]
** [[Media:ECOM-1FO_1819_PROJETXXXX_TestReport_Sprint2.pdf]]
 
** [[Media:ECOM-1FO_1819_PROJETXXXX_TestReport_Sprint3.pdf]]
 
** [[Media:ECOM-1FO_1819_PROJETXXXX_TestReport_Sprint4.pdf]]
 
** [[Media:ECOM-1FO_1819_PROJETXXXX_TestReport_Sprint5.pdf]]
 
   
  +
==L17. Slides de présentation conception==
==L14. Evaluation économique du projet==
 
  +
* [https://air.imag.fr/images/f/f3/Dossier_de_Conception_ECOM2018_MesCourses.pdf Dossier de Conception Système - Mes Courses]
   
  +
==L18. Slides de présentation finale==
* COCOMO
 
  +
*[[Media:Audit 3 ECOM MesCourses.pdf]]
   
  +
==L19. Auto-évaluation==
* Evaluation économique du projet
 
  +
* [https://air.imag.fr/images/5/54/FicheEval20182019ECOMMesCourses.pdf Auto evaluation]
   
  +
==L20. Slides de présentation client==
==L15. Evaluation de la cybersécurité du projet==
 
  +
* [[Media:ECOM-1FO_1819_Sport_YYYYYY.pdf]]
   
  +
==L21. Glossaire==
* [[Media:ECOM-1FO_1819_PROJETXXXX_RGPD_Report.pdf]] (1 page de type checklist)
 
   
  +
* '''Evénement''' : Une compétition sportive créée et organisée par un organisateur. Il comprend des participants, des bénévoles et un organisateur qui gère le bon déroulement de la compétition (ex: course à pied, marathon, triathlon, randonnée, course de vélo, etc.).
==L16. Slides de présentation conception==
 
   
  +
* '''Organisateur''' : Personne qui est à l'origine de la course. Elle va gérer la course comme l'affectation des bénévoles.
==L17. Slides de présentation finale==
 
   
  +
* '''Participant''' : Personne participant à un évènement. Cette personne s'inscrit à une course, paye le montant et participe à l'évènement.
==L18. Auto-évaluation==
 
   
  +
* '''Bénévole''' : Personne participant à un évènement mais sans être un participant. Elle a un rôle (kiné, contrôleur, .etc..) et le rempli durant la l'évènement.
==L19. Slides de présentation client==
 

Latest revision as of 17:05, 18 December 2018

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


Le projet en quelques mots

Le but de ce projet est de réaliser une application web ainsi qu'une application mobile permettant la création, la gestion, l'inscription, la participation et le paiement des frais à des évènements sportifs comme des marathons, des courses à pied, des courses de vélo, etc.

Les différents types d'utilisateurs que nous pourrons retrouver dans notre application sont :

  • L'organisateur, c'est lui qui créé les évènements, il peut accéder à son "Espace Organisateur" pour visualiser ses évènements, les participants, etc.
  • Le bénévole, il peut s'inscrire gratuitement à un évènement en tant que bénévole pour différents roles : Kinésithérapiste, photographe, docteur, etc.
  • Le coureur, c'est l'utilisateur de base, il peut s'inscrire à un évènement sportif et payer son inscription. Il pourra ensuite se rendre à l'évènement et y participer.

L'équipe et leurs rôles

  • Hugo GROS-DAILLON : Chef de projet + Backend, Code review, Doc review
  • Tim LEPAGE : Scrum Master + Frontend
  • Quentin FOMBARON : Développeur Frontend, CSO
  • Vincent AUBERT : Développeur Backend, CPO

Gestion de projet

Choix des outils :

  • Gitlab : pour le dépôt, pour la documentation, l'intégration en continu
  • Trello : 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
  • Icon de l'application
  • Finalisation du diagramme de tâche
  • IHM Concrète
  • Arbre des tâches
  • IHM abstraite
  • Diagrammes de cas d'utilisation
  • Diagrammes de contexte

Sprint 2 9 Oct au 20 Oct

  • Préparation à l'audit
  • Réflexion sur la structure de la future DB
  • Routage entre les pages web
  • Réflexion sur la langage JDL
  • Mise en place du projet Jhipster
  • Début de la mise en place de la Leafleft Map
  • Correction du glossaire sur la page AIR.
  • Création de la barre de navigation du site avec Bootstrap.
  • Création du squelette de la page d'accueil avec Bootstrap.
  • Squelette de la page de visualisation d'une course
  • Formulaires d'inscription
  • Insertion d'une carte OpenStreetMap avec Leaflet sur la page d'accueil d'un projet JHipster
  • Insertion de markers et de tracés sur cette carte.
  • Rédaction page air
  • Compréhension du fonctionnement de l'API Rest



Remarque durant l'audit :

- Ajouter un fil conducteur lors de la navigation. L'utilisateur doit **toujours** savoir ou il se trouve et comment il en est arrivé là. - Aligner les champs lors de l'inscription - Rédiger un glossaire

Sprint 3 20 Oct au 6 Nov

  • Création d'un service
  • ⚠️ Gros soucis avec la version 11 de Node, obligé de downgrade pour le bon fonctionnement de `yarn start` entre autre
  • Vues logiques
  • IHM page de visualisation
  • Formation pour réaliser des requêtes dans la base de données grâce aux JPA queries.
  • Création de méthodes pour l'API REST.
  • Vue logique de haut niveau
  • Vue dynamique
  • API Rest
  • Diaporama de l'Audit 2
  • Formulaire inscription bénévole
  • Insertion des utilisateurs dans la base de données
  • API Rest avec la base de données
  • Test API Rest avec la base de donnée

Sprint 4 6 Nov au 20 Nov

  • Barre de recherche
  • Filtres
  • page de visualisation liée avec le backend
  • merge front end
  • debug
  • Api rest
  • Vue logique haut niveau
  • Vue physique
  • Envoi de mails lors de l'inscription.
  • Utilisation d'une API externe permettant de trouver la longitude et la latitude en fonction d'un lieu.
  • Mise en place de l'intégration continue
  • Page de visualisation

Sprint 5 20 Nov au 11 Dec

  • Mise en place de la récupération de la longitude et de la latitude en fonction d'un lieu grâce à une API externe.
  • Mise en place de l'intégration continue.
  • Mise en place du chargement des images Lazy
  • Mise en place du déploiement continu
  • Déploiement du docker
  • Mise en place de l'intégration continue
  • Page de visualisation
  • Application mobile, github: https://github.com/TimLepage/MesCoursesApp
  • Page de confirmation

Livrables

L2. Dossier de conception système

Dossier de Conception Système - Mes Courses

L3. Analyse des scénarios clients

L4. Maquette

Page d'accueil

IHM Concrète Maquette-Index.png

Inscription d'un participant

IHM Concrète Maquette-Inscription coureur.png

Inscription d'un bénévole

IHM Concrète Maquette-Inscription bénévole.png

Selection d'une course

IHM Concrète Maquette-Select. course.png

L5. SRS

SRS

L6. Diagramme UML

Diagramme de contexte

Diagramme de contexte ecom 2018 2019 mescourses.png


Diagramme de cas d'utilisation d'un participant

UseCaseParticipant ecom20182019 mescourses.png


Diagramme de cas d'utilisation d'un bénévole

UseCaseBenevole ecom20182019 mescourses.png


Diagramme de cas d'utilisation d'un organisateur

UseCaseOrganisateur ecom20182019 mescourses.png

Diagramme Base de données (JDL)

Jhipster-jdlMesCourses2018.png

L7. Modèles des tâches

Arbre des tâches de l'inscription à une course - participant

Arbre Taches-Participants ecom2018 mescourses.png


Arbre des tâches de la création d'une course - organisateur

Arbre Taches-Organisateurs ecom20182019 mescourses.png


L8. Journal

Journal de l'équipe

L9. Dépôt Git

GitLab Application web

GitHub Application mobile

L10. Application en ligne

website

L11. Evaluation IHM réalisée

L12. Evaluation qualité du projet

SonarQube

L13. Evaluation économique du projet

COCOMO

Grâce à la commande : git ls-files | xargs cat | wc -l

Nous avons pu savoir que le projet à son état final comportait 65359 lignes de codes avec uniquement ce qui est envoyé sur GitLab (donc sans les nodes_modules, etc.).

Puis, avec la commande cloc src réalisée sur un projet JHipster de base avec les mêmes options que le notre puis sur notre projet, nous voyons que nous avons ajoutés 4511 lignes de code source à ce qui a été généré par JHipster.

Nous avons décidés que comme nous étions des jeunes diplomés, le salaire développeur pour ce projet serait de 2000€ net par mois.

En comptant toutes les charges, on arriverait à environ 5000€ par mois et par employés.

Le résultat COCOMO II correspondant est le suivant :


CocomoiiMesCourses20182019.png

Evaluation économique du projet

Vous pouvez utiliser les évaluations des salaires avec cette calculatrice pour connaître les salaires des membres de l'équipe. (pensez à ajouter les charges).

L14. Evaluation de la cybersécurité du projet (option)

L15. Evaluation des performances (option)

L16. Gestion des risques (option)

L17. Slides de présentation conception

L18. Slides de présentation finale

L19. Auto-évaluation

L20. Slides de présentation client

L21. Glossaire

  • Evénement : Une compétition sportive créée et organisée par un organisateur. Il comprend des participants, des bénévoles et un organisateur qui gère le bon déroulement de la compétition (ex: course à pied, marathon, triathlon, randonnée, course de vélo, etc.).
  • Organisateur : Personne qui est à l'origine de la course. Elle va gérer la course comme l'affectation des bénévoles.
  • Participant : Personne participant à un évènement. Cette personne s'inscrit à une course, paye le montant et participe à l'évènement.
  • Bénévole : Personne participant à un évènement mais sans être un participant. Elle a un rôle (kiné, contrôleur, .etc..) et le rempli durant la l'évènement.