My Timesheet
My Timesheet est une application personnelle de suivi du temps qui réunit planning, calendrier, confirmations et reporting mensuel. J’ai fait évoluer son frontend React et son API Symfony pour rendre les calculs cohérents, les actions plus sûres et l’usage agréable sur ordinateur comme sur mobile.
Planning et règles métier
Les horaires distinguent travail, congés, repos et heures supplémentaires, avec les pauses, le service et le lieu de travail. Les journées ordinaires utilisent une référence de huit heures ; les absences séparent les heures travaillées des heures de référence. Les contrôles couvrent les chevauchements et les horaires traversant minuit. Un modal présente toutes les informations d’un horaire, son activité et son état de confirmation.
Confirmation et protection des données
L’utilisateur peut renvoyer manuellement l’email de confirmation d’un horaire à partir de la veille et tant qu’il reste non confirmé, ainsi que pour les exceptions. Les notifications de succès, d’erreur et d’avertissement rendent le résultat des actions visible. L’envoi SMTP est tracé avec un identifiant de message ; l’acceptation par le serveur de messagerie est distinguée de la réception dans la boîte du destinataire. Les horaires confirmés ou dont la date est dépassée sont protégés contre la suppression et l’archivage. Les archives éligibles peuvent être restaurées après contrôle des conflits.
Reporting, langues et mobile
Le tableau de bord propose six graphiques et des indicateurs mensuels, complétés par un calendrier, l’historique et les exports CSV. L’application est disponible en italien, français et anglais, avec l’italien par défaut et un choix de langue mémorisé. Sur téléphone, les tableaux de planning, d’historique et d’archives deviennent des cartes lisibles ; filtres, actions tactiles et modals s’adaptent à l’écran.
Réalisation technique
Mon intervention couvre le développement full stack, les contrôles d’accès JWT limités aux données de l’utilisateur, les tests des services et de l’interface, la validation des exports et les vérifications visuelles mobiles. Le déploiement sur VPS utilise des versions identifiées, des sauvegardes et un retour arrière possible.
Les captures présentent l’interface réelle avec des données entièrement fictives : Alex Demo, une adresse example.test et des équipes de démonstration. Aucun compte, planning ou email de production n’est exposé ; l’envoi montré est simulé.