Sommaire

L'essentiel

  • Sept modules : employés, contrats, planning, pointage, cartes, paie et réglages.
  • Chaque PC travaille sur sa base locale et se synchronise toutes les 15 secondes, avec résolution des conflits.
  • Paie ivoirienne (CNPS, CMU, ITS) sur des paramètres légaux datés et modifiables, jamais figés dans le code.
  • Contrats et bulletins signés ou validés figés avec une empreinte SHA-256.
  • Pointage par carte QR sur le téléphone Android de la caisse, même sans Internet.

AA Foods Gestion du personnel est le logiciel RH d'un restaurant en Côte d'Ivoire : fiches employés, contrats conformes au Code du travail ivoirien, planning, pointage par carte QR et paie mensuelle avec CNPS, CMU et ITS. Il tourne sur les PC Windows du restaurant, sur un serveur en ligne et sur un téléphone Android posé à la caisse, et il continue de fonctionner quand Internet tombe.

Un logiciel RH pensé pour un restaurant ivoirien

Dans un restaurant, la gestion du personnel se fait souvent sur papier ou dans un tableur : contrats recopiés d'un modèle, heures notées à la main, paie calculée de tête. Les erreurs coûtent cher, surtout quand les cotisations sociales et l'impôt sur les salaires entrent en jeu. AA Foods Gestion du personnel remplace tout cela par un seul outil, utilisé par la direction et par les gérants.

Le logiciel couvre sept modules : employés, contrats, planning, pointage, cartes, paie et réglages. Il gère plusieurs établissements : on choisit le restaurant dans un sélecteur en haut à gauche, et chaque téléphone de pointage est rattaché à un établissement. Les droits sont répartis par rôle, la direction voyant tout, le gérant travaillant sur le planning, le pointage et les employés.

Le parcours, de l'embauche à la fiche de paie

  1. Embauche : la fiche employé reçoit l'identité, la photo, la situation familiale et le nombre d'enfants (utiles pour l'ITS), le numéro CNPS et la rémunération.
  2. Contrat : le contrat est généré à partir d'un modèle, puis signé à l'écran, par lien sécurisé ou sur papier.
  3. Carte : une carte de pointage avec photo et QR code est créée d'office et s'imprime en planche.
  4. Planning : la semaine est construite par jour et par poste (cuisine, salle, caisse, plonge).
  5. Pointage : l'équipier présente sa carte au téléphone de la caisse en arrivant et en partant.
  6. Paie : en fin de mois, la paie est calculée à partir des heures validées et produit les bulletins PDF.
Écran de pointage du jour avec frise horaire comparant les heures prévues et pointées
Pointage du jour : prévu contre pointé sur une frise horaire, retards, écarts et sorties automatiques.

Les fonctions principales

Employés et contrats

  • Contrats CDI, CDD, temps partiel, journalier et stage, avec contrôles du Code du travail (SMIG, durée des CDD, période d'essai, temps partiel).
  • Éditeur de modèles de contrat : articles, paragraphes conditionnels et données remplies automatiquement.
  • Versions datées : chaque modification d'un contrat signé crée un avenant ou un renouvellement, l'ancienne version reste consultable.
  • Signature à l'écran, envoi d'un lien de signature par WhatsApp ou par e-mail, ou signature sur papier avec scan à joindre, même plus tard.
  • Pièces du dossier, attestations et historique daté de chaque modification.

Planning et pointage

  • Planning hebdomadaire par poste, horaires fixes, absences (congés, maladie, absence injustifiée) et jours fériés.
  • Comparaison du prévu et du pointé : retards, écarts, heures au-delà du planning, heures supplémentaires.
  • Dépointage automatique à l'heure de fermeture de l'établissement, signalé comme tel.
  • Corrections par le gérant avec motif et auteur, le pointage d'origine étant conservé.
  • Vue d'ensemble : présents, ponctualité, assiduité, pointages à corriger et anomalies à régler.

Paie

  • Calcul mensuel à partir des heures validées : salaire de base, heures supplémentaires, primes, absences, avantages en nature.
  • Retenues salariales et charges patronales, montants à déclarer pour la CNPS, la CMU, l'ITS et la contribution employeur.
  • Bulletins PDF aux mentions ivoiriennes, livre de paie et cumuls de l'année.

Les difficultés techniques, et comment elles ont été résolues

Travailler sans Internet, sur plusieurs postes

Une coupure d'Internet ne doit pas arrêter le restaurant. Chaque PC garde donc sa propre base SQLite et travaille dessus : employés, contrats, planning, paie, documents. Le serveur en ligne, en PHP et MySQL, sert de point de rencontre. Toutes les 15 secondes, chaque poste envoie ses modifications en attente et récupère celles des autres à partir du journal des changements.

Le problème classique arrive quand deux ordinateurs modifient la même fiche hors ligne. Chaque enregistrement porte un identifiant unique, un numéro de version et une date de modification. La version la plus haute l'emporte ; à version égale, la modification la plus récente gagne et le serveur lui donne la version suivante, pour que toutes les machines convergent vers le même état. Les doublons métier sont traités à part : un même matricule attribué sur deux ordinateurs, ou la paie du même mois calculée deux fois, est réglé et signalé dans l'écran Synchronisation.

Chaque envoi part d'une file d'attente locale avec son empreinte SHA-256. Il ne quitte la file qu'après un accusé de réception qui cite cette empreinte, et un envoi rejoué ne crée pas de doublon.

Une seule logique métier, deux environnements

Pour ne pas écrire deux fois le calcul de paie ou les règles des contrats, le même code PHP tourne à deux endroits. Sur le PC, l'application Electron démarre un PHP embarqué sur SQLite, puis affiche l'interface React. Sur le serveur, le même code tourne sur MySQL. Les PDF sont produits par Electron à partir de modèles HTML, sans dépendance lourde.

La paie ivoirienne, paramétrable et datée

La paie en Côte d'Ivoire combine plusieurs mécanismes. La CNPS retraite s'applique sur une assiette plafonnée, les prestations familiales, la maternité et les accidents du travail sur une autre. La CMU se compte par personne couverte : le salarié, son conjoint et ses enfants dans une limite. L'ITS suit un barème progressif, avec un nombre de parts calculé selon la situation familiale et une réduction par demi-part. Certaines lignes, comme la prime de panier ou une partie de l'indemnité de transport, n'entrent pas dans toutes les assiettes.

Dans le logiciel, chaque ligne de gain indique si elle entre dans l'assiette CNPS, dans l'assiette ITS et si elle est payée en argent. Aucun taux n'est figé dans le code : SMIG, taux, plafonds, barème et majorations sont des paramètres datés, modifiables quand la loi change, avec leur source et leur niveau de fiabilité. Ils s'appuient sur un dossier de recherche qui cite le Code du travail, les décrets, la convention collective et les textes de la CNPS et de la DGI.

Bulletin de paie PDF avec cotisations, part patronale et net à payer
Bulletin de paie aux mentions ivoiriennes : cotisations, part patronale, net à payer en évidence.

Des documents signés qui ne bougent plus

Un contrat signé doit rester exactement ce qui a été signé, même si le modèle change ensuite. Quand les deux parties ont signé, la version est figée : le document HTML est conservé tel quel et son empreinte SHA-256 est enregistrée. Toute modification passe par une nouvelle version avec sa date d'effet. Le même principe s'applique aux annexes et aux documents finalisés. Côté paie, une paie validée ne peut plus être recalculée et un bulletin validé ne peut plus être modifié.

Le lien de signature envoyé à un salarié ne stocke que l'empreinte de son jeton sur le serveur, pas le jeton lui-même.

Contrat de travail signé électroniquement, horodaté et scellé
Contrat signé électroniquement, horodaté et scellé par empreinte SHA-256.

Le pointage par carte QR, même hors ligne

Plutôt que d'acheter des lecteurs de badges, le pointage se fait avec le téléphone Android déjà présent à la caisse et des cartes imprimées. L'application AA Pointage, développée avec Expo, lit les cartes en continu, sans bouton. Elle reconnaît la carte dans sa mémoire, déduit s'il s'agit d'une arrivée ou d'un départ à partir de l'historique, puis affiche la photo, le nom et l'heure. La photo permet au caissier de voir que personne ne pointe avec la carte d'un autre.

  • Sans Internet, les pointages sont gardés sur le téléphone avec leur heure réelle, même après un redémarrage.
  • Au retour de la connexion, ils partent en lots sans doublon ; le serveur reste l'arbitre et l'historique du téléphone s'aligne sur lui.
  • Une carte désactivée est refusée même hors ligne ; une carte d'un autre établissement aussi.
  • Le QR ne contient qu'un code aléatoire, pas le nom de l'employé. La clé du téléphone est chiffrée sur l'appareil et le serveur n'en garde que l'empreinte.
  • Les mises à jour du téléphone arrivent à distance et ne sont acceptées que si elles sont signées par la clé de publication.
Planche de cartes d'employé avec photo et QR code
Cartes d'employé avec photo et QR code, prêtes à imprimer pour le téléphone de pointage.

La pile technique

  • Application de bureau : Electron, React, TypeScript et Tailwind CSS, avec un PHP embarqué et une base SQLite locale.
  • Serveur : API PHP et base MySQL, source de vérité et point de synchronisation.
  • Téléphone de pointage : application Android Expo avec caméra, SQLite et stockage sécurisé.
  • Mises à jour : installeur Windows et mises à jour automatiques pour les postes, mises à jour signées à distance pour le téléphone.
  • Tests : tests métier (contrats, planning, heures supplémentaires, paie calculée à la main), test de bout en bout hors connexion et test d'intégration de la synchronisation.

Ce que ce projet montre

AA Foods Gestion du personnel a été conçu et développé de bout en bout par Ahmed Sanoko : application de bureau, API PHP, synchronisation, borne de pointage Android et déploiement. Le projet réunit trois exigences qui se rencontrent rarement : une réglementation précise à traduire en calculs, des documents à valeur juridique qui ne doivent jamais changer, et un fonctionnement fiable sur plusieurs machines avec une connexion instable. La partie commande en ligne d'AA Foods fait l'objet d'un autre article.

Vous avez un projet de logiciel métier, de gestion du personnel ou d'application qui doit fonctionner hors connexion ? Me contacter. Vous pouvez aussi voir toutes les captures du logiciel.

Questions fréquentes

Le logiciel fonctionne-t-il sans Internet ?

Oui. Chaque PC travaille sur sa propre base locale et le téléphone de pointage garde les pointages en mémoire. Tout est envoyé au serveur au retour de la connexion, sans doublon.

Que se passe-t-il quand un taux de cotisation ou le SMIG change ?

Les taux, plafonds et barèmes sont des paramètres datés dans les réglages. On saisit la nouvelle valeur avec sa date d'effet, sans modifier le code. Les bulletins déjà validés ne changent pas.

Faut-il acheter des badgeuses pour le pointage ?

Non. Le pointage utilise un téléphone Android avec caméra et des cartes imprimées portant un QR code. Le téléphone est appairé une fois au logiciel.