Skip to content

Le projet en une page ​

Ce que fait TimeManager ​

TimeManager est une application de pointage pour les employés d'une mairie (« City Hall » dans le sujet Epitech). Pointer, c'est dire à l'application « je commence ma journée » puis « je la termine ». Entre les deux, on peut prendre des pauses.

À partir de ces pointages, l'application calcule :

  • le temps travaillé chaque jour et chaque semaine ;
  • les heures supplémentaires au-delà de 35 h par semaine ;
  • les oublis (une journée jamais terminée) ;
  • les moyennes d'une équipe.

Les managers peuvent corriger les heures de leur équipe, valider les semaines et enregistrer les absences. Toutes les modifications sont tracées et visibles par la personne concernée.

Les trois rôles ​

RôleEn une phraseCe qu'il peut faire en plus
EmployéIl pointe et consulte ses heures.Demander une correction, voir ses données, supprimer son compte.
ManagerIl pointe aussi, et gère une ou plusieurs équipes.Voir et corriger les heures de ses membres, traiter leurs demandes, valider leurs semaines, enregistrer leurs absences, créer des équipes.
General manager (GM)Le responsable de toute la mairie.Tout ce que fait un manager, sur toutes les équipes, plus inviter des comptes, nommer ou retirer des managers, supprimer des comptes, changer son email. Son compte ne peut pas être supprimé.

L'API décide, l'interface montre

Les droits sont vérifiés par l'API à chaque requête. Le web et le mobile se contentent de cacher ce qu'un rôle ne peut pas utiliser. Même si quelqu'un trafiquait l'application, le serveur refuserait.

Les règles qui reviennent partout ​

RègleValeur
Objectif journalier7 h
Objectif hebdomadaire35 h (7 h × 5 jours)
Heures supplémentairesComptées à partir du moment où la semaine dépasse 35 h
Pointage oubliéUne période ouverte depuis plus de 14 h. Ses heures ne sont pas comptées.
Jour d'une périodeLe jour où elle commence, même si elle finit après minuit
Travail de nuitLe temps travaillé entre 21 h et 6 h
AbsenceUn jour ouvré entier (congé, maladie, autre), sans motif. Baisse l'objectif de 7 h.
HeuresStockées en UTC, au format AAAA-MM-JJ hh:mm:ss
Fuseau de référenceEurope/Paris

Le détail complet est dans le cahier des charges : docs/specifications.md.

Les quatre parties techniques ​

PartieTechnologieRôle
FrontendVue 3, Vite, TailwindLe site web, sur ordinateur et tablette
BackendElixir, Phoenix, PostgreSQLL'API : toutes les données et toutes les règles
MobileExpo, React NativeL'application iOS et Android
DevOpsAnsible, Docker, Traefik, JenkinsLes serveurs, la mise en ligne automatique

Les adresses en production :

ServiceAdresse
Site webtime.jostud.com
APIapi.time.jostud.com/api
Jenkins (CI/CD)ci.time.jostud.com
Documentationdocs.time.jostud.com