Étude de cas · Portail métier

Un portail métier qui rend du temps aux équipes

Le portail heures accompagne salariés, administrateurs et secrétariat avec des sauvegardes automatiques, des rapports homogènes et des workflows documentaires contrôlables.

Application WebAPI HTTPBase de donnéesPDFE-mails HTMLGestion des rôles

Idée centrale

L'intelligence artificielle ne remplace pas les équipes : elle leur rend du temps.

Le projet Portail heures l’entreprise illustre une approche concrète et pragmatique de l'IA appliquée aux outils internes. L'objectif n'est pas de retirer l'humain du processus, mais d'automatiser les tâches répétitives, de fiabiliser les documents, de réduire les ressaisies et de permettre aux équipes de se concentrer sur leur métier.

Dans ce cas d'usage, l'outil accompagne les salariés, les administrateurs et le secrétariat dans la gestion quotidienne :

  • saisie des heures par chantier ;
  • génération automatique de PDF ;
  • envoi de rapports par e-mail ;
  • demandes et validation de congés ;
  • transmission mensuelle de documents ;
  • gestion des comptes et archivage ;
  • suivi administratif centralisé.

L'IA intervient ici comme accélérateur de conception, d'amélioration et d'automatisation : elle aide à transformer un besoin terrain en interface métier structurée, maintenable et utilisable au quotidien.

Le problème de départ

Dans beaucoup d'organisations, les équipes perdent du temps sur des tâches administratives nécessaires mais peu valorisantes :

  • recopier des heures dans plusieurs supports ;
  • générer manuellement des rapports ;
  • vérifier que les documents sont lisibles ;
  • relancer les salariés ou les responsables ;
  • envoyer des pièces jointes une par une ;
  • gérer les oublis de mot de passe ;
  • suivre les demandes de congés dans des échanges dispersés ;
  • conserver des historiques sans alourdir les dossiers.

Ces tâches ne demandent pas toujours une expertise forte, mais elles consomment de l'attention. Elles créent aussi des risques : oubli, doublon, mauvais fichier, erreur de période, PDF illisible, mauvaise adresse e-mail, compte utilisateur encore actif alors qu'il devrait être archivé.

Le portail répond à ce besoin : garder l'humain dans la décision, mais automatiser tout ce qui peut l'être autour de lui.

Ce que le portail automatise

1. La saisie des heures

Chaque salarié peut saisir ses heures par chantier, semaine et année. L'interface limite la période disponible autour de la semaine courante, afin d'éviter les erreurs de saisie trop anciennes ou trop anticipées.

Les informations renseignées sont synchronisées automatiquement. L'utilisateur n'a pas besoin de penser à sauvegarder en permanence : l'application le fait pour lui.

Résultat : moins d'oublis, moins de ressaisie, moins de fichiers dispersés.

2. La génération des rapports PDF

Lorsqu'un salarié transmet ses heures, le portail génère automatiquement un PDF clair et structuré.

Le rapport contient notamment :

  • l'identité du salarié ;
  • la semaine concernée ;
  • les bornes de dates ;
  • les chantiers ;
  • les codes chantier ;
  • l'indication IGD si elle est cochée ;
  • les tâches réalisées ;
  • le détail journalier des heures ;
  • les totaux ;
  • une page par chantier pour améliorer la lisibilité.

Si un rapport a déjà été envoyé pour la même semaine, l'application ne le renvoie pas silencieusement. Elle demande confirmation et indique clairement qu'il s'agit d'un rapport rectificatif.

Résultat : l'administratif est plus fiable, sans retirer la validation humaine.

3. Les e-mails structurés

Les e-mails envoyés par l'application reprennent une charte graphique cohérente avec l'identité de l'entreprise.

L'application génère des e-mails HTML pour :

  • les rapports d'heures ;
  • les réinitialisations de mot de passe ;
  • les confirmations de changement d'adresse e-mail ;
  • les demandes de congés ;
  • les décisions de congés ;
  • l'envoi mensuel de documents via la fonctionnalité Report.

Résultat : les échanges sont plus professionnels, plus lisibles, et les informations importantes ne sont pas perdues dans des messages informels.

4. Les demandes de congés

Le salarié peut faire une demande de congés directement depuis son espace.

L'application calcule automatiquement le nombre de jours :

  • les jours fériés ne sont pas comptés ;
  • les dimanches sont exclus ;
  • les samedis sont comptabilisés pour les congés payés ;
  • un motif optionnel peut être ajouté.

L'administrateur peut ensuite accepter ou refuser la demande. Un PDF est généré avec le statut, la date, l'heure et une signature numérique.

Résultat : le salarié garde un parcours simple, et la direction conserve une trace propre de la décision.

5. La fonctionnalité Report

La section Report est réservée aux administrateurs.

Elle permet de choisir :

  • un salarié ;
  • un mois ;
  • une année ;
  • plusieurs fichiers à joindre.

L'administrateur peut ajouter des fichiers en plusieurs fois, depuis différents répertoires, supprimer un fichier sélectionné avant l'envoi, puis transmettre l'ensemble par e-mail au salarié.

L'e-mail contient :

  • le mois concerné ;
  • la liste des fichiers joints ;
  • une signature numérique de l'administrateur ;
  • une mise en forme HTML cohérente avec la charte graphique.

Les fichiers ne sont pas conservés après l'envoi. Seul un journal garde les métadonnées utiles : date, heure, salarié, administrateur et noms des fichiers transmis.

Résultat : les envois mensuels sont rapides, tracés, mais sans stockage inutile des pièces jointes.

6. La gestion des utilisateurs

L'administrateur peut :

  • créer un utilisateur ;
  • modifier ses informations ;
  • changer son e-mail sans changer son mot de passe ;
  • laisser le mot de passe inchangé si le champ est vide ;
  • consulter la dernière connexion ;
  • archiver un utilisateur ;
  • restaurer un utilisateur archivé ;
  • supprimer définitivement un utilisateur archivé.

Un utilisateur archivé ne peut plus se connecter. Même une session déjà ouverte est refusée côté serveur.

Résultat : l'administration des accès est plus sûre, plus claire et mieux adaptée au cycle de vie réel des équipes.

Ce que l'IA apporte dans ce type de projet

L'IA ne signe pas les décisions, ne valide pas les congés et ne remplace pas la connaissance métier.

Elle aide plutôt à :

  • formaliser les besoins à partir de retours terrain ;
  • transformer une demande fonctionnelle en écran utilisable ;
  • générer plus vite les routes API nécessaires ;
  • repérer les incohérences d'interface ;
  • améliorer la lisibilité des PDF ;
  • adapter les e-mails à une charte graphique ;
  • renforcer les contrôles de sécurité ;
  • produire une documentation claire ;
  • faire évoluer le projet par itérations courtes.

L'humain reste responsable :

  • du choix des règles ;
  • de la validation finale ;
  • des décisions administratives ;
  • de la relation avec les salariés ;
  • de la qualité métier du processus.

L'IA accélère l'exécution. Elle ne remplace pas la responsabilité.

Architecture du projet

Le projet a été simplifié autour d'un seul service à lancer.

Backend

Le serveur principal est server.js.

Il assure :

  • l'authentification ;
  • la gestion des comptes ;
  • les droits administrateur ;
  • la sauvegarde des heures ;
  • la génération des PDF ;
  • l'envoi des e-mails ;
  • la gestion des congés ;
  • la fonctionnalité Report ;
  • le service des fichiers frontend compilés.

Technologies principales :

  • Node.js ;
  • Express ;
  • SQLite via node:sqlite ;
  • JWT pour les sessions ;
  • bcryptjs pour les mots de passe ;
  • nodemailer pour les e-mails ;
  • pdfkit pour les PDF.

Frontend

L'interface est dans lumina-frontend/src/App.jsx.

Elle utilise :

  • React ;
  • Vite ;
  • Axios ;
  • Framer Motion ;
  • Lucide React ;
  • une charte graphique adaptée à l’entreprise.

Le frontend est compilé dans lumina-frontend/dist, puis servi directement par server.js.

Base de données

La base SQLite contient notamment :

  • users : comptes, rôles, e-mail, dernière connexion, archivage ;
  • timesheets : brouillons et heures hebdomadaires ;
  • report_submissions : suivi des rapports envoyés ;
  • leave_requests : demandes de congés ;
  • leave_drafts : brouillons de congés ;
  • report_document_logs : journal des envois Report.

Cette structure reste volontairement compacte : elle suffit pour un outil interne, sans imposer une infrastructure lourde.

API principale

Authentification et compte

MéthodeRouteRôleUtilité
POST/api/loginTousConnexion utilisateur ou administrateur
GET/api/meConnectéRécupération de la session courante
POST/api/logoutConnectéDéconnexion
POST/api/change-passwordConnectéChangement de mot de passe
POST/api/forgot-passwordPublicDemande de réinitialisation par identifiant ou e-mail
POST/api/reset-passwordPublic avec tokenRéinitialisation du mot de passe
POST/api/account/email-changeConnectéDemande de changement d'adresse e-mail
GET/api/confirm-emailPublic avec tokenConfirmation de la nouvelle adresse
PUT/api/account/preferencesConnectéPréférences utilisateur

Heures et rapports

MéthodeRouteRôleUtilité
GET/api/load-dataUtilisateurChargement des heures d'une semaine
POST/api/save-dataUtilisateurSynchronisation automatique des heures
POST/api/submit-timesheetUtilisateurGénération PDF et envoi du rapport

Les comptes administrateurs sont volontairement exclus de ces routes utilisateur.

Congés

MéthodeRouteRôleUtilité
GET/api/leave-draftUtilisateurChargement du brouillon de demande
POST/api/leave-draftUtilisateurSynchronisation du brouillon
DELETE/api/leave-draftUtilisateurSuppression du brouillon
GET/api/leave-requests/mineUtilisateurListe de ses demandes
POST/api/leave-requestsUtilisateurEnvoi d'une demande
GET/api/leave-requestsAdministrateurListe des demandes
PUT/api/leave-requests/:id/decisionAdministrateurValidation ou refus
DELETE/api/leave-requests/:idAdministrateurSuppression d'une demande
GET/api/leave-requests/:id/pdfUtilisateur ou administrateur autoriséTéléchargement du PDF

Report

MéthodeRouteRôleUtilité
POST/api/reports/sendAdministrateurEnvoi mensuel de fichiers au salarié
GET/api/report-logsAdministrateurJournal des envois
DELETE/api/report-logsAdministrateurVidage du journal

Payload simplifié pour l'envoi Report :

{
  "userId": 12,
  "month": 9,
  "year": 2026,
  "files": [
    {
      "name": "fiche-paie-septembre.pdf",
      "type": "application/pdf",
      "data": "base64-sans-prefixe"
    }
  ]
}

Les fichiers sont envoyés en pièce jointe, mais ne sont pas stockés après l'envoi.

Administration

MéthodeRouteRôleUtilité
GET/api/admin-dashboardAdministrateurTableau de bord
GET/api/usersAdministrateurListe des utilisateurs actifs
GET/api/users/archivedAdministrateurListe des utilisateurs archivés
POST/api/usersAdministrateurCréation d'un utilisateur
PUT/api/users/:idAdministrateurModification d'un utilisateur
PUT/api/users/:id/archiveAdministrateurArchivage d'un utilisateur
PUT/api/users/:id/restoreAdministrateurRestauration d'un utilisateur archivé
DELETE/api/users/:idAdministrateurSuppression définitive d'un utilisateur archivé

Avantages pour les équipes

Pour les salariés

  • moins de formulaires manuels ;
  • moins d'e-mails à rédiger ;
  • saisie simple et guidée ;
  • brouillons synchronisés ;
  • confirmation claire des envois ;
  • accès à ses demandes et documents.

Pour les administrateurs

  • vision consolidée des rapports ;
  • suivi des congés ;
  • gestion centralisée des comptes ;
  • archivage sécurisé ;
  • envoi mensuel de documents depuis une interface unique ;
  • moins de manipulations répétitives.

Pour l'organisation

  • documents plus homogènes ;
  • meilleure traçabilité ;
  • réduction des erreurs ;
  • gain de temps administratif ;
  • outil adapté aux règles internes ;
  • maîtrise des accès ;
  • meilleure continuité en cas d'absence ou de changement d'équipe.

Exemple de gain de temps

Avant l'outil, une équipe pouvait devoir :

  1. récupérer les heures ;
  2. vérifier la semaine ;
  3. remettre en forme les données ;
  4. générer un document ;
  5. rédiger un e-mail ;
  6. joindre le bon fichier ;
  7. archiver l'échange ;
  8. gérer les corrections.

Avec le portail, une grande partie de ces étapes devient automatique ou semi-automatique.

Le temps gagné ne supprime pas le rôle administratif : il le recentre sur les contrôles utiles, les décisions et les échanges humains.

Positionnement pour un site sur l'IA

Ce projet peut être présenté comme un cas concret d'IA utile, sobre et opérationnelle.

Message recommandé :

L'IA ne remplace pas les équipes. Elle transforme les tâches répétitives en processus fiables, pour que chacun puisse se concentrer sur ce qui demande vraiment du jugement humain.

Ce cas illustre une IA au service :

  • de la clarté ;
  • de la productivité ;
  • de la qualité documentaire ;
  • de la sécurité ;
  • de l'expérience utilisateur ;
  • de l'amélioration continue.

Ce que ce cas concret démontre

  1. Un outil métier peut rester simple à déployer.
  2. Une interface interne peut être soignée et agréable.
  3. L'automatisation peut respecter les rôles humains.
  4. Les PDF et e-mails peuvent devenir homogènes sans travail manuel.
  5. Les administrateurs gardent la décision.
  6. Les salariés gagnent en autonomie.
  7. L'IA peut accélérer la construction et l'amélioration d'un outil sans prendre la place des équipes.

Phrase de conclusion

Le Portail heures l’entreprise montre une vision réaliste de l'IA : une technologie qui aide les équipes à aller plus vite, à faire moins d'erreurs et à mieux structurer leur travail, sans effacer la place de l'humain dans les décisions.

Projet similaire

Transformer un processus métier en système exploitable

CagedMonster peut cadrer les données, les règles métier, les contrôles et la place utile d’une IA locale ou hébergée.

Décrire votre processus