- PHP 94%
- SCSS 5.2%
- Makefile 0.6%
- Hack 0.2%
| docs | ||
| maquette | ||
| src | ||
| tests | ||
| .gitignore | ||
| composer.json | ||
| composer.lock | ||
| ecs.php | ||
| Makefile | ||
| phpstan.neon | ||
| README.md | ||
| reset.sql | ||
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)
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)
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)
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)
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)
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)
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)
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






