Mathieu Duban
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # BackLogTmp | ID | Description | US liée(s) | | ----------- |:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:----------:| | T | Création d'un fichier `authentification.ejs` correspondant à la page ou l'utilisateur doit se connecter. Au centre de la page se trouve un cadre ayant un texte "username". En dessous se trouve un `form` ou l'utilisateur doit rentrer son username. Et ensuite un bouton `submit` permettant d'envoyer les informations. | U1 | | T | Création d'un fichier `authentification.js` correspondant à la page `authentification.ejs`. Ce fichier doit pouvoir récupérer l'username entré par l'utilisateur via un `GET` et faire un lien à notre base de données concernant l'authentification. Si l'username n'est pas existant alors cela crée un nouveau compte. Une fois fait, la page `home.ejs` doit être renvoyer. | U1 | | T GHERKIN | Ecrire un scénario en Gherkin et créer un test en selenium qui vérifient que si un nouvel utilisateur se connecte pour la premiere fois, et qu'il utilise un nom non-utilisé, alors il est bien ajouté à la base. Si le nom est déja utilisé, alors rien est ajouté à la base et l'utilisateur est redirigé vers la page `home`. | U1 | | T | Création d'un fichier `header.ejs` qui contient une `navBar` qui sera affichée sur toutes les pages (excépté sur `autentification.ejs`). La `navBar` contient le nom du projet et en dessous une liste de bouton telle que : issue, task, sprint, planif, release, dev, test, documentation et homeProject. Chaque bouton redirige respectivement vers les pages `issues.ejs`, `task.ejs`, `sprint.ejs`, `planif.ejs`, `realease.ejs`, `dev.ejs`, `test.ejs` , `documentation.ejs `et `projectName.ejs`. | | | T GHERKIN | Ecrire un scénario en Gherkin et créer un test en selenium qui vérifient que les différents boutons de la navbar redirige bien vers les pages correspondantes. | | | T | Creation d'un fichier `home.ejs` correspondant à la page ou l'utilisateur va pouvoir selectionner ou créer ses projets. En haut de la page se trouvera une bande prenant toute la largueur de la fenetre avec un texte centré indiquant `my projects`. En dessous de la bande `my Projects` ajouter une liste horizontale contenant les différents projets appartenant à l'utilisateur. Un projet est représenté par un cadre de forme carré qui à son centre contient le titre du projet. Un clic gauche effectué sur le cadre envoie la page principale du projet. | | | T | Dans le fichier `home.ejs` ajouter à la fin de la liste contenant les projets un autre cadre de forme carré qui à son centre contient un `+`. Ce carré permettra l'affichage de la création d'un nouveau projet en cliquant dessus. Une fois après avoir cliqué sur le carré, la liste des projets sera mise verticalement sur le coté gauche de l'écran et sur la partie droite de l'écran se trouvera la partie contenant les champs pour ajouter le `name` du projet et sa `description`. | | | T | Création d'un fichier `home.js` correspondant à la page `home.ejs`. Ce script doit pouvoir lors de l'affichage de la page `home.ejs` récupérer la liste des projets de l'utilisateur contenu dans notre base de données (`db.collection.find(UserID)`) et l'afficher sur notre liste horizontale. | | | T | Dans le fichier `home.js`, si l'utilisateur effectue un clic gauche sur un projet alors il sera redirigé sur la page `homeProject.ejs`. | | | T | Dans le fichier `home.js`, si l'utilisateur effectue un clic droit sur un projet, alors un menu sera affiché à l'endroit du curseur avec les options `edit` et `delete`. | | | T | L'option `edit` correspondra à la fonction `projectEdit()`. Elle permettra la mise en place de l'affichage permettant de modifier un projet, c'est-à-dire l'affichage des champs `name` et `description` avec des formes pour récupérer les informations et un bouton `submit` pour envoyer les informations. Une fois le bouton `submit` appuyé la base de données sera mise à jour (`db.collection.update(query)`), l'affichage du menu sera enlevé pour laissé place à la liste des projets (liste horizontale). | | | T | L'option `delete` correspondra à la fonction `projectDelete()`. Elle demandera à l'utilisateur si celui-ci est sûr de vouloir supprimer le projet via un pop-up. S'il répond positivement alors le projet sera effacé de la base de données (`db.collection.remove(query)`). | | | T | Dans le fichier `home.js`, si l'utilisateur clique sur le carré contenant `+` alors l'affichage sera changé comme explique dans la `T?`. L'utilisateur pourra entrer le nom du project (obligatoire) à travers un champ ainsi que sa description (facultative). Une fois le ou les champs remplis il pourra appuyer le bouton `submit` afin de valider la création de son projet. Si le champ `name` est déjà dans la base de données alors un message d'erreur s'affichera pour indiquer à l'utilisateur que le nom du projet est déja prit. La base de données sera mise à jour (`db.collection.insert(query)`) avec les données entrées. Il pourra également annuler son souhait de vouloir créer un nouveau projet en appuyant sur le bouton `cancel`. | | | T | Dans le fichier `home.js`, après que l'utilisateur ait appuyé sur le bouton `submit` ou `cancel` l'affichage de la partie edit sera enlevé pour laisser place à la liste des projets qui sera remise à l'horizontale grâce à la fonction `projectDefaultDisplay()`. | | | T GHERKIN | Ecrire un scénario en Gherkin et créer un test en selenium qui vérifient que les données récupérées correspondent bien aux projets de l'utilisateur courant. | U3 | | T GHERKIN | Ecrire un scénario en Gherkin et créer un test en selenium qui vérifient que le projet a bien été supprimé ou modifié sur la page `home.ejs` et dans la base de données. Lors de la modification, on vérifie également que les données entrées par l'utilisateurs correspondent bien aux données enregistrées dans la base et à celle présente sur la page `home.ejs`. | | | T | Création d'un fichier `homeProject.ejs` suite à la sélection d'un projet. Dans le header de la page se trouvera le fichier `header.ejs` afin d'avoir la `navBar`. En dessous de celle-ci se trouvera les informations liées au projet telles que : le nombre d'US totales, le nombre d'US réalisée, le pourcentage d'US réalisée, pareillement pour les tâches, la version actuelle du projet et le sprint actuel. Egalement, il devra avoir un graphique ayant pour but d'informer l'utilisateur sur le nombre de tâches réalisées pour chaque contributeur. | | | T | Dans le fichier `homeProject.ejs` ajouter un bouton `Export` permettant à l'utilisateur de télécharger le backlog du projet en `.pdf` ou `.md`. Une fois le bouton appuyé une liste déroulante doit apparaitre laissant le choix à l'utilisateur du type de fichier qu'il souhaite. | | | T | Création d'un fichier `homeProject.js` correspondant à la page `homeProject.ejs`. Ce script doit pouvoir lors de l'affichage de la page `homeProject.ejs` afficher les différentes informations liées au projet en faisant des requêtes à la base de données telles que : le nombre d'US totales (`db.collection.count()`), le nombre d'US réalisée (`db.collection.find(query).count`), le pourcentage d'US réalisée (`db.collection.count() / db.collection.find(query).count) * 100`), pareillement pour les tâches, la version actuelle du projet (`db.collection.find(query)`) et le sprint actuel (`db.collection.find(query)`). | | | T | Dans le fichier `homeProject.js`, aprés que l'utilisateur ait choisi le type de fichier qu'il veut exporter pour avoir le backlog du projet la fonction `projectExportBacklog(type)` doit être lancée avec `type` qui est soit `pdf` soit `md`. Cette fonction permettra de générer le backlog et lancera le téléchargement du fichier via le `browse` de l'utilisateur. | | | T A CHANGER | Ecrire un scénario en Gherkin et créer un test en selenium qui vérifient que le nom de la page correspond à celui du projet et que les données sur le projet affichées sont les mêmes que les données de ce projet dans la base. | | | T GHERKIN | Ecrire un scénario en Gherkin et créer un test en selenium qui vérifient qu'un fichier a bien été créé apres avoir cliqué sur le bouton export. | | | T | Création d'un fichier `dev.ejs` correspondant à la page ou l'utilisateur va gérer la partie developpeur du project. Dans le header de la page se trouvera le fichier `header.ejs` afin d'avoir la `navBar`. En dessous de celle-ci se trouvera une liste horizontale contenant les différents developpeur du projet. Un developpeur est représenté par un cadre de forme carré qui à son centre contient le nom du developpeur. | | | T | Dans le fichier `dev.ejs` ajouter à la fin de la liste contenant les developpeurs un autre cadre de forme carré qui à son centre contient un `+`. Ce carré permettra l'affichage de l'ajout d'un nouveau developpeur en cliquant dessus. Une fois après avoir cliqué sur le carré, la liste des developpeurs sera mise verticalement sur le coté gauche de l'écran et sur la partie droite de l'écran se trouvera la partie contenant les champs pour ajouter le `name` du developpeur. | | | T | Création d'un fichier `dev.js` correspondant à la page `dev.ejs`. Ce script doit pouvoir lors de l'affichage de la page `dev.ejs` récupérer la liste des developpeurs du projet contenu dans notre base de données (`db.collection.find()`) et l'afficher sur notre liste horizontale. | | | T | Dans le fichier `dev.js`, si l'utilisateur effectue un clic droit sur un developpeur, alors un menu sera affiché à l'endroit du curseur avec les options `edit` et `delete`. | | | T | L'option `edit` correspondra à la fonction `devEdit()`. Cette fonction permettra la mise en place de l'affichage permettant de modifier un projet, c'est-à-dire l'affichage du champ `name` un forme pour récupérer les informations et un bouton `submit` pour envoyer l'informations. Une fois le bouton `submit` appuyé la base de données sera mise à jour (`db.collection.update(query)`), l'affichage du menu sera enlevé pour laissé place à la liste des developpeurs (liste horizontale). | | | T | L'option `delete` correspondra à la fonction `devDelete()`. Cette fonction demandera à l'utilisateur si celui-ci est sûr de vouloir supprimer le developpeur via un pop-up. S'il répond positivement alors le projet sera effacer de la base de données (`db.collection.remove(query)`). | | | T | Dans le fichier `dev.js`, si l'utilisateur clique sur le carré contenant `+` alors l'affichage sera changé comme explique dans la `T?`. L'utilisateur pourra entrer le nom du developpeur (obligatoire) à travers un champ. Une fois le champ rempli il pourra appuyer le bouton `submit` afin de valider la création de son projet. Si le champ `name` est déjà dans la base de données alors un message d'erreur s'affichera pour indiquer à l'utilisateur que le nom du developpeur est déja pris. La base de données sera mise à jour (`db.collection.insert(query)`) avec la données entrée. Il pourra également annuler son souhait de vouloir ajouter un nouveau developpeur en appuyant sur le bouton `cancel`. | | | T | Dans le fichier `dev.js`, aprés que l'utilisateur ait appuyé sur le bouton `submit` ou `cancel` l'affichage de la parte edit sera enlevé pour laisser place à la liste des developpeurs qui sera remise à l'horizontale grâce à la fonction `devDefaultDisplay()`. | | | T GHERKIN | Ecrire un scénario en Gherkin et créer un test en selenium qui vérifient que le nom des contributeurs affichés sont bien ceux associées au projets dans la base de données. Vérifier également si la suppression et la modification fonctionne correctement au niveau de l'affichage et de la base de données (vérifier l'entrée utilisateur dans le cas de la modification). | | | T | Création d'un fichier `issues.ejs` correspondant à la page ou l'utilisateur va gérer les différentes issues du projet. Dans le header de la page se trouvera le fichier `header.ejs` afin d'avoir la `navBar`. En dessous de celle-ci se trouvera un tableau `backlog` contenant la liste des différentes issues du projet tel que (ID, Description, Difficulté, Priorité, Sprint). Sous ce tableau se trouvera un bouton `newIssue` permettant d'ajouter une nouvelle issue. Il sera possible de modifier les issues, donc un menu `edit` s'affichera sur la partie droite de l'écran et le backlog sera sur la partie gauche réduit. | | | T | Dans le fichier `issues.ejs`, au dessus du backlog se trouvera une liste déroulante permattant à l'utilisateur de choisir comment il veut trier le backlog, soit en fonction de la difficulté, soit de l'importance ou soit de l'id. | | | T | Création d'un fichier `issues.js` correspondant à la page `issues.ejs`. Si l'utilisateur effectue un clic droit sur une issue du backlog , alors un menu sera affiché à l'endroit du curseur avec les options `edit` et `delete`. | | | T | L'option `edit` correspondra à la fonction `issueEdit()`. Cette fonction permettra la mise en place de l'affichage permettant de modifier une issue, c'est-à-dire l'affichage de différent champs tels que `description`, `difficulté` et `l'importance` et un bouton `submit` pour envoyer l'informations. La `difficulté` devra être une valeur numérique appartenant à la suite de `Fibonacci`. Si le nombre n'appartient pas à la suite alors un message d'erreur sera affiché. `L'importance` sera affichée avec une liste déroulante contenant les valeurs `low/medium/high` avec `high` la plus grande importance. Une fois le bouton `submit` appuyé la base de données sera mise à jour (`db.collection.update(query)`) et l'affichage du menu sera enlevé pour laisser place à la liste des issues (liste horizontale). | | | T | L'option `delete` correspondra à la fonction `issueDelete()`. Cette fonction demandera à l'utilisateur si celui-ci est sûr de vouloir supprimer l'issue via un pop-up. S'il répond positivement alors l'issue sera effacée de la base de données (`db.collection.remove(query)`). | | | T | Dans le fichier `issue.js`, si l'utilisateur clique sur le bouton `newIssue` alors l'affichage sera changé comme explique dans la `T?`. L'utilisateur pourra entrer la description de l'issue (obligatoire) à travers un champ. Une fois le champ rempli il pourra appuyer sur le bouton `submit` afin de valider la création de son projet. On enverra à la base de données la description entrée par l'utilisateur ainsi que l'ID de l'issue qui sera générée automatiquement en récupérant la derniere id du tableau et en lui ajoutant + 1. La base de données sera mise à jour (`db.collection.insert(query)`) .Il pourra également annuler son souhait de vouloir ajouter un nouveau developpeur en appuyant sur le bouton `cancel`. | | | T | Dans le fichier `issue.js`, aprés que l'utilisateur ait appuyé sur le bouton `submit` ou `cancel` l'affichage de la parte edit sera enlevée pour laissé place à la liste des developpeurs qui sera remise à l'horizontale grâce à la fonction `issueDefaultDisplay()`. | | | T | Dans le fichier `issue.js`, après que l'utilisateur ait choisi le type de tri qu'il veut avoir pour le backlog, la fonction `sortBacklog(type)` doit être lancée avec `type` qui est soit `difficulty`, `importance` ou `id`. Cette fonction mettra à jour l'affichage du backlog en fonction du tableau aprés le tri. | | | T GHERKIN | Ecrire un scénario en Gherkin et créer un test en selenium qui vérifient qu'une ligne est bien ajouté dans l'affichage de la liste des issues quand on appuis sur `newIssue` dans la page `issues.js`. Une fois la description ajoutée, on vérifie si l'issue est bien présente dans la base de données et si la description correspond. | | | T GHERKIN | Ecrire un scénario en Gherkin et créer un test en selenium qui vérifient si lors de la modification les données ont bien été modifiée au niveau de la base et de l'affichage, et si elles correspondent à ce qu'a entré l'utilisateur. | | | T GHERKIN | Ecrire un scénario en Gherkin et créer un test en selenium qui vérifient si lors de la suppression les données ont bién été misent à jour dans la base et dans le backlog, et au niveau des ID des US. | | | T | Création de la base de données `Cdp2020` avec les tables : `User(UserName)` (userName : String - unique key) - `Project(Id, Title, Description, UserId)` (Id : int - unique, Title : String - unique, Description : String, UserId : String) - `UserStory(Id, Description, Difficulty, Priority, Sprint, ProjectsId)` (Id : int - unique, Description : String, Priority : PriorityType, Sprint : int, ProjectId : int) - `Task(Id, Description, UserStoriesId, Dependences, EstimatedTime, State, ContributorId)` (Id : int - unique, Description : String, USId : int, Dependences : DependencesType, EstimadedTime : Date, State : TaskStateType, UserStoriesId : int) - `Contributor(ContributorName)` (contributorName : String - unique key) - `Documentation(ProjectId, Title, Description, File, Version, Type)` (ProjectId : int, Title : String, Description : String, File : , Version : VersionType, Type : DocumentationType) - `Test(ProjectId, Type, Version)` (ProjectId : int, Type : TestType, Version : VersionType) - `Sprint(Id, Number, Duration, BeginingDate, Tasks)` (Id : int, Number : int, Duration : Date, BeginingDate : Date, Tasks : ListIdTasks) | | | T | Création d'un fichier `dockerFile` et d'un fichier `docker-compose.yaml` afin d'éxécuter l'architecture de l'application web. # TO DO | | | T | Création d'un fichier `planification.ejs` correspondant à la page ou l'utilisateur va pouvoir associer des développeurs à des tâches. Dans le header de la page se trouvera le fichier `header.ejs` afin d'avoir la `navBar`. En dessous de celle-ci se trouvera sur la partie gauche de l'écran un tableau composé des développeurs liés au projet. Sur la partie droite de l'écran se trouvera un tableau composé des tâches liées au projet. Et en dessous des deux tableaux se trouvera un bouton `Pert` permettant de générer et d'afficher le diagramme de Pert lié au projet. | | | T | Dans la page `planification.ejs`, il pourra être fait des glisser-deposer afin d'ajouter un développeur à une tache. Cependant, il ne pourra avoir qu'un seul développeur par tache. On pourra enlever le développeur d'une tache en le selectionnant et en le déposant dans le contenu vide de la page. | | | T | Création d'un fichier `planification.js` correspondant à la page `planification.ejs`. Ce script doit pouvoir lors de l'affichage de la page `planification.ejs` récupérer la liste des développeurs du projet (`db.collection.find()`) et la la liste des tâches (`db.collection.find()`) et les afficher. | | | T | Dans le fichier `planification.js`, une fois le bouton `Pert` appuyé il faut créer un diagramme de Pert en utilisant les données de la table `tâche` (`db.collection.find()`). | | | T | Dans le fichier `planification.js`, doit se trouver une fonction permettant de gérer le glisser-deposer des développeurs aux taches. Une fois le glisser-deposer effectué, il faudra mettre à jour la base de données des tâches (`db.collection.update(query)`). Cependant, le développeur ayant été glisser-deposer doit toujours apparaitre dans la liste des développeurs. | | | T | Dans le fichier `planification.js`, si le développeur a été selectionné depuis la liste des tâches, une fois celui-ci déposer dans le vide il faudra mettre à jour la table des tâches (`db.collection.update()`). Egalement si le développeur a été selectionne depuis la liste des développeurs et qu'il est deposé dans le vide alors on le fera juste disparaitre de la sélection. | | | T | Création d'un fichier `sprint.ejs` correspondant à la page ou l'utilisateur peut gérer les sprints du projet. Dans le header de la page se trouvera le fichier `header.ejs` afin d'avoir la `navBar`. La premiere fois que l'utilisateur se rendra sur la page, il y aura au centre de la fenetre un formulaire avec un champ pour mettre le nombre de sprint voulu et un champ pour la durée d'un sprint (identique pour tous les sprints). En dessous de ces deux champs se trouvera un bouton `submit` permettant d'envoyer les informations. | | | T | Dans la page `sprint.ejs`, une fois le tableau de sprints crée, il sera affiché en dessous du header. En dessous du tableau se trouvera la liste des issues du projet. | | | T | Dans la page `sprint.ejs`, il sera possible de selectionner une issue et de faire un glisser-deposer afin de la mettre dans un sprint. | | | T | Dans la page `sprint.ejs`, lors qu'un clic droit sera effectué sur une case du tableau de sprint, alors un petit menu s'affichera afin de sélectionner une date de début. | | | T | Création d'un fichier `sprint.js` correspondant à la page `sprint.ejs`. Ce script doit pouvoir lors de l'affichage de la page `sprint.ejs` aficher le tableau de création de sprint lorsque c'est la premiere fois qu'on y accéde. Si ce n'est pas la premiere fois, le script doit pouvoir récupérer la liste des sprints du projet (`db.collection.find()`) et la liste des issues du projet (`db.collection.find()`) et les afficher. | | | T | Dans le fichier `sprint.js`, si une case du tableau de sprint est sélectionnée avec un clic droit, alors il devra être possible de lui associer une date de début (`db.collection.update()`). Cependant, la case `sprint x` ne peut pas avoir une date de début antérieure à celle du `sprint x - 1`. | | | T A CHANGER | Dans le fichier `sprint.js`, doit se trouver une fonction permettant de gérer le glisser-deposer des issues aux sprints. Une fois le glisser-deposer effectué, il faudra mettre à jour la base de données des sprints (`db.collection.update(query)`). | | | T A CHANGER | Dans le fichier `sprint.js`, si l'issue a été selectionnée depuis les sprints, une fois celle-ci déposée dans le vide il faudra mettre à jour la table des sprints et des issues (`db.collection.update()`). Egalement si l'issue a été selectionnée depuis la liste des issues et qu'elle est deposée dans le vide alors on la fera juste disparaitre de la sélection. | | | T | Création d'un fichier `documentation.ejs` correspondant à la page ou l'utilisateur va pouvoir gérer sa documentation. Dans le header de la page se trouvera le fichier `header.ejs` afin d'avoir la `navBar`. En dessous de celle-ci se trouvera dans un tableau une liste de la documentation du projet. Ce tableau contiendra le type du fichier de documentation (conception, user, administrator), le nom du fichier ainsi que sa version. En dessous de ce tableau se trouvera un bouton `addDocumentation` permettant d'ajouter une nouvelle documentation. | | | T | Dans la page `documentation.ejs`, il sera possible de trier les documentations en fonction de leur type et de la version via une liste déroulante ayant comme attributs `old version to current version`, `current version to old version`, `conception`, `user` et `administrator`. | | | T | Création d'un fichier `documentation.js` correspondant à la page `documentation.ejs`. Ce script doit pouvoir lors de l'affichage de la page `documentation.ejs` faire une requete à notre base de données (`db.collection.find()`) afin d'afficher les différents documents de documentation dans le tableau de la page. Si l'utilisateur effectue un clic droit sur une tache, alors un menu sera affiché à l'endroit du curseur avec les options `edit` et `delete`. L'option `edit` correspondra à la fonction `documentationEdit()` et l'option `delete` correspondra à la fonction `documentationDelete()`. | | | T | L'option `edit` correspondra à la fonction `documentationEdit()`. Cette fonction permettra la mise en place de l'affichage permettant de modifier une documentation, c'est-à-dire l'affichage des champs tels que `typeDocumentation`, `nameFile`, `version` et un bouton `submit` pour envoyer l'informations. Il y a aura également un champ permettant à l'utilisateur de pouvoir importer son fichier depuis son ordinateur. Une fois le bouton `submit` appuyé, la base de données sera mise à jour (`db.documentation.update(query)`), l'affichage du menu sera enlevé pour laissé place à la liste des documentations (liste horizontale). | | | T | L'option `delete` correspondra à la fonction `documentationDelete()`. Cette fonction demandera à l'utilisateur si celui-ci est sûr de vouloir supprimer la documentation via un pop-up. S'il répond positivement alors la documentaton sera effacée de la base de données (`db.documentation.remove(query)`). | | | T | Dans le fichier `documentation.js`, lorsqu'un clic sera effectué sur `addDocumentation` le menu `edit` s'ouvrira sur la partie droite de l'écran laissant le choix à l'utilisateur de soit créer un fichier en ajoutant un `name`, une `description`, un `type` et une `version` (on mettra à jour la base de données en fonction de ces informations). | | | T | Dans le fichier `documentation.js`, lorsque le menu `edit` sera affiché il sera possible de pouvoir glisser-deposer un fichier déjà existant de son ordinateur, mais il devra quand meme precisé le `type`, la `version` et le `nom`. | | | T | Dans le fichier `documentation.js`, si un clic gauche est effectué sur une ligne du tableau de la documentation, alors sur la partie droite de l'écran sera affiché la description du fichier (.md). Egalement, il sera possible de trier la documentation via une liste déroulante ayant comme attributs type et la version. | | | T | Création d'un fichier `task.ejs` correspond à la page ou l'utilisateur va pouvoir gérer les différentes taches du projet. Dans le header de la page se trouvera le fichier `header.ejs` afin d'avoir la `navBar`. En dessous de celle-ci se trouvera un tableau contenant la liste des différentes tâches du projet tel que (ID, Description, USLiees, TaskDependance, EstimatedTime, State). Sous ce tableau se trouvera un bouton `newTask` permettant d'ajouter une nouvelle tâche. Il sera possible de modifier les taches, donc un menu `edit` s'affichera sur la partie droite de l'écran et le tableau des tâches sera sur la partie gauche de l'écran. | | | T | Création d'un fichier `task.js` correspondant à la page `task.ejs`. Si l'utilisateur effectue un clic droit sur une tache, alors un menu sera affiché à l'endroit du curseur avec les options `edit` et `delete`. L'option `edit` correspondra à la fonction `taskEdit()` et l'option `delete` correspondra à la fonction `taskDelete()`. | | | T | Dans le fichier `task.js`, la fonction `taskEdit()` permettra la mise en place de l'affichage permettant de modifier une tache, c'est-à-dire l'affichage de différent champs tels que `description`, `us liees` et `tache dépendante`, `temps estimé` et `sate` et un bouton `submit` pour envoyer l'informations. Le champ `us liee` aura une liste déroulante contenant la liste des us du projet (`db.userStory.find()`) mais indiquera seulement l'id de l'us et non sa description. Le champ `tache dépendante` aura une liste déroulante contenant la liste des tâches du projet (`db.task.find()`). Le champ `estimed time` ne pourra être rempli que par des valeurs soit en `djH` (demie-journée homme) ou en `jH` (journée Homme). Une fois le bouton `submit` appuyé la base de données sera mise à jour (`db.task.update(query)`), l'affichage du menu sera enlevé pour laissé place à la liste des taches (liste horizontale). | | | T | Dans le fichier `task.js`, la fonction `taskDelete()` demandera à l'utilisateur si celui-ci est sûr de vouloir supprimer l'issue via un pop-up. S'il répond positivement alors l'issue sera effacée de la base de données (`db.task.remove(query)`). | | | T | Dans le fichier `task.js`, si l'utilisateur clique sur le bouton `newTask` alors l'affichage sera changé comme explique dans la `T?`.L'utilisateur pourra entrer la description de la tache (obligatoire) à travers un champ. Une fois le champ rempli il pourra appuyer le bouton `submit` afin de valider la création de la tache. On enverra à la base de données la description entrée par l'utilisateur ainsi que l'ID de l'issue qui sera générée automatiquement en récupérant la derniere id du tableau et en lui ajoutant + 1. La base de données sera mise à jour (`db.task.insert(query)`). Il pourra également annuler son souhait de vouloir ajouter un nouveau developpeur en appuyant sur le bouton `cancel`. | | | T | Création d'un fichier `release.ejs` qui correspond à la page ou l'utilisateur va pouvoir gérer les différentes releases liées au projet. Dans le header de la page se trouvera le fichier `header.ejs` afin d'avoir la `navBar`. En dessous de celle-ci, se trouvera un tableau contenant la liste des différentes releases du projet tel que (fileName, file (bouton de téléchargement), version). Sous ce tableau se trouvera un bouton `newRelease` permettant d'ajouter une nouvelle release. Il sera possible de modifier les releases, donc un menu `edit` s'affichera sur la partie droite de l'écran et le tableau des releases sera sur la partie gauche de l'écran. | | | T | Dans la page `release.ejs`, il sera possible de trier les releases en fonction de leur version via une liste déroulante ayant comme attributs `old version to current version` et `current version to old version`. | | | T | Dans la page `release.ejs`, si un clic est effectué sur le file de la release alors un téléchargement sera effectué sur le browser de l'utilisateur. | | | T | Création d'un fichier `release.js` correspond à la page `release.ejs`. Si l'utilisateur effectue un clic droit sur une tache, alors un menu sera affiché à l'endroit du curseur avec les options `edit` et `delete`. L'option `edit` correspondra à la fonction `releaseEdit()` et l'option `delete` correspondra à la fonction `releaseDelete()`. | | | T | Dans le fichier `release.js`, la fonction `releaseEdit()` permettra la mise en place de l'affichage permettant de modifier une release, c'est-à-dire l'affichage du champ tel que `fileName` et un bouton `submit` pour envoyer l'informations. Il y a aura également un champ permettant à l'utilisateur de pouvoir importer son fichier depuis son ordinateur. Une fois le bouton `submit` appuyé, la base de données sera mise à jour (`db.release.update(query)`) et l'affichage du menu sera enlevé pour laissé place à la liste des releases (liste horizontale). | | | T | Dans le fichier `release.js`, la fonction `releaseDelete()` demandera à l'utilisateur si celui-ci est sûr de vouloir supprimer la release via un pop-up. S'il répond positivement alors la release sera effacée de la base de données (`db.release.remove(query)`) | | | T | Dans le fichier `release.js`, si un clic gauche est effectué sur le bouton de téléchargement d'une release, alors l'utilisateur aura via son browser le téléchargement de la release en question (`db.release.find(query)`). | | | T | Dans le fichier `release.js`, après que l'utilisateur ait choisi le type de tri qu'il veut avoir pour le tableau des releases, la fonction `sortRelease(type)` doit être lancée avec `type` qui est soit `oldToRecent` ou `recentToOld`. On devra trier les releases en fonction de leur version, c'est à dire que par exemple la version `1.5.01` est plus récente que la version `1.4.15`. Cette fonction mettre à jour l'affichage du tableau des releases en fonction du résultat obtenu via la fonction. | |

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully