Skip to content

VTvito/timbrature-pa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⏰ Timbra PA

PWA per tracciare le timbrature dei dipendenti pubblici italiani. Funziona offline, si installa come app e salva i dati solo sul dispositivo.

Screenshot App


✨ Funzionalità

  • 36 ore settimanali con saldo aggiornato in tempo reale
  • Pausa pranzo automatica: con coppia singola lun-gio 30 minuti fissi, con multi-timbrature conta la pausa reale; venerdì nessuna pausa automatica, anche oltre 6h
  • Smart working e assenze con ore precompilate
  • Timbrature multiple nello stesso giorno, con aggiunta manuale guidata dalla card del giorno
  • Suggerimento ingresso/uscita sull'ultimo giorno utile in sede, considerando smart e assenze gia pianificati
  • Export JSON e CSV
  • Funzionamento offline e installazione come PWA

🔐 I tuoi dati sono tuoi

  • Nessun account
  • Nessun backend
  • Storage locale: localStorage come primario, IndexedDB come fallback
  • Le settimane salvate restano disponibili dopo gli update; totali e saldi vengono ricalcolati dai dati inseriti
  • Export manuale quando vuoi

Nota iOS: Safari può eliminare i dati PWA dopo 7 giorni di inutilizzo. Conviene aprire l'app almeno una volta a settimana o esportare periodicamente un backup JSON.


🚀 Inizia subito

👉 Apri Timbra PA

Installazione rapida:

  • Android: apri il link in Chrome e tocca "Installa" o "Aggiungi a schermata Home"
  • iPhone/iPad: apri in Safari o Chrome, poi Condividi → "Aggiungi a Home"
  • Desktop: apri in Chrome o Edge e usa il pulsante Installa nella barra indirizzi

🏗️ Per sviluppatori

Pattern MVC + Observer + Repository, zero dipendenze:

js/
├── app.js               # Bootstrap, SW registration, update flow
├── controllers/
│   └── AppController.js # Orchestrazione MVC
├── models/
│   ├── TimeEntry.js     # Singola timbratura
│   └── WeekData.js      # Dati settimana
├── views/
│   ├── UIManager.js     # Rendering UI, toast, PWA install
│   └── ModalManager.js  # Modali (edit, add, confirm, clean)
├── services/
│   ├── TimeCalculator.js # Calcoli ore, pause, delta, suggerimento orari ultimo giorno utile
│   ├── WeekNavigator.js  # Navigazione settimane ISO 8601
│   └── ExportService.js  # Export JSON / CSV, import
├── storage/
│   ├── StorageManager.js     # Repository pattern, dual storage
│   ├── LocalStorageAdapter.js
│   └── IndexedDBAdapter.js
└── utils/
    ├── EventBus.js      # Pub/Sub con eventi tipizzati
    ├── DateUtils.js     # ISO 8601, formatting, parsing
    └── Validators.js    # Validazione orari

Stack: Vanilla JavaScript ES Modules, CSS singolo, localStorage + IndexedDB, Service Worker con app shell network-first, manifest PWA.

Avvio locale

git clone https://github.com/VTvito/italian-pa-employee-attendance.git
cd italian-pa-employee-attendance
python -m http.server 8000

Test

http://localhost:8000/tests/

📋 Configurazione

Le costanti principali sono in js/services/TimeCalculator.js:

export const CONFIG = {
    WEEKLY_TARGET_HOURS: 36,
    PAUSE_MINUTES: 30,
    SMART_HOURS_DEFAULT: 7.5,
    SMART_HOURS_FRIDAY: 6,
    DAILY_TARGET_HOURS: 7.5,
    FRIDAY_TARGET_HOURS: 6
};

🌐 Self-hosting

Qualsiasi hosting statico va bene: GitHub Pages, Netlify, Vercel, Cloudflare Pages o un semplice server HTTP.


🤝 Contribuisci

Pull request benvenute. Per modifiche sostanziali conviene aprire prima una issue.


📄 Licenza

Distribuito sotto licenza MIT — vedi LICENSE.


👤 Autore

VTvito@VTvito

About

⏰ App PWA gratuita per dipendenti PA italiani. Traccia timbrature, calcola 36h/settimana automaticamente, supporta smart working. 100% offline, dati solo sul tuo dispositivo. No account, no cloud.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors