Projet 02 — PKD

Du scan en serre
au relevé d'heures.

PKD est une plateforme destinée au personnel d'une exploitation maraîchère : pointage par puce NFC ou code QR à chaque rang de culture, même hors connexion. Les scans servent à calculer le temps de travail, à suivre les tâches et à établir les relevés d'heures. S'y ajoutent une messagerie d'équipe avec appels, des vidéos de formation dans la langue de chacun, un compteur d'emballages avec caméra et IA, et des téléphones professionnels en mode kiosque. Serveur, application web, Android et iOS sont réunis dans une même solution.

Par Abbas Hoseiny· Web, Android, iOS· Logiciel propriétaire

Une exploitation maraîchère emploie des saisonniers et des permanents parlant différentes langues. Le travail effectué dans les rangs était consigné sur des porte-blocs, le logiciel de paie n'offre pas d'interface d'intégration et le Wi-Fi ne couvre pas tous les recoins. PKD remplace la note sur papier par un scan de la puce à chaque rang et fournit au bureau et à la direction les heures travaillées, les relevés d'heures et une vue d'ensemble de la journée.

Administration de PKD sur ordinateur : diagramme du déroulé d'une journée, personnes à gauche, tâches au centre, secteurs à droite, reliés par des bandes de couleur
Fig. 1 — la journée en diagrammeEmployés → Temps de travail → Déroulé des tâches

Chaque bande est une personne, chaque nœud une tâche, la largeur correspond aux minutes enregistrées. Qui a fait quoi, où, combien de temps, et ce qui reste à éclaircir.

Diagramme du déroulé en vue par rangs : personnes, tâches et les rangs d'un secteur avec minutes et horaires par rang
Fig. 2 — au niveau de chaque rangUn secteur, vue « Rangs »

Pour chaque rang : les minutes, les créneaux horaires et le nombre d'interventions dans la journée. Les rangs sont triés par heure du premier scan ; le diagramme se lit de haut en bas, comme le déroulé de la journée.

Application PKD sur téléphone, écran « Maintenant » : pointé, tâche en cours avec secteur et rang
Application PKD, écran « Aujourd'hui » : temps de travail de la journée et liste des scans avec heure, tâche, rang et durée
Application PKD, rubrique « Apprendre » : courtes vidéos sur l'arrivée, la journée, le changement de rang et les pauses
Fig. 3 — l'application des employésMaintenant · Aujourd'hui · Apprendre

Trois questions : suis-je pointé, qu'est-ce qui est en cours, qu'ai-je fait aujourd'hui. Messagerie, photos et vidéos se trouvent dans la barre du bas.

Application PKD en ukrainien : écran « Maintenant » avec présence et dernière tâche
Application PKD en polonais : rubrique « Apprendre » avec les premiers pas
Application PKD en ukrainien : écran « Aujourd'hui » avec temps de travail et scans
Fig. 4 — dans la langue maternelleAllemand, polonais, ukrainien, roumain

La langue dépend du compte utilisateur, et non de l'appareil : interface, vidéos de formation et messages.

Ce que fait la plateforme

Enregistrer, analyser, échanger.

Pointage par puce NFC
Arrivée, départ et chaque tâche sont enregistrés par la puce NFC du rang ou par code QR. Le serveur fixe l'heure. Sans connexion, le scan reste enregistré sur l'appareil en attendant l'envoi.
Déroulé des tâches, historique, aujourd'hui
La journée en diagramme par secteurs ou par rangs, plusieurs jours côte à côte, la continuité des tâches d'un jour à l'autre et, en direct, les personnes présentes et les tâches en cours.
Relevé d'heures et paie
Une feuille mensuelle par personne avec chaque jour du calendrier. Toute modification exige un commentaire. Validation, PDF, Excel, rapprochement avec le logiciel de paie.
Messagerie d'équipe et appels
Conversations individuelles et de groupe, messages vocaux, fichiers, appels par internet. Les interlocuteurs sont épinglés en haut : patron, cheffe d'équipe, support.
Apprendre dans sa langue
Courtes vidéos sur les premiers pas et les informations importantes, dans toutes les langues de l'application.
Compteur d'emballages avec caméra
Une caméra au-dessus du tapis roulant compte les produits emballés, les classe par taille grâce à l'IA et signale les défauts. Les résultats sont visibles en direct, dans l'historique et dans des rapports illustrés.
Emplacements et puces
Un plan représente les secteurs et les rangs. Chaque rang est équipé d'une carte NFC, programmée depuis l'interface d'administration.
Téléphones professionnels et infrastructure
Téléphones professionnels en mode kiosque, mises à jour par paliers et un compte par téléphone. Le service repose sur un serveur sauvegardé chaque jour, avec une copie chez un second hébergeur.
Fig. 5 — le compteur d'emballagesEnregistrement d'écran, sans son

Dans cet exemple, la caméra filme des barquettes de fraises sur le tapis roulant. Un petit ordinateur les compte et les classe ; le serveur rassemble les résultats. Chaque image reste archivée comme justificatif et peut être reclassée ensuite.

Compteur d'emballages, historique d'un mois : chiffres clés, diagramme en barres par jour et tableau avec total, grands, petits et défectueux
Plan du site : rangs de la serre dessinés en plan avec secteurs et filtre par type de point de scan
Fig. 6 — historique et planEmballages comptés par jour · plan du site avec puces par rang
Relevé d'heures d'un mois pour une personne : pour chaque jour du calendrier, statut, arrivée, départ, présence, temps de travail, tâches, remarques et observations
Fig. 7 — la feuille mensuelleEmployés → Temps de travail → Heures

Chaque jour du calendrier est une ligne. Seul ce qui demande une clarification est signalé : un départ manquant, un scan hors de l'habitude, un ajout après coup. Un week-end n'est pas une erreur.

Technique

Comment la plateforme est construite

Le serveur conserve la version de référence des données. Les téléphones et ordinateurs utilisent des clients légers. Le modèle de données préserve le sens de chaque scan.

1. Un serveur, plusieurs appareils

Le hub est un service en Go qui utilise PostgreSQL. Un proxy Caddy sert l'API et l'interface web sous un même domaine. Tout accès extérieur passe par un tunnel.

Appareils
Android, iOS, kiosque, navigateur, ordinateur de la caméra
  • Une application web pour le téléphone et l'administration
  • Couches natives pour la NFC, les notifications push, les appels et les mises à jour
  • Application kiosque sur les téléphones de service
⇄HTTPS
un domaine
Hub · Go
API, analyse, notifications push, e-mails, tâches
  • Droits par personne et par secteur
  • Calcule temps de travail, déroulé, relevé d'heures
  • Push, e-mails, rapports, rapprochement avec la paie
⇄SQL
PostgreSQL
Une base de données de référence
  • Tous les modules dans une seule base
  • Sauvegardes quotidiennes, copie chez un second hébergeur

L'interface d'administration et l'application mobile reposent sur la même application web. La couche native apporte les fonctions que le navigateur n'offre pas. Un même déploiement sert toutes les plateformes.

2. Le modèle de scan

La puce ne contient qu'un identifiant, appelé slot. Sa signification est enregistrée dans une définition qui précise sa date d'entrée en vigueur. Chaque scan produit un événement immuable.

  1. Le téléphone envoie le slot, l'identifiant de l'événement et son heure. L'heure qui compte est fixée par le serveur.
  2. Le hub écrit l'événement avec personne, slot, définition, heure et source.
  3. La durée n'est calculée qu'à la lecture. Si un rang change d'affectation, les anciens événements restent justes.
  4. Si le même scan arrive deux fois, il ne compte qu'une fois.

3. Sans réseau

File d'attenteChaque scan est d'abord enregistré sur l'appareil et compte immédiatement. L'envoi se fait plus tard, dans l'ordre des scans.
HorodatagesLe serveur contrôle l'horloge de l'appareil, ramène les valeurs aberrantes dans une plage définie et les signale pour vérification.
Démarrage à froidL'application démarre et scanne même après des jours sans réseau. Un test automatique le vérifie à chaque modification.
CatalogueLes tâches, les lieux et les traductions sont stockés sur l'appareil. L'interface d'administration affiche, pour chacun, sa version et les scans en attente.

4. Analyse

Tout est calculé par le hub. Déroulé, historique, relevé d'heures et rapports par e-mail utilisent les mêmes fonctions.

Déroulé des tâchesUn diagramme de Sankey montre les personnes, les tâches et les secteurs ou rangs. Chaque nœud donne accès aux détails. Les journées apparaissent côte à côte, sans mélanger leurs données.
HistoriqueUne tâche a-t-elle repris au même rang après une interruption ? Pour qu'il s'agisse d'une reprise, la tâche et le rang doivent être identiques.
Relevé d'heuresLes jours de travail sont définis selon la période d'emploi ou les règles de l'exploitation ; les jours fériés proviennent d'une table. Chaque correction exige un commentaire et reste visible.
Logiciel de paieIl n'offre pas d'interface d'intégration exploitable. Un petit ordinateur sur le réseau de l'exploitation lit sa base de données et applique les opérations d'écriture envoyées par le hub.

5. Messagerie, appels, formation

MessagerieConversations individuelles et de groupe, accusés de lecture, messages vocaux et fichiers. Les pièces jointes sont stockées dans un espace de stockage objet, puis analysées par antivirus.
AppelsAppels vocaux en WebRTC, chiffrés entre les appareils. Si la connexion directe échoue, un serveur TURN dédié assure le relais.
PushLes appels et les messages importants activent l'appareil. Si une notification push n'arrive pas, l'application interroge régulièrement le serveur pour les détecter.
FormationCourtes vidéos explicatives, sonorisées automatiquement dans chaque langue.
MessagesLes demandes de correction des horaires sont envoyées dans la langue de la personne ; sa réponse revient traduite. Une assistante IA peut appeler pour répondre aux questions simples.

6. Appareils

Mode kiosqueUne application interne gère les appareils en mode kiosque : seuls PKD et les applications autorisées restent accessibles ; la batterie et le volume sont surveillés et les mises à jour sont déployées par étapes.
Un compte par téléphoneLe changement se fait par code QR et déconnecte l'ancien appareil. Des feuilles de codes QR de secours sont prévues.
Clés d'appareilChaque appareil est appairé une fois et reçoit sa propre clé. L'administration peut le bloquer à tout moment.

7. Exploitation

ConteneursHub, base de données, proxy, stockage objet, antivirus, relais TURN, tunnel et sauvegarde dans une seule pile Docker Compose.
SauvegardeUne sauvegarde quotidienne de la base sur le serveur et une copie chiffrée chez un second hébergeur.
MigrationUn avis signé informe les applications du changement d'adresse du serveur. Les appareils se connectent automatiquement à la nouvelle adresse.

8. Fiche technique

RôleConception, architecture, réalisation, exploitation et support
UtilisateursSaisonniers et permanents, chefs d'équipe, bureau, direction ; allemand, polonais, ukrainien, roumain
ServeurGo, PostgreSQL, Caddy, Docker Compose, tunnel, stockage objet, antivirus, relais TURN
FrontendAstro, TypeScript, service worker, d3-sankey, export PDF et Excel
ApplicationsAndroid et iOS avec couche native, application kiosque interne ; puces NFC aux rangs, codes QR de secours
ModulesPointage, déroulé des tâches, historique, relevé d'heures, rapprochement avec la paie, messagerie et appels, formation, compteur d'emballages, emplacements, contrôle qualité, serre, consignes, boîte mail et explorateur de fichiers
CodePropriétaire et non publié