Web App

Gestore Presenze Dipendenti TTLock

Gestore Presenze Dipendenti TTLock

Sistema di Gestione Presenze con integrazione serratura smart

Questo è uno di quei progetti che nasce da un problema reale: un'azienda con diversi dipendenti, una serratura smart Sciener/TTLock all'ingresso, e la necessità di sapere chi è entrato, quando, e quante ore ha lavorato — il tutto senza fogli Excel compilati a mano e senza software costosi.

Il risultato è un'applicazione web completa, accessibile da qualsiasi dispositivo, che fa esattamente questo.


Il problema da risolvere

L'azienda usa già una serratura smart Sciener/TTLock: ogni dipendente apre la porta con il proprio codice o badge. Questi accessi vengono registrati dall'API Sciener, ma quei dati da soli non bastano — serviva un sistema che li raccogliesse, li organizzasse, li rendesse leggibili, e permettesse anche qualche intervento manuale quando necessario.


Cosa fa l'applicazione

Login a due step All'apertura trovi una griglia con gli avatar di tutti i dipendenti. Clicchi su di te, inserisci la password, e sei dentro. Nessuna username da ricordare, nessuna complessità inutile. Appena accedi, il sistema sincronizza automaticamente le timbrature dal cloud Sciener.

Dashboard presenze Qui si vede tutto. Le timbrature sono organizzate per mese e per giorno, con entrata e uscita chiaramente distinte. Il sistema riconosce automaticamente la logica pari/dispari: prima timbratura = entrata, seconda = uscita, e così via.

Ogni mese mostra due statistiche chiave: ore totali lavorate e giorni da verificare (quelli con un numero dispari di timbrature, cioè dove manca un'entrata o un'uscita). Un puntino rosso animato segnala immediatamente i giorni con l'orario incompleto.

Vista admin vs dipendente L'admin vede tutti i dipendenti con una barra orizzontale di avatar cliccabili, ognuno con un pallino colorato che indica lo stato in tempo reale: verde = presente oggi, rosso = assente, blu = ferie, giallo = malattia, viola = assenza giustificata. Il dipendente vede solo sé stesso.

Anti-rimbalzo automatico Capita che la serratura registri due timbrature ravvicinate per lo stesso accesso (rimbalzo del segnale). Il sistema filtra automaticamente tutte le timbrature entro 180 secondi l'una dall'altra, mantenendo solo quella valida.

Giustificativi Direttamente dalla dashboard si può segnare un giorno come Ferie, Malattia o Assenza Giustificata. I giustificativi appaiono al posto del badge "Assente" con colori distintivi e possono essere rimossi dall'admin.

Inserimento e cancellazione manuale L'admin può aggiungere timbrature dimenticate o mancanti direttamente dall'interfaccia, scegliendo data e orario preciso. Può anche eliminare timbrature errate con un click.

Export Excel Per ogni mese, l'admin può scaricare un file XLS (formato SpreadsheetML) con il riepilogo completo delle presenze del dipendente selezionato — pronto per essere allegato in busta paga o archiviato.


Come è stato realizzato

Backend: PHP + MySQL Tutta la logica gira su PHP puro, senza framework. Il database MySQL ospita le tabelle principali.

Integrazione API Sciener Il sistema comunica con le API OAuth2 di Sciener per scaricare i log di accesso della serratura. Gestisce autonomamente il refresh del token di autenticazione, così non serve nessun intervento manuale per mantenere la connessione attiva.

Frontend: HTML + CSS + JS vanilla Nessun framework frontend. Design mobile-first con CSS custom properties, max-width 680px per la dashboard. L'interfaccia è responsive, fluida, e si installa come PWA (Progressive Web App) su smartphone: si aggiunge alla schermata home come se fosse un'app nativa, con tanto di icona e colore del tema.

UX curata nei dettagli Avatar con colori generati deterministicamente dal nome (sempre lo stesso colore per la stessa persona, senza configurazione). Toast notifications per il feedback delle azioni. Animazione pulse sui giorni con anomalie. Scroll orizzontale nascosto per la lista avatar su mobile.


Stack riepilogato

  • PHP 8 · MySQL · XAMPP
  • API OAuth2 Sciener (serrature smart)
  • HTML5 · CSS3 · JavaScript vanilla
  • PWA (manifest + Service Worker)
  • Export SpreadsheetML (.xls)


Hai un'idea simile? Un gestionale interno, un sistema di prenotazioni, un'applicazione su misura per la tua attività? Scrivimi — trasformiamo le tue esigenze in uno strumento che funziona davvero, senza fronzoli e senza costi di licenza.

Parliamone.

Trasformo idee in prodotti digitali funzionanti. Contattami per un preventivo gratuito.

Contattami ora ← Tutti i lavori