Gestion de temps
1. Les Entités
1.1. Utilisateur
Il s’agit des utilisateurs de l’application.
Nom de l’entité : user
N° Champs Type Nul Remarques
l
1 id int(9) No automatique
2 firstName
3 lastName
4 email Identifiant
tel
5 password
6 enabled lors de l'inscription il faut valider l’utilisateur par
l’envoie de mail
7 blocked
8 avatar
9 token Pour la modification du mot de passe
10 tokenCreation Pour la validité du token
11 activationCod Pour la validation de l’utilisateur
e
12 color Si jamais un utilisateur sans avatar
13 roles ROLE_SUPER_ADMIN / ROLE_USER
14 created_at datetime No automatique
15 updated_at datetime No automatique
Relations
N Entité Relation Remarques
°
1 AccessTier OneToMan En tant que invité
y
2 AccessTier OneToMan En tant que hôte
y
3 AccessProject OneToMan En tant que invité
y
4 AccessProject OneToMan En tant que hôte
y
5 Task OneToMan
y
6 Comment OneToMan
y
7 Document OneToMan Il s’agit des captures d’écran de l’utilisateur
y
1.2. Tier
Il s’agit des sociétés qui vont utiliser cette application.
Nom de l’entité : tier
N° Champs Type Null Remarques
1 id int(9) No automatique
2 name No Raison sociale de la société
3 tel No
4 email
5 adresse
6 ville
7 pays
8 vat No Matricule fiscale
9 cr Yes Registre de commerce
10 firstResp Premier responsable
11 emailFirstRes Email du premier responsable
p
12 telFirstRespo Tél du premier responsable
13 logo
archived bool Yes Si archivé alors n’apparaît plus dans les différentes
listes et menus associés.
blocked bool Yes Si un tier est bloqué alors aucune des ses données
ne sont affichée au niveau de l’application
14 created_at datetime No automatique
15 updated_at datetime No automatique
Relations
N° Entité Relation Remarques
1 AccessTie OneToMany
r
2 Project OneToMany
1.3. Projet
Il s’agit des sociétés qui vont utiliser cette application.
Nom de l’entité : project
N° Champs Type Null Remarques
1 id int(9) No automatique
2 name No Raison sociale de la société
3 color No
4 archived bool Yes Si archivé alors n’apparaît plus dans les différentes
listes et menus associés.
14 created_at datetime No automatique
15 updated_at datetime No automatique
Relations
N° Entité Relation Remarques
1 AccessProject OneToMany
2 Tier ManyToOne
3 Section OneToMany
4 Task OneToMany
1.4. Accès tier
Il s’agit des accès par rapport à un compte tiers. Lorsqu’un utilisateur accède à un compte
tier, il accès automatiquement à toutes les entités enfant : projets, sections et tâches.
Nom de l’entité : accessTier
N Champs Type Null Remarques
°
1 id int(9) No automatique
2 status No pending / accepted / rejected / canceled / deleted
3 role No admin / user
14 created_at datetime No automatique
15 updated_at datetime No automatique
Relations
N Entité Relation Remarques
°
1 Tier ManyToOne
2 user ManyToOne en tant qu’invité
3 user ManyToOne en tant que hôte
1.5. Accès projet
Il s’agit des accès par rapport à un projet. Lorsqu’un utilisateur accède à un compte projet, il
accès automatiquement à toutes les entités enfant : sections et tâches.
Nom de l’entité : accessProject
N Champs Type Null Remarques
°
1 id int(9) No automatique
2 status No pending / accepted / rejected / canceled / deleted
3 role No admin / user
14 created_at datetime No automatique
15 updated_at datetime No automatique
Relations
N° Entité Relation Remarques
1 Project ManyToOne
2 user ManyToOne en tant qu’invité
3 user ManyToOne en tant que hôte
1.6. Section
Il s’agit de gérer les section des projets (les sous-projets)
Nom de l’entité : section
N° Champs Type Null Remarques
1 id int(9) No automatique
2 name
14 created_at datetim No automatique
e
15 updated_at datetim No automatique
e
Relations
N Entité Relation Remarques
°
1 Project ManyToOn
e
2 Task OneToMan
y
1.7. Tâche
Il s’agit de gérer les tâches
Nom de l’entité : task
N° Champs Type Null Remarques
1 id int(9) No automatique
2 name No
3 description No
4 status planned / in-progress / closed
5 date date prévisionnelle de réalisation
6 start Heure début de réalisation
7 end Heure fin de réalisation
8 duration Durée prévisionnelle
9 allTheDay Toute la journée
10 priority low / medium / high
14 created_at datetim No automatique
e
15 updated_at datetim No automatique
e
Relations
N° Entité Relation Remarques
1 Project ManyToOne
2 Task OneToMany il s’agit des sous-tâche (2 niveaux seulement)
3 Task ManyToOne il s’agit des sous-tâche (2 niveaux seulement)
4 User ManyToOne L’utilisateur auquel est affecté la tâche / responsable de
la tâche
5 Section ManyToOne
6 Document OneToMany
7 Commentair OneToMany
e
1.8. Document
Peut ne pas se trouver au niveau de la BDD. Il est juste lié à une tâche.Il peut être une
image ou un document autre qu’une image.
1.9. Commentaire
Peut ne pas se trouver au niveau de la BDD. Il est juste lié à une tâche. On retrouve les
informations suivantes :
La date de création du commentaire
L’utilisateur qui a créé le commentaire
Le contenu du commentaire
1.9. Historique
Il s’agit d’enregistrer les actions liées à chaque tâche, par exemple :
Création de la tâche
Modification d’une tâche / ce qui a été modifié
Qui a uploadé tel document
Etc.
2. Droits d’accès
On distingue 3 rôles spécifiques pour les utilisateurs :
Super Admin : il s’agit des utilisateurs internes qui accèdent à toutes les
fonctionnalités et données de l’application sans aucune restriction.
Pour les 2 autres types d’utilisateurs, ils sont relatifs à un compte client ou projet.
Admin :
o Tier : l’admin accède à toutes les fonctionnalités et données liées à un tiers.
o Project : l’admin accède à toutes les fonctionnalités et données liées à un
projet.
Utilisateur :
o Tier : un utilisateur a un accès limité à un tiers.
o Project : un utilisateur a un accès limité à un projet.
Globalement on distingue les limites suivantes au niveau des droits d’accès :
1. Un admin tiers (AT) peut tout faire sauf la gestion des tiers.
2. Un utilisateur tiers (UT) a le droit de l’AT sauf la gestion des utilisateurs des comptes
de tiers.
3. Un admin projet (AP) ne peut pas gérer les projets mais peut tout faire dans un projet
4. Un utilisateur projet (UP) ne peut pas gérer les utilisateurs dans projet et ne peut pas
supprimer des entités qui ne lui appartiennent pas.
Un utilisateur ne peut supprimer que les documents et commentaires qu’il a créés ou
uploadés.
Une personne peut être admin pour le compte d’un tiers et utilisateur sur un autre compte.
3. Desktop
La partie desktop est composée de 2 parties :
web : Toutes les fonctionnalités de l’application sont accessibles à travers le web.
systray : il aura 2 fonctionnalités principales :
o Afficher les notifications de l’application : nouveau commentaire / upload d’un
document sur une tâche, etc.
o Prendre des captures d’écran de l’utilisateur et les envoyer sur le serveur.
3.1. Web
3.1.1. Utilisateur
Code Désignation Utilisateur Remarque
1.1.1 Liste / recherche SA Liste des utilisateurs
1.1.2 Détail SA Détail d’un utilisateur
1.1.3 Ajout SA Ajouter un utilisateur
1.1.4 Modification SA Modifier un utilisateur
1.1.5 Suppression SA Supprimer un utilisateur
1.1.6 Inscription A/U Inscription
1.1.7 Validation code A/U Confirmation inscription à travers un code
secret envoyé par email
1.1.8 Mon profil A/U
1.1.9 authentification A/U
1.1.1 Mot de passe oublié A/U
0
1.1.1 changer mot de passe A/U
1
1.1.1 Captures A et UT Les captures d’écran des utilisateurs.
2
1.1.1 Mes captures A/U Les captures d’écran de l’utilisateur lui-
3 même.
1.1.1 Liste / recherche A/U Les utilisateurs connectés liés aux comptes
4 utilisateurs de projets et tiers.
1.1.1 Agenda A et UT L’agenda de chaque utilisateur
5
1.1.1 todo aujourd’hui A et UT La liste des tâches à faire chaque jour
6
Si un utilisateur est bloqué alors il ne peut pas accéder à l’application.
Lorsqu’un utilisateur s’inscrit au niveau de l'application, alors un email de validation
est envoyé à l’utilisateur.
Remarque : l’envoie des emails se fera à travers l'utilisation d’un service tiers en
l'occurrence Mailjet.
3.1.2. Tier
Code Désignation Utilisateur Remarque
1.2.1 Liste / recherche SA Liste des tiers
1.2.2 Détail SA Détail d’un tiers
1.2.3 Ajout SA Ajouter un tiers
1.2.4 Modification SA Modifier un tiers
1.2.5 Suppression SA Supprimer un tiers
1.2.6 Utilisateurs A et UT Liste des utilisateurs qui ont accès au tier avec
leurs rôle
1.2.7 Inviter utilisateur A et UT Envoyer une invitation à utilisateur pour gérer le
projet en tant que admin / utilisateur
1.2.8 Supprimer accès A et UT
utilisateur
1.2.9 Modifier accès A et UT Modifier le rôle d’un utilisateur
utilisateur
1.2.1 Renvoyer invitation A et UT Renvoyer l’invitation à un utilisateur.
0
3.1.3. Projet
Code Désignation Utilisateur Remarque
1.3.1 Liste / recherche A/U Liste des projets
1.3.2 Détail A/U Détail d’un projet
1.3.3 Ajout A Ajouter un projet
1.3.4 Modification A Modifier un projet
1.3.5 Suppression A Supprimer un projet
1.3.6 Statistiques A/U Statistiques liées au projet
1.3.7 Utilisateurs A et UT Liste des utilisateurs qui ont accès au projet avec
leurs rôle y compris les utilisateur du tiers auquel
le projet est affecté
1.3.8 Inviter utilisateur A et UT Envoyer une invitation à utilisateur pour gérer le
projet en tant que admin / utilisateur
1.3.9 Supprimer accès A et UT
utilisateur
1.3.1 Modifier accès A et UT Modifier le rôle d’un utilisateur
0 utilisateur
1.3.1 Renvoyer A et UT Renvoyer l’invitation à un utilisateur.
1 invitation
Seul un utilisateur ayant un compte admin tiers peut créer ou modifier un projet.
Si un utilisateur est admin de plusieurs comptes tiers, alors lorsqu’il va créer un
projet, le système lui affiche une fenêtre lui demandant quel tiers auquel le projet est
affecté.
3.1.4. Section
Il n’y a pas de vue proprement dit au section. La gestion des sections se fait à travers la vue
liste des tâches d’un projet. à travers cette vue l'utilisateur peut effectuer les fonctionnalité
suivantes :
Cod Désignation Utilisateur Remarque
e
1.4.1 Ajouter section A/U
1.4.2 Modifier le nom A/U
d’une section
1.4.3 Affecter une tâche à A/U Cliquer et glisser
une section
1.4.4 Supprimer une A/U Les tâches affectées à cette section ne sonr
section pas supprimée mais deviennent sans section
3.1.5. Tâche
Cod Désignation Utilisateur Remarque
e
1.5.1 liste / A/U
recherche
1.5.2 Détail A/U
1.5.3 Ajout A/U Pas de vue spécifique pour l’ajout d’une tâche. l’ajout
se fait à travers la liste des tâches
1.5.4 Modification A/U La modification se fait dans la vue détail
1.5.5 Suppression A La suppression d’une tâche implique la suppression
de l’historique, document et commentaires
l’ajout d’une tâche se fait directement à partir de la liste des tâches.
La vue “détail” d’une tâche est la vue la plus importante de l’application et ci-dessous
une description détaillée de cette vue et ses fonctionnalités.
L’affichage de la vue “détail” d’une tâche se fait à partir de la liste des tâches. Lorsqu’un
utilisateur clique sur une tâche dans la liste, alors un onglet à droite de l’écran est affiché.
L’écran est alors divisé en 2 parties : la partie de gauche on retrouve la liste des tâches et la
partie de droite on retrouve le détail de la tâche.
Important : lorsque l’utilisateur clique sur l’une des tâches dans la liste, l’URL dans le
navigateur doit être changée. Tout comme l’utilisateur ferme l’onglet détail tâche l’url
redevient celle de la liste des tâches.
Dans cette partie de droit on retrouve les informations suivantes et il est possible de faire les
actions suivantes :
1. Nom de la tâche (modifiable)
2. Description (modifiable)
3. Date (modifiable)
4. Heure début (modifiable)
5. Heure fin (modifiable)
6. Statut (modifiable)
7. Priorité (modifiable)
8. Projet (modifiable)
9. Section (modifiable)
10. Responsable de la tâche (modifiable)
11. Les sous-tâches
a. Ajout
b. Suppression
12. Lien vers la tâche parente
13. Historique des actions
14. Les fichiers
a. Upload de documents + images
b. Affichages des thumbs des images + lien vers les images d’origine
c. Liens des documents uploadés
d. Possibilité de supprimer un document
15. Les commentaires
a. Ajout
b. Modification
c. Suppression
d. Possibilité de taguer un utilisateur dans le commentaire
3.2. systray
Le systray aura les fonctionnalités suivantes :
1. Paramétrage : adresse du serveur
2. Authentification : login et mot de passe de l’utilisateur.
3. Afficher les notifications liées à l’activité au niveau de timesheet.
4. Prendre des captures d’écran de l’utilisateur et les envoyer vers le serveur.
4. Fonctionnalités Mobile
L’application mobile aura exactement les mêmes fonctionnalités que la partie web. En plus
de cela la partie mobile aura une partie des fonctionnalités du systray en outre :
1. Paramétrage : adresse du serveur
2. Authentification : login et mot de passe de l’utilisateur.
3. Afficher les notifications liées à l’activité au niveau de timesheet.