Application web progressive (PWA) pour la gestion du temps de travail hebdomadaire.
Version 2.0.0 - Version PWA (Janvier 2026) Migré depuis Electron pour meilleure légÚreté, performance et compatibilité cross-platform.
- Node.js 16+
- npm ou yarn
npm install
npm run devL'application s'ouvre automatiquement sur http://localhost:3000
npm start
# Serveur sur http://localhost:3000npm run serve # Port 8080
npm run preview # Port 5000- Ouvrir l'application dans le navigateur
- Clic sur l'icĂŽne "Installer" (ou âź â "Installer cette application")
- L'app apparaĂźt dans vos applications
- Ouvrir dans Chrome/Firefox
- Appuyer sur "Ajouter à l'écran d'accueil"
- L'app s'ajoute à cÎté des autres apps
- Ouvrir dans Safari
- Partage â "Sur l'Ă©cran d'accueil"
- Ajouter l'app
- â SĂ©lecteurs intelligents (mini-dropdowns)
- â Saisie hybride (frappe ou sĂ©lection)
- â Contrainte 5 minutes (arrondi auto)
- â Options contextuelles (heures pertinentes)
- â Sauvegarde temps rĂ©el
- â Calcul intelligent des heures
- â Badge compteur (X/5 jours)
- â Gestion demi-journĂ©es
- â Vue semaine avec totaux
- â Export CSV et JSON
- â Sauvegarde automatique (localStorage)
- Local : localStorage du navigateur (stockage permanent)
- Offline : Fonctionne sans internet (Service Worker)
- Export : CSV/JSON pour portabilité
- â Design responsive (desktop, tablet, mobile)
- â Bouton "Aujourd'hui" (retour rapide)
- â Synchronisation totale des champs
- â Navigation clavier complĂšte
- â ThĂšme clair/sombre/auto
- â PWA complĂšte (instalable)
Ctrl+N(Cmd+N) : Nouvelle journéeCtrl+S(Cmd+S) : EnregistrerCtrl+R(Cmd+R) : RechargerF12: Outils de développement
gestion_temps_pwa/
âââ index.html # Interface utilisateur
âââ app.js # Logique mĂ©tier
âââ styles.css # Styles CSS
âââ service-worker.js # Cache offline (PWA)
âââ manifest.json # Configuration PWA
âââ package.json # DĂ©pendances npm
âââ assets/ # IcĂŽnes et ressources
âââ README.md # Cette documentation
âââ .gitignore # Fichiers ignorĂ©s git
- ⚠Léger : ~500 KB vs 100 MB (Electron)
- đ Rapide : DĂ©marrage instantanĂ©
- đ Cross-platform : Fonctionne partout (desktop, mobile, tablette)
- đ Mise Ă jour automatique : Plus besoin de rĂ©installer
- đ± Installable : IcĂŽne sur Ă©cran d'accueil
- đ Offline : Fonctionne sans internet (Service Worker)
- âïž AccĂšs systĂšme natif (fichiers, impression complexe)
- đš Menu natif
- đ SĂ©curitĂ© renforcĂ©e (sandbox)
- Automatique : localStorage (pas besoin configurer)
- Export : CSV/JSON pour backup
- Import : Restauration depuis CSV/JSON
- Cloud (optionnel) : Peut ĂȘtre ajoutĂ© si besoin
Planning par défaut dans app.js :
const PLANNING_HORAIRES_DEFAULT = {
'lundi': { arrivee: '08:00', sortieMidi: '12:00', retourMidi: '13:30', sortie: '17:15' },
'mardi': { ... },
'mercredi': { arrivee: '08:00', sortieMidi: '12:00' }, // demi-journée
'jeudi': { ... },
'vendredi': { ... }
};# Sur Netlify, Vercel, GitHub Pages (gratuit)
npm run build
# Déployer les fichiers statiquesnpm start
# Servir sur port 3000FROM node:16-alpine
WORKDIR /app
COPY . .
RUN npm install
EXPOSE 3000
CMD ["npm", "start"]Options dans interface :
- Auto (suit systĂšme)
- Clair
- Sombre
Toujours activée (localStorage)
Supporté par semaine (config dans interface)
// Vérifier en console navigateur
navigator.serviceWorker.getRegistrations()// En console
caches.keys().then(names =>
names.forEach(name => caches.delete(name))
)- Exporter avant en CSV/JSON
- localStorage persiste normalement
- Vérifier paramÚtres navigateur (ne pas effacer données)
- GitHub : https://github.com/gizmo38/gestion_temps_pwa
- Ancien version (Electron) : https://github.com/gizmo38/gestion_temps
- âš Migration Electron â PWA
- âš Ajouter Service Worker (offline)
- âš Ajouter PWA manifest
- âš Simplifier package.json
- ⚠Performance améliorée (~200x plus léger)
- Electron version précédente
- Voir CHANGELOG_ELECTRON.md
Pour modifier l'application :
- Ăditer les fichiers sources
- Recharger le navigateur (Ctrl+R)
- Les changements sont pris en compte immédiatement
Service Worker met en cache les fichiers. Pour forcer un refresh :
// En console
self.skipWaiting();
location.reload();Partager simplement l'URL :
- Desktop : Ouvre l'app en navigateur + option "Installer"
- Mobile : Option "Ajouter à l'écran d'accueil"
Pas besoin de télécharger/installer comme Electron !
Version : 2.0.0 Développé par : Excelae Technologie : PWA (HTML/CSS/JS vanilla) Léger. Rapide. Portable.