jalon02 - mathieu-bergeron/aquiletour2021 GitHub Wiki

Jalon02

Vue d'ensemble

  • On a 7 jalons

  • On met en ligne une nouvelle version à chaque jalon

  • Plan de match pour l'instant:

    • jalon01: prototype en ligne
    • jalon02: billetterie minimalement fonctionnelle
    • jalon03:
      • connexion usager par courriel
      • importation des usagers par fichier .csv de ColNet
      • ajout des heures de rendez-vous dans la billetterie
    • jalon04: ajout du calendrier de cours
    • jalon05:
      • intégration du module Git
      • ajout de la messagerie
    • jalon06: config prod finale (p.ex. mongoDB, https)
    • jalon07: finition (+ écrire rapports de stage)

Démos pour jalon01

(mbergeron)

Objectifs du jalon02

  • Marwane:
    • code Java pour les pages ci-bas
      • client
      • et backend (avec mbergeron)
      • NOTE: voir __test__data__jalon02__ pour les nouveaux modèles
    • tests Selenium pour le comportement ci-bas
  • Joseph:
    • code HTML/CSS pour les pages ci-bas
  • Benjamin:
    • version JSweet: charger les modèles
    • billets pour l'implantation et le débogage Ntro
  • mbergeron:
    • modèles et backend (avec Marwane)
    • dette technique: graphe de tâches (NtroTask)
  • mroussel:
    • script pour déploiement automatique
    • config postfix dans Dockerfile
    • config DNS pour server STMP
    • billets Docker
  • nleduc:
    • données de tests + dépôt Git de tests
    • tester les webhook de GitHub, GitLab, AzureDevOps, etc.

Élus de la semaine

  • Semaine 4: Marwane
  • Semaine 5: Joseph

Notes importantes

  • Il faut (re)générer le javascript après un merge ou un clone

      $ ./gradlew js
    
  • Il faut aussi installer les données de test:

      $ ./gradlew test
    
    • ou à la main:

        $ rm -rf aquiletour_server/__data__
        $ cp -rf aquiletour_server/__test_data__ aquiletour_server/__data__
      
  • Il faut se connecter au site Web:

    • Comme prof: localhost:8080?userId=alice&authToken=aliceToken
    • Comme étudiant: localhost:8080?userId=bob&authToken=bobToken
  • Il faut choisir sa version (JSweet ou HTML):

    • version JSweet: localhost:8080?js
    • version HTML: localhost:8080?nojs

Pages et actions

aquiletour.ca ou /

  • si non-connecté:
    • page d'accueil avec slideshow qui sert de petit tutoriel
      • p.ex. cliquer ici pour voir vos cours, etc.
  • si connecté:
    • se comporte comme /mescours

/mescours

  • Liste des cours pour l'usager courant
  • si prof:
    • bouton Ajouter un cours
    • une carte pour chaque cours avec:
      • titre du cours
      • nombre de billets
  • si étudiant:
    • une carte pour chaque cours avec:
      • titre du cours
      • si rendez-vous:
        • texte: j'ai déjà un rendez-vous
      • prof disponible:
        • texte: prof disponible
        • bouton je prends rendez-vous
      • sinon:
        • texte: prof non-disponible

/billetteries (noter le s!)

  • Liste des profs avec une billetterie ouverte

    • pour chaque prof, on peut cliquer pour voir quelle(s) billetterie(s) est ouverte
    • NOTE:
      • une billetterie est ouverte si:
        • le prof a ouvert la page de la billetterie
        • le prof n'a pas fermé la billetterie
        • il n'y pas eu de timeout de 5min sans activité du prof sur la billetterie
  • Trier par les billetteries de la plus occuppée à la moins occupée

  • Info pour chaque billetterie

    • nom du cours, nom du prof
    • nombre de billets répondus à date

/billetterie/IdDuCours (noter pas de s à billetterie)

  • Liste des billets pour le cours IdDuCours
  • Pour chaque billet
    • nom et prénom de l'étudiant
  • si prof:
    • bouton X pour effacer le billet
      • /billetteries/IdDuCours?delete=Id
    • bouton || (flèches haut/bas) pour déplacer le billet
      • /billetteries/IdDuCours?move=Id1&before=Id2
      • /billetteries/IdDuCours?move=Id1&after=Id2
    • bouton pour fermer la billetterie
      • /billetteries/IdDuCours?close

/usagers

  • Liste d'usager avec rôle
  • Pour chaque usager
    • afficher son rôle (prof ou étudiant)
    • on peut ajouter l'usager à une billetterie en particulier
      • p.ex avec dropdown de la liste de billetterie
      • /usagers?addUser=Id&to=IdDuCours

Bouton connexion

  • Lance la bande-dessinée de connexion (faite à partir de modal)
  • IDÉE:
    • le premier modal devrait plutôt dire: "Entrer votre DA" et plus bas "Je suis plutôt un prof"

Dette technique

  • Graphe des tâches est à ré-implanter et tester
  • TODO) gestion des erreurs (onFailure)

Idées pour plus tard

  • Récompenser l'utilisation de la billetterie avec des trophées

    • prof et étudiant qui répondent le plus
    • commentaires sur les billets les plus appréciés
      • p.ex. mon commentaire sur l'atelier 2 a été aimé
      • PAS DE DOWNVOTE
  • Compte modérateur, p.ex. pour les admin du Cégep

⚠️ **GitHub.com Fallback** ⚠️