Exploitation de carrière et entreprise de terrassement, dans le Sud-Ouest.
Un conducteur de pelle termine sa journée sur un chantier, à quarante minutes du siège. Il sort son téléphone, ouvre l’application depuis l’écran d’accueil et dépose son bon d’activité : la date et le panier repas, puis l’activité avec son chantier, son engin, ses heures et son compteur, puis un récapitulatif avant l’envoi. Deux minutes. À l’autre bout, l’encadrement voit le bon arriver et peut le valider dans la foulée.
C’est tout le sujet de cette application. Dans une carrière, le bon d’activité journalier est la pièce qui fait le lien entre le terrain et le bureau. Il porte les heures du conducteur, le chantier et le client, l’engin, le compteur machine, les tonnes produites et les litres de gasoil. Ces chiffres partent ensuite en paie et en facturation, alors ils doivent être exacts, et surtout ils doivent arriver.
Nous avons donc construit deux applications en une. Côté conducteur, une interface pensée pour un téléphone tenu d’une main, dans la poussière, avec des gants pas toujours retirés : de grandes tuiles, un assistant en trois étapes, aucun tableau à faire défiler de côté. Côté encadrement, un back-office complet, avec la liste des bons, les filtres, la validation ou le rejet motivé, et les exports.
L’application s’installe sur l’écran d’accueil du téléphone comme une application classique, sur Android comme sur iOS, et continue de fonctionner en mode dégradé quand le réseau lâche. Sur un chantier au fond d’une vallée, ce n’est pas un détail. Un brouillon commencé sur un appareil se retrouve sur un autre, parce qu’il est enregistré côté serveur et pas seulement dans le navigateur.
Le métier est plus riche qu’il n’y paraît. Une journée peut mélanger du chargement, du transport et un transfert de matériel : l’assistant propose quatre grands types d’activité, chacun avec son formulaire. Une activité peut mobiliser plusieurs machines, chacune avec son compteur, sa production et son carburant. Un concasseur demande deux relevés, moteur et broyeur. Un poste de nuit franchit minuit, et une même date peut porter deux journées de travail. Tout cela a été repris règle par règle avec les équipes.
La pause a été le point le plus discuté. Il ne suffisait pas de saisir une durée : elle est positionnée dans la journée et imputée sur les activités qu’elle recouvre, pour que le temps de travail net soit juste au quart d’heure près, y compris quand la journée est coupée en deux autour de midi.
Autour du bon, l’outil a pris en charge tout ce qui empêche une journée d’être documentée. Un opérateur dépose sa demande de congé, l’encadrement l’approuve, et un bon d’absence est généré pour chaque jour ouvré de la plage. Un calendrier définit les jours où un bon est attendu de chaque conducteur, avec les onze jours fériés français calculés automatiquement, Pâques et Pentecôte comprises, et la possibilité de poser un pont ou une fermeture. Un écran de rapports manquants liste ce qui reste à récupérer, et permet de traiter plusieurs lignes d’un coup.
Côté sortie, chaque bon s’exporte en PDF avec une mise en page dédiée, et les sélections partent en Excel ou en CSV, avec la durée de travail et la pause en colonnes séparées pour la facturation. Les e-mails de confirmation, de validation et de rejet sont envoyés depuis la messagerie Microsoft 365 de l’entreprise, et chaque administrateur choisit les notifications qu’il reçoit.
Techniquement, l’application repose sur Next.js 16, React 19 et PostgreSQL, avec Prisma comme couche d’accès aux données et Better Auth pour l’authentification. Vingt et une tables, cinquante-sept routes d’API, quarante écrans. Cent dix tests unitaires couvrent les calculs sensibles, temps de travail, pauses, jours fériés et génération des bons d’absence, et une suite de tests navigateur rejoue les parcours de bout en bout à chaque évolution. L’ensemble est hébergé sur un VPS dédié, avec déploiement continu, Nginx en frontal et certificat Let’s Encrypt.
Sept mois de développement, livrés par lots, avec un point régulier et un état des lieux écrit à chaque étape pour distinguer ce qui relevait du devis initial et ce qui venait s’ajouter. C’est ce qui permet à un projet sur mesure de grandir sans déraper.
Merci à l’équipe pour la confiance accordée, et pour le temps passé à nous expliquer son métier.
Nos bureaux seront fermés le lundi 13 juillet.
Réouverture le mercredi 15 juillet à 9h00.
Merci de votre compréhension.