Skip to content

Latest commit

 

History

History
50 lines (50 loc) · 25.2 KB

Tasks1.md

File metadata and controls

50 lines (50 loc) · 25.2 KB
ID Description Definition of done Issues correspondantes Dépendances Durée (j/h) Etat Membres
100 Démarage du projet. Création d'un fichier " package.json " qui va définir le projet. Le projet aura pour nom : saf-scrum ; Il commencera en version 0.1.0 ; Ces dépendances seront : " express ","express-session"," ejs ", " body-parser ", "passport","passport-local","connect-ensure-login","morgan","mysql","moment"; son main se nommera " index.js ", il aura pour description : " projet saf-scrum " Définition de l'architecture : On choisira routes-Vue-Controller , donc création des dossiers routess, views et controller. Le fichier index.js sera placé dans la racine du projet. Pouvoir installer tous les modules avec la commande npm install US1 - US35 NOTHING 0.5 DONE Simon
101 Création de la base de données MySQL sur phpMyAdmin avec pour info : host: dbserver.emi.u-bordeaux.fr", user: "agourgue", password: cdp2019", database: "agourgue" Pouvoir se connecter à la base de données au cremi avec les identifiants "agourgue" et "cdp2019" US1 - US35 NOTHING 0.5 DONE Simon
102 Initialisation des tables dans la base de données (Users, Projects, Issues, Tests, Tasks, Documentation, Sprints, Releases, Tasks_Users, Projects_Users, Tasks_Tasks, Sprints_Issues, Releases_Issues et Sprints_Releases). users : username VARCHAR(30) NOT NULL, email TEXT, password TEXT, PRIMARY KEY (username) projects : _project_name VARCHAR(50) NOT NULL , _owner_name VARCHAR(30) NOT NULL, description TEXT, PRIMARY KEY (_project_name, _owner_name) projects_users : _user_name VARCHAR(50) NOT NULL, _project_name VARCHAR(50) NOT NULL, PRIMARY KEY (_user_name, _project_name) tasks_users : _task_id INT NOT NULL, _user_name VARCHAR(50) NOT NULL, PRIMARY KEY(_task_id, _user_name) tasks : _task_id INT NOT NULL, description TEXT NOT NULL, state TEXT NOT NULL, _issue_id INT, _project_name VARCHAR(50), PRIMARY KEY (_task_id, _project_name) tasks_tasks : _task_id INT NOT NULL, _dependency_task_id INT NOT NULL, PRIMARY KEY (_task_id, _dependency_task_id) tests : _id INT NOT NULL AUTO_INCREMENT, description TEXT NOT NULL, state TEXT NOT NULL, result_description TEXT, _issue_id INT NOT NULL, project_id INT NOT NULL, _project_name VARCHAR(50) NOT NULL, PRIMARY KEY (_id, _project_name) documentation : _id INT NOT NULL, filepath TEXT NOT NULL, _project_name VARCHAR(50) NOT NULL, PRIMARY KEY(_id) issues : _issue_id INT NOT NULL, description TEXT NOT NULL, difficulty INT NOT NULL, priority TEXT NOT NULL, us_num TEXT NOT NULL, test_state TEXT NOT NULL, _project_name VARCHAR(50) NOT NULL, PRIMARY KEY (_issue_id, _project_name) sprints_issues : _issue_id INT NOT NULL, _sprint_id INT NOT NULL, PRIMARY KEY (_issue_id, _sprint_id) sprints : _id INT NOT NULL AUTO_INCREMENT, _name VARCHAR(50) NOT NULL, starting_date DATE NOT NULL, ending_date DATE NOT NULL, description TEXT , _project_name VARCHAR(50) NOT NULL, PRIMARY KEY(_name, _project_name) sprints_releases : _sprint_id INT NOT NULL, _release_id INT NOT NULL, PRIMARY KEY (_sprint_id, _release_id) releases : _id INT NOT NULL AUTO_INCREMENT, filepath TEXT NOT NULL, creation_date DATETIME NOT NULL, version_num INT NOT NULL, description TEXT NOT NULL, _project_name VARCHAR(50) NOT NULL, PRIMARY KEY (_id, _project_name) realses_issues : _issue_id INT NOT NULL, _release_id INT NOT NULL, PRIMARY KEY (_issue_id, _release_id)" Pouvoir insérer un élément dans chaque table de la base de données US1 - US35 NOTHING 0.5 DONE Simon
103 Création des fichiers "database_header.js" qui fais la connexion avec la base de données, elle contiendra une fonction getDatabase() retournant la constante "database" contenant les infos de connection. Création des fichiers "database_select.js" pour les fonctions de récupérations des données, "database_insert.js" pour les fonctions d'insertions de données et "database_delete.js" pour les fonctions de supressions des données. Toutes ces fonctions devront être exportés afin de les utiliser dans d'autres fichiers. Pouvoir faire une requête à la base de données en utilisant le getDatabase() US1 - US35 102 0.5 DONE Simon
104 Création de la fonction de récupération d'un utilisateur avec un "username" et un "password" dans le fichier "database_select.js". Création d'une fonction d'insertion d'un utilisateur avec un "username", un "email" et un "password" dans le fichier "database_insert.js". Pouvoir insérer un utilisateur dans la base de données et pouvoir le récupérer US4 103 1 DONE Simon
105 Création de la page d'accueil avec un fichier "index.js" dans routes et "index.ejs" dans le dossier views. Dans un premier temps, le serveur devra être disponible en localhost sur le port 8080. Pouvoir accéder à l'index à l'adresse localhost:8080 en utilisant node index.js à la racine US1 - US35 NOTHING 0.5 DONE Florian
106 Création d'un formulaire avec les champs "username" et "password" et d'un bouton "log in" dans le ficher "index.ejs" qui permettront de se connecter une fois les champs remplis. Création d'un bouton "create account" placé un dessous du bouton "log in" qui nous redirigera vers une autre page contenant un formulaire permettant de nous créer un compte. Le second formulaire contient les champs "mail", "username" et "password". Pouvoir créer un utilisateur en utilisant le bouton le formulaire de "create_account". Pouvoir voir le formulaire de connexion US1 105 0.5 DONE Florian
107 Création du fichier "authenticate.js" qui gerera l'authentification à l'aide du module "passport.js". Il sera placé dans le dossier routes. Il fera le lien avec le lien avec le fichier "index.js". Création des fonctions de connexion et de déconnexion d'un utlisateur à l'aide du module "passeport", dans le fichier "authenticate.js". Un appel à ses fonctions doit être fait dans "index.js" Pouvoir se connecter à une session en utilisant le formulaire du login en utilisant les identifiants d'un utilisateur créé auparavant US1 - US2 - US4 104 3 DONE Antoine
108 Création des fichier "project.js" dans routes et "project.ejs" dans views. Création des boutons Issues, Tasks, Tests, Releases, Documentation, Sprints, Summary et Project Management dans "header.ejs"permettant de changer d'onglet. Création du bouton "logout" en haut à droite de la page projet. Pouvoir, en se connectant, voir tous les onglets en rejoignant un projet, et ensuite se déconnecter en cliquant sur le logout US2 - US11 NOTHING 0.5 DONE Simon
109 Création d'une fonction d'insertion d'un projet avec un "project_name", UN "owner_name" et une "description" (qui devra être optionelle) dans le fichier "database_insert.js". Création d'une fonction (dans database_delete.js) de suppression d'un projet ayant en paramètre le nom de projet et son propriétaire. Pouvoir créer ou supprimer un projet dans la table projects en appelant ces fonctions US2 103 0.5 DONE Simon
110 Création du fichier "issues.js" dans routes et "issues.ejs" dans views. Dans la vue, créer un bouton "add issue". Pouvoir voir le bouton add issue dans l'onglet issue US12 110 0.5 DONE Florian
203 Création du fichier "register.js" dans routes et "register.ejs" dans views. Pouvoir atterrir sur le formulaire de création de compte en cliquant sur "create account" US1 103 0.5 DONE Antoine
204 Ajout dans le ficher "register.ejs" des inputs "email"(type=text), "username"(type=text) et password(type=password) tous required. Ajout du bouton "sign in" qui redirigera vers "index" dans le fichier "register.js" et qui fera un insert dans la base de données du user avec la fonction "insertUser(name, email, password)" du fichier "db_controller/user_db.js". Pouvoir créer un compte en remplissant le formulaire avec un email, un username et un password et en cliquant sur sign in US1 203 1 DONE Antoine
205 Création du bouton "add project" dans la page "project.ejs" permettant de créer un projet. Création du bouton "delete project" dans le fichier "projectManagement.ejs" pour plus tard, supprimer un projet. Afficher la liste des projets de l'utilisateur dans le fichier "project.ejs". Pouvoir voir les boutons add project dans la page /projects et delete project dans l'onglet "Project Management" US2 108 0.5 DONE Antoine
206 Implémentation du bouton "add project" avec un formulaire de création de projets. Ses inputs sont un "name" (type = text) en required et la description (type = text). Le "_owner_name" sera donné automatiquement avec le nom de l'utilisateur qui crée le projet. Pouvoir créer un projet en cliquant sur le bouton add project et en remplissant le formulaire de création en cliquant sur le bouton Validate US2 205 1 DONE Antoine
207 Ajout du bouton "Enter project" dans la liste des projet qui redirige vers le summary du projet cliqué dans le fichier "projects.ejs" dans views . La redirection est à gérer dans les fichiers "projects.js" et "index.js". Il stockera l'id du project dans toutes les vues. Pouvoir sléctionner un projet en cliquant sur son bouton "Enter Project", et voir son nom dans le header US2 206 1 DONE Antoine
208 Implementation du bouton "delete project" dans le fichier "projectManagement.js" en utilisant la fonction deleteProject(project_name, owner_name) du fichier "db_controller/project_db.js". Pouvoir supprimer un projet en cliquant sur le bouton "delete project" dans l'onglet "Project Management" US2 207 0.5 DONE Antoine
209 Ajout des redirections des boutons du header dans les fichier 'documentation.js', issues.js', 'projectManagement.js', 'releases.js', 'sprints.js', 'summary.js', 'tasks.js' et 'tests.js' dans le dossier routes, ainsi que les imports de ses fichiers dans "index.js". Ajout du bouton logout dans le 'header.js' ainsi que la redirection vers le logout dans le fichier 'login.js' dans routes. Pouvoir cliquer sur tous les onglets en étant redirigé vers les bonnes pages. Pouvoir se déconnecter via le logout du header. US11 108 1.5 DONE Antoine
210 Ajout du nom du projet en haut à gauche du header dans le fichier "header.js". Ajout d'un bouton "Project List" au milieu du header qui redirige vers la liste des projets de l'utilisateur. ('/projects'). Pouvoir voir le nom du projet selectionné dans le header. Pouvoir retourner vers la liste des projets en cliquant sur le bouton "Project List" dans le header US11 209 1 DONE Antoine
211 Création du fichier "issue.js" dans routes et "issue.ejs" dans views. Pouvoir atterrir sur l'onglet "issues" en cliquant dans le header US12 105 0.5 DONE Florian
212 Création de l'affichage de la liste des issues, chaque issues sera affichées avec son numéro, sa description, sa difficultée, sa prioritée et son état. Pouvoir voir la liste des issues d'un projet depuis l'onglet "issues" US12 211 1 DONE Florian
213 Création d'un bouton "addIssue" et d'un formulaire de création d'une issue. Les inputs devront être "User Story number" (type = text), "Descrition" (type=text), "Difficulty" (type=number), une sélection à choix unique pour "Priority" (type=text) (low, medium, high) et une séléction à choix unique pour le "State"(type=test) (TODO, DONE). Tous les input seront "required". Création des boutons "validate" et "cancel" dans le formulaire qui permettent respectivement de valider les informations rempli par l'utilsateur ou à l'inverse d'annuler la reqiuête d'insertion. Le formulaire devra renvoyer à la méthode "POST" de insertIssue dans le fichier "issue.js" qui utilsera les fonctions de "db_controller/issue_db.js". Pouvoir voir le formulaire de création d'issue en cliquant sur le bouton "add issue" US12 212 1 DONE Florian
214 Création des fonctions d'insertions des issues dans la base de données dans le fichier "db_controller/issue_db.js" : insertIssue(description, difficulty, priority, usNum, sate, projectId) insertIssueInRelease(issueId, releaseId) insertIssueInSprint(issueId, sprintId) Les champs difficulty et les Id sont des number. Les autres champs sont des String. Pouvoir créer une issue en cliquant sur le bouton "add issue" en remplissant le formulaire et pouvoir le voir dans la liste des issues US12 103 1 DONE Florian
215 Création de la fonction d'update des issues dans la base de données dans le fichier "db_controller/issue_db.js" : updateIssue(projectId, issueId, description, difficulty, priority, usNum, testSate) Les champs difficulty, priority et usNum sont des number. Les autres champs sont des String. Pouvoir modifier une issue en appelant la fonction. US14 103 0.5 DONE Florian
216 Création de la fonction de suppression des issues dans la base de données dans le fichier "db_controller/issue_db.js" : deleteIssue(projectId, issueId) Les champs sont des number. Pouvoir supprimer une issue en appelant la fonction US13 103 0.5 DONE Florian
217 Création du bouton pour modifier les issues. Création du formulaire de modification d'une issue. Les inputs devront être "User Story number" (type = text), "Descrition" (type=text), "Difficulty" (type=number), une sélection à choix unique pour "Priority" (type=text) (low, medium, high) et une séléction à choix unique pour le "State"(type=test) (TODO, DONE). Tous les input seront "required". Création des boutons "validate" et "cancel" dans le formulaire qui permettent respectivement de valider les informations rempli par l'utilsateur ou à l'inverse d'annuler la requête d'insertion. Le formulaire devra renvoyer à la méthode "POST" de updateIssue dans le fichier "issue.js" qui utilsera les fonctions de "db_controller/issue_db.js". Pouvoir modifier une issue en cliquant sur le bouton "modify" de l'issue en remplissant le formulaire et pouvoir voir la modification dans la liste des issues US14 213 1 DONE Florian
218 Création du bouton "Delete" pour les issues dans "issues.ejs". Le bouton devra utiliser la method "POST" de /deleteIssue dans le fichier "issue.js" et utilsera les fonctions de "db_controller/issue_db.js". Pouvoir supprimer une issue en cliquant sur delete et pouvoir voir sa suppression dans la liste des issues US13 217 0.5 DONE Florian
219 Création du formulaire de confirmation ("Yes" et "No") pour la suppression d'une issue. Pouvoir avoir un formulaire de confirmation lors de la suppression d'une issue qui la supprime en cliquant sur "yes" et qui annule la suppression en cliquant sur "no" US13 218 0.5 TODO Florian
220 Création du fichier "tasks.js" dans routes et "tasks.ejs" dans views. Pouvoir atterrir sur l'onglet "tasks" en cliquant dans le header US16 105 0.5 DONE Antoine
221 Création de fonctions d'écriture de tasks, dans la base de données dans le fichier "db_controller/task_db.js" : insertTask(taskId, description, state, projectId, issueId) -> issueId doit être optionnel pour l'utilisateur insertTaskTask(taskId, dependencyTaskId) insertTaskUser(taskId, userName) updateTask(projectId, taskId, description, state, issueId) -> issueId doit être optionnel pour l'utilisateur. Les id sont toujours des number, tous les autres sont des String. Pouvoir créer une task et ses dépendances en appelant les fonctions. US16 103 1 DONE Antoine
222 "Création de fonctions de lecture de tasks, dans la base de données dans le fichier "db_controller/task_db.js" : findTaskByProjectId(projectId) findUserOfTask(projectId, taskId). Les id sont toujours des number, tous les autres sont des String. Pouvoir sélectionner des tasks ou le user de la task en appelant les fonctions. US16 103 1 DONE Simon
223 Création de la fonction de suppression d'une task dans "db_controller/task_db.js" : deleteTask(projectId, taskId), les deux champs sont des number. Pouvoir supprimer une task en appelant la fonction US16 103 0.5 DONE Antoine
224 Création de l'affichage de la liste des tasks, chaque tasks sera affiché avec son ID, sa description, son état ainsi que l'utilisateur à qui est liée cette tâche Pouvoir voir la liste des tasks d'un projet depuis l'onglet "tasks" US16 220 1 DONE Simon
225 Création d'un bouton "add task", pour créer une task, dans le fichier "tasks.ejs". Création du formulaire de modification d'une tâche, les inputs devront être "task id" (type = number, l'input est obligatoire), "descrition" (text, obligatoire), une selection unique pour le "State" (obligatoire) avec comme choix "TODO", "DOING" et "DONE", une séléction à choix multiple pour les "issues id" contenant la liste des issues du projet, une selection à choix multiple pour les "depency tasks" contenant la liste des tâches du projet (exepté la tâche atuellement modifiée) ainsi qu'une selection unique pour le "associated member" contenant la liste des membres du projet. Création des boutons "validate" et "cancel" dans le formulaire qui permettent respectivement de valider les informations rempli par l'utilsateur ou à l'inverse d'annuler la reqiuête d'insertion. Le formulaire devra renvoyer à la method "POST" de /insertTask dans le fichier "tasks.js" qui utilsera les fonctions de "db_controller./task_db.js" Pouvoir créer une task en cliquant sur le bouton "add task" en remplissant le formulaire et pouvoir le voir dans la liste des tasks US16 221 1 DONE Simon
226 Création d'un bouton "modify" pour la modification de la tasks dans le fichier "tasks.ejs". Création du formulaire de modification d'une tâche, les inputs devront être "task id" (type = number, l'input est obligatoire), "descrition" (text, obligatoire), une selection unique pour le "State" (obligatoire) avec comme choix "TODO", "DOING" et "DONE", une séléction à choix multiple pour les "issues id" contenant la liste des issues du projet, une selection à choix multiple pour les "depency tasks" contenant la liste des tâches du projet (exepté la tâche atuellement modifiée) ainsi qu'une selection unique pour le "associated member" contenant la liste des membres du projet. Création des boutons "validate" et "cancel" dans le formulaire qui permettent respectivement de valider les informations rempli par l'utilsateur ou à l'inverse d'annuler la reqiuête d'insertion. Le formulaire devra renvoyer à la method "POST" de /updateTask dans le fichier "tasks.js" qui utilsera les fonctions de "db_controller./task_db.js" Pouvoir modifier une task en cliquant sur le bouton "modify" de la task en remplissant le formulaire et pouvoir voir la modification dans la liste des tasks US16 225 1 DONE Simon
227 Création du bouton "Delete" pour les tasks dans "tasks.ejs". Le bouton devra utiliser la method "POST" de /deleteTask dans le fichier "tasks.js" qui utilsera les fonctions de "db_controller./task_db.js". Pouvoir supprimer une task en cliquant sur delete et pouvoir voir sa suppression dans la liste des tasks US15 226 0.5 DONE Simon
228 Création du formulaire de confirmation ("Yes" et "No") pour la suppression d'une task. Pouvoir avoir un formulaire de confirmation lors de la suppression d'une task qui la supprime en cliquant sur "yes" et qui annule la suppression en cliquant sur "no" US15 122 0.5 TODO Simon
229 Création du fichier "tests.js" dans routes et "tests.ejs" dans views. Pouvoir atterrir sur l'onglet "tests" en cliquant dans le header US23 109 0.5 DONE Simon
231 Création de fonctions d'écriture des tests, dans la base de données dans le fichier "db_controller./test_db.js" : insertTest(projectId, description, issueId, state, resultDescription) -> resultDescription doit être optionnel pour l'utilisateur. Les ID sont toujours des "number", les autres sont des "String" Pouvoir créer un test en appelant la fonction. US23 103 1 TODO Simon
232 Création des fonctions de lecture des tests, dans la base de données dans le fichier "db_controller./test_db.js" : findTestOfIssue(projectId, issueId) findTestOfProject(projectId). Tous les champs sont des number. Pouvoir sélectionner des tests avec un id de projet ou d'issue en appelant les fonctions. US23 103 1 TODO Simon
233 Création de la fonction de suppression d'un test dans "db_controller./test_db.js" : deleteTest(projectId, testId), les deux champs sont des number. Pouvoir supprimer un test en appelant la fonction US23 103 0.5 TODO Simon
234 Création de l'affichage de la liste des tests, dans le fichier 'test.ejs'. Chaque tests sera affiché avec sa description, l'issue qui est testée, et son état. Pouvoir voir la liste des test s d'un projet depuis l'onglet "tests" US23 105 0.5 TODO Simon
235 Création d'un bouton "add test" pour la création d'un test dans le fichier "test.ejs". Création du formulaire de modification d'un test les inputs devront être "descrition" (text, ce champ est obligatoire), une selection unique pour le "State" (obligatoire) avec comme choix "SUCCEED" ou "FAILED" (pré-rempli en "failed"), une séléction à choix unique pour la "tested issue" contenant la liste des issues du projet. Création des boutons "validate" et "cancel" dans le formulaire qui permettent respectivement de valider les informations rempli par l'utilsateur ou à l'inverse d'annuler la reqiuête d'insertion. Le formulaire devra renvoyer à la method "POST" de /updateTest dans le fichier "test.js" qui utilsera les fonctions de "db_controller/test_db.js" Pouvoir créer un test en cliquant sur le bouton "add test" en remplissant le formulaire et pouvoir le voir dans la liste des tests US23 234 1 TODO Antoine
236 Création d'un bouton "modify" pour la modification d'un test dans le fichier "test.ejs". Création du formulaire de modification d'un test les inputs devront être "descrition" (text, ce champ est obligatoire), une selection unique pour le "State" (obligatoire) avec comme choix "SUCCEED" ou "FAILED" (pré-rempli en "failed"), une séléction à choix unique pour la "tested issue" contenant la liste des issues du projet. Création des boutons "validate" et "cancel" dans le formulaire qui permettent respectivement de valider les informations rempli par l'utilsateur ou à l'inverse d'annuler la reqiuête d'insertion. Le formulaire devra renvoyer à la method "POST" de /updateTest dans le fichier "test.js" qui utilsera les fonctions de "db_controller/test_db.js" Pouvoir modifier un test en cliquant sur le bouton "modify" du test en remplissant le formulaire et pouvoir voir la modification dans la liste des tests US25 235 0.5 TODO Simon
237 Création du bouton "Delete" pour les tests dans "tests.ejs". Le bouton devra utiliser la method "POST" de /deleteTest dans le fichier "test.js" qui utilsera les fonctions de "db_controller/test_db.js". Pouvoir supprimer un test en cliquant sur delete et pouvoir voir sa suppression dans la liste des tests US24 236 0.5 TODO Simon
238 Création du formulaire de confirmation ("Yes" et "No") pour la suppression d'un test. Pouvoir avoir un formulaire de confirmation lors de la suppression d'un test qui le supprime en cliquant sur "yes" et qui annule la suppression en cliquant sur "no" US24 237 0.5 TODO Simon
239 Création du bouton "give admin rights" qui permet d'afficher la liste des participants au projet et de leur donner un projet dans le fichier "project.ejs". Création de la fonction permettant d'échanger les rôles de deux utilisateurs pour le don de droits dans "db_controller/user_db.js". Pouvoir donner un projet à un autre utilisateur en cliquant sur le bouton "give admin rights" et voir que le projet passe de la liste des "projects own" à la liste des "suscribed projects" US10 207 1 TODO Antoine
240 Création du formulaire de confirmation ("Yes" et "No") pour le don de droits administrateur. Pouvoir avoir un formulaire de confirmation lors du don de droit administrateur d'un projet qui donne les droits en cliquant sur "yes" et qui annule le don en cliquant sur "no" US10 239 0.5 TODO Antoine