Le contexte
Une entreprise cherchait à remplacer ses feuilles de présence par un outil simple pour suivre les heures de son équipe, sur un ou plusieurs sites, sans abonnement à un logiciel RH généraliste. Les employés pointent sur une borne dédiée, la direction pilote tout depuis une interface d'administration.
Le défi
Un outil de pointage doit être fiable avant tout : chaque entrée doit être horodatée et ne jamais se perdre, même quand le réseau tombe sur le lieu de travail. Il fallait aussi pouvoir corriger un oubli, sortir les heures en fin de mois pour la paie, prévenir automatiquement quand un départ n'est pas pointé ou qu'une borne ne répond plus, et garder un accès administrateur sûr sans compliquer la vie du gestionnaire.
La solution apportée
Un écosystème en trois modules. La borne, une application Python sur Raspberry Pi, enregistre les pointages dans une base SQLite locale et les synchronise avec le serveur dès que la connexion revient. L'API Node.js / Express sur PostgreSQL centralise les données, authentifie chaque borne par une clé dédiée, valide toutes les entrées avec Zod et envoie les alertes par e-mail et Telegram. L'interface d'administration en Next.js et TypeScript offre un tableau de bord en temps réel, la liste des employés avec leurs heures du mois, un historique corrigeable, des statistiques Chart.js et les exports Excel et PDF pour la paie. L'accès est protégé par cookies HTTP-only, tokens renouvelés à chaque usage, sessions révocables à distance et limitation de débit, le tout conteneurisé avec Docker. Les noms, les données et la marque présentés ici sont fictifs.
Fonctionnalités clés
- Trois modules : interface d'administration web, API centrale et borne de pointage physique
- Borne Raspberry Pi qui fonctionne hors-ligne et se synchronise toute seule au retour du réseau
- Tableau de bord en temps réel : employés au travail, en pause, état des bornes
- Pointage par type : arrivée, début et fin de pause, départ, avec correction manuelle par un administrateur
- Gestion multi-sites, chaque borne authentifiée par sa propre clé et surveillée par heartbeat
- Historique des pointages filtrable par employé, site, type et période
- Export Excel et PDF pour la paie
- Statistiques : heures par jour, par semaine, évolution mensuelle, ponctualité
- Alertes par e-mail et Telegram : départ oublié à 19h, borne hors ligne, actions en temps réel
- Comptes administrateurs avec rôles, sessions de 30 jours révocables à distance depuis l'interface
- Sécurité : cookies HTTP-only, rotation des tokens, limitation de débit, protection CSRF, validation stricte des entrées
- Journaux structurés sans mot de passe ni token, erreurs internes jamais exposées au client
- Sauvegardes, mode sombre et mode clair, déploiement Docker durci
Stack technique
En images
Aujourd'hui
L'outil remplace les relevés papier : les heures sont consolidées automatiquement et exportables en quelques clics.