No description
  • PHP 94%
  • SCSS 5.2%
  • Makefile 0.6%
  • Hack 0.2%
Find a file
2023-04-14 14:57:02 +02:00
docs Génération d'une documentation avec PHPdoc 2023-04-11 17:43:35 +02:00
maquette Ajout du fichier README.md contenant une description détaillée de chaque composant de l'app 2023-04-03 14:05:46 +02:00
src Ajout de breadcrumbs 2023-04-13 17:15:27 +02:00
tests Création d'un test bidon 2023-04-14 14:56:00 +02:00
.gitignore Génération d'une documentation avec PHPdoc 2023-04-11 17:43:35 +02:00
composer.json Ajout de composer (puis phpstan et ecs) et d'un makefile 2023-04-04 17:54:40 +02:00
composer.lock Ajout de composer (puis phpstan et ecs) et d'un makefile 2023-04-04 17:54:40 +02:00
ecs.php Renommages divers, ébauche de CSS 2023-04-05 14:56:37 +02:00
Makefile Création d'un test bidon 2023-04-14 14:56:00 +02:00
phpstan.neon Augmentation de la sévérité de phpstan au niveau 8, et donc correction du code (principalement des annotations de types) 2023-04-05 11:41:52 +02:00
README.md Changement du readme 2023-04-14 14:57:02 +02:00
reset.sql (Ajout author lors d'une création de tâche et une liste d'user dans la view pour l'editor) 2023-04-11 23:43:31 +02:00

todolist-jr-ma-sj

LE PROJET EST DE NOUVEAU SUR GITLAB

Projet Final MAS-RAD PHP

Mélanie Abbet - Simon Junod - Jérémie Rudaz

Cahier des charges

Sur la base du mini framework commencé durant les cours, nous devons compléter l'application de task list.

L'application doit inclure plusieurs fonctionnalités :

  • Gestion des utilisateur (création/modification de compte avec gestion des duplicats)
  • Liste des tâches visibles par l'ensemble des utilisateurs
  • Edition étendue des tâches par le propriétaire de la tâche
  • Edition restreinte des tâches par l'utilisateur dont la tâche a été assignée
  • Un historique des commentaires liés à une tâche.

Détails de l'application

Ci-dessous, nous expliquons de façon détaillée chaque composant de l'application.

Page de login (loginView)

loginView

Lorsqu'un utilisateur arrive sur l'application, une page de connexion l'invite à se connecter. Si l'utilisateur n'a pas encore de compte, il a la possibilité d'en créer un en cliquant sur le bouton idoine. Pour se connecter, il suffit à l'utilisateur de saisir :

  • son adresse e-mail (emailAddress)
  • son mot de passe (password)

### Nice to have

Ajouter la possibilité de réinitialiser un mot de passe si un utilisateur a oublié le sien.

Page de création d'un utilisateur (addUserView)

addUserView

Lorsqu'un utilisateur souhaite créer un compte, il doit renseigner :

  • son nom d'utilistateur (userName)
  • son adresse e-mail (emailAddress) (celle-ci est utilisée comme identifiant unique pour chaque utilisateur)
  • un mot de passe (password) (celui-ci sera crypté dans la base de donnée)
  • une confirmation de son mot de passe. (confirmPassword)

Un message de validation apparaîtra lorsque le compte aura été créé. Un message d'erreur apparaîtra s'il y a une différence entre le mot de passe et la confirmation du mot de passe. Un message d'erreur apparaîtra si un utilisateur essaie de créer un compte avec une adresse e-mail déjà existante dans la base de donnée.

Page d'édition du compte (editUserView)

editUserView

Une fois connecté, et à tout moment, un utilisateur peut éditer certaines informations sur son compte. L'utilisateur peut accéder à cette page à tout moment depuis le header de la page, qui contient une icône en haut à droite. Par souci de simplicité pour ce projet, seul le mot de passe peut être modifier. Pour modifier son mot de passe, l'utilisateur doit renseigner son mot de passe actuel (password), saisir son nouveau mot de passe (newPassword) et confirmer le nouveau mot de passe (confirmNewPassword).

Un message de validation apparaîtra lorsque le mot de passe aura été mis à jour. Un message d'erreur apparaîtra s'il y a une différence entre le nouveau mot de passe et la confirmation du nouveau mot de passe.

Nice to have

Ajouter la possibilité d'ajouter une image de profil.

Page principale - listes des tâches (taskListView)

taskListView

La page est séparée en deux parties distinctes :

  • Vos tâches
  • Toutes les tâches

La partie Vos tâches comprend la liste des tâches de l'utilisateur connecté. Un bouton pour ajouter une tâche renvoie à la page de création de tâche (addTaskView).

La partie Toutes les tâches comprend la liste de toutes les tâches enregistrées dans l'application. Dans cette liste apparaît les informations suivantes :

  • Le nom de la tâche (taskName)
  • La date d'échéance (dueDate)
  • Le nom de la personne a qui la tâche a été assignée (assignedTo)
  • Le statut de complétion de la tâche (isCompleted)

En cliquant sur une tâche (que ce soit dans la partie Vos tâches ou dans la partie Toutes les tâches), l'utilisateur accédera à la page de la tâche (taskView).

Page Tâche (taskView)

taskView

L'utilisateur peut afficher les informations complète de n'importe quelle tâche. En fonction de s'il est propriétaire de la tâche ou si la tâche lui a été assignée, il pourra éditer certaines informations.

Si l'utilisateur n'est pas propriétaire de la tâche et que celle-ci ne lui a pas été assignée, il ne pourra que consulter les informations liée à la tâche.

la page des tâches comporte les informations suivantes :

  • Le nom de la tâche (taskName)
  • L'ID de la tâche (taskID)
  • Le nom de l'utilisateur à qui la tâche est assignée (assignedTo)
  • Le nom du propriétaire de la tâche (createdBy)
  • La date d'échéance (dueDate)
  • Le statut de complétion de la tâche (isComplete)
  • La liste des commentaires liées à la tâche (comment1, comment2, comment3, etc.)

Les commentaires sont affichés affichés par ordre décroissant (du plus récent au plus ancien), en se basant sur la date et l'heure d'ajout du commentaire (commentDate).

Si l'utilisateur connecté est le propriétaire de la tâche ou que celle-ci lui a été assignée, un bouton Editer la tâche sera disponible en haut à droite, en dessous du header. Ce bouton renvoie à la page d'édition d'une tâche (editTaskView)

Un bouton permettant de revenir à la liste des tâches (taskView) sera disponible pour tous les utilisateurs en haut à gauche, en dessous du header.

Page Ajouter une tâche (addTaskView)

addTaskView

Cette page est accessible depuis la page de la liste des tâche (taskView), en cliquant sur le bouton idoine.

Dans cette page, l'utilisateur doit obligatoirement renseigner les informations suivantes, dans un formulaire :

  • Le nom de la tâche (taskName)
  • La date d'échéanche (dueDate) (sous forme de calendrier)
  • Le statut de complétion (isComplete) (décoché par défaut) (FACULTATIF dans les faits)
  • Le nom de la personne a qui la tâche est assignée (assignedTo) (sous forme de menu déroulant. Par défaut, le nom de l'utilisateur connecté est pré-rempli. Il peut sélectionner un autre utilisateur enregistré depuis la liste).

L'utilisateur peut facultativement ajouter un commentaire lié à la tâche (addComment).

Un message de validation apparaîtra lorsqu'une nouvelle tâche aura été créée. Un message d'erreur apparaîtra si l'utilisateur a oublié de renseigner un des champs obligatoires.

Page Editer une tâche (editTaskView)

editTaskView

Cette page reprend les mêmes éléments que la page Ajoute une tâche (addTaskView), à la différence que les champs sont déjà pré-remplis avec les informations liée à la tâche.

Cette page n'est accessible que pour les utilisateurs propriétaires d'une tâches ou les utilisateurs à qui la tâche a été assignée.

En fonction du rôle (propriétaire ou assigné à), les informations pouvant être modifiées seront différentes.

Propriétaire Le propriétaire de la tâche pourra modifier :

  • Le nom de la tâche (taskName)
  • La date d'échéance (dueDate)
  • Le statut de complétion (isCompleted)
  • La personne a qui la tâche est assignée (assignedTo)
  • Ajouter un nouveau commentaire (addComment)

Assigné à La personne à qui la tâche est assignée pourra modifier :

  • Le statut de complétion (isCompleted)
  • Ajouter un nouveau commentaire (addComment)

Lorsqu'un utilisateur ajoute un nouveau commentaire, celui-ci s'ajoute aux commentaires déjà existant sur la page de la tâche (taskView).

Un message de validation apparaîtra lorsque la modification a été enregistrée. Un message d'erreur apparaîtra si un champ obligatoire est vide. (Mêmes champs que pour la page d'ajout d'une tâche).

Prototype

Un prototype basique est diponsible à cette page