My Timesheet
My Timesheet è un’applicazione personale per il monitoraggio del tempo che riunisce planning, calendario, conferme e report mensili. Ho evoluto il frontend React e l’API Symfony per rendere coerenti i calcoli, più sicure le operazioni e più comodo l’utilizzo su desktop e smartphone.
Planning e regole operative
Gli orari distinguono lavoro, ferie, riposo e straordinari, con pausa, servizio e luogo di lavoro. Le giornate ordinarie utilizzano un riferimento di otto ore; le assenze separano le ore lavorate dalle ore di riferimento. I controlli gestiscono le sovrapposizioni e gli orari che attraversano la mezzanotte. Un modal mostra tutte le informazioni dell’orario, l’attività e lo stato di conferma.
Conferma e protezione dei dati
L’utente può reinviare manualmente l’email di conferma di un orario dal giorno precedente e finché resta non confermato, oltre che per le eccezioni. Le notifiche di successo, errore e avvertimento rendono visibile l’esito delle operazioni. L’invio SMTP viene tracciato con un identificativo del messaggio; l’accettazione da parte del server di posta è distinta dalla ricezione nella casella del destinatario. Gli orari confermati o con data trascorsa sono protetti dalla cancellazione e dall’archiviazione. Gli elementi archiviati idonei possono essere ripristinati dopo il controllo dei conflitti.
Report, lingue e mobile
La dashboard offre sei grafici e indicatori mensili, affiancati da calendario, storico ed esportazioni CSV. L’applicazione è disponibile in italiano, francese e inglese, con italiano predefinito e preferenza linguistica memorizzata. Sul telefono, le tabelle di planning, storico e archivio diventano schede leggibili; filtri, azioni touch e modal si adattano allo schermo.
Realizzazione tecnica
Il mio intervento comprende sviluppo full stack, accesso JWT limitato ai dati dell’utente, test dei servizi e dell’interfaccia, verifica delle esportazioni e controlli visivi su mobile. Il deployment su VPS utilizza versioni identificabili, backup e possibilità di rollback.
Le schermate mostrano l’interfaccia reale con dati interamente fittizi: Alex Demo, un indirizzo example.test e team dimostrativi. Nessun account, planning o email di produzione è esposto; l’invio mostrato è simulato.