cas · développement sur mesure

Toute l'activité de Staroil, dans un seul système.

Le système sur lequel Staroil fait tourner son activité : clients et contrats, consommations, validations, personnel et pointage. Une application web, deux API et une app sur Google Play et l'App Store, construites par Nexus.

client
Staroil
domaines fonctionnels
24
état
en production
8:57
AR
Bonjour, Ana
08:57
Dernier pointage · hier, 15:02
Pointer l'entrée
Position seulement à l'appui
Poste du jour
07:00 – 15:00
Station 07
PointerPlanningAbsences
24
domaines fonctionnels, des clients à la paie
3
services côté serveur : PHP, Java et Python
2
modes de pointage : tablette partagée et mobile personnel
4
ans de registre du temps de travail conservé, comme l'exige la loi
// la commande

Une activité éparpillée dans des tableurs.

Staroil exploite des stations-service et des dépôts. Avant Pulse, chaque service tenait son propre tableur et son propre dossier de courriels. La commande n'était pas « faire une application » : c'était réunir au même endroit ce qui se faisait déjà, sans interrompre l'exploitation.

01
Les données ne concordaient pas d'un service à l'autre. Le contrat d'un client vivait ici, sa consommation là, et son risque dans la tête de quelqu'un.
02
Les validations passaient par courriel. Une remise ou un achat s'autorisaient dans un fil que personne ne retrouvait ensuite.
03
Le pointage était sur papier. Avec l'obligation légale de conserver quatre ans le registre du temps de travail de tout le personnel.
// ce qu'il couvre

Vingt-quatre domaines, un seul système.

Chaque domaine a sa documentation fonctionnelle, son modèle de données et ses droits par rôle. Voici ce qu'il y a dedans, par groupes :

Commercial
Clients, pistes et l'entonnoir qui les relie. Qui est chaque compte et où il en est.
Contrats
Contrats de station et de dépôt, avec leurs conditions, remises et risques associés.
Exploitation
Stations, consommations, réapprovisionnements, tablettes de piste et borne clients.
Achats et stock
Fournisseurs, commandes, produits et stocks, avec leurs événements et alertes.
Personnel
Utilisateurs, rôles, relation de travail, paie et sous-traitants. Et le pointage de tout l'effectif.
Contrôle
Validations, journal d'audit des modifications, alertes, support interne et tableau de bord de direction.
// l'application

Pointer en dix secondes, depuis le mobile ou la tablette du site.

L'application est unique, publiée sur Google Play et l'App Store, et se comporte de deux façons selon le code d'enrôlement de l'appareil. Un téléphone ne démarre jamais en mode tablette, même s'il reçoit un code de site.

Station 07
Qui pointe ?
Touchez votre nom et regardez la caméra.
ARAna R.BCBruno C.CMCarla M.DPDiego P.ESElena S.FTFran T.GLGema L.HVHugo V.
Photo au pointage
Pointer l'entrée
appareil partagé
Tablette du site

N'importe qui dans l'entreprise pointe en se choisissant dans une liste. La caméra frontale prend une photo à chaque pointage, car la tablette ne demande pas de mot de passe : c'est ce qui permet de vérifier qui a pointé.

appareil personnel
Mobile personnel

Seul son propriétaire pointe, avec courriel et mot de passe. La position n'est lue qu'à la seconde où l'on appuie sur « Pointer » — jamais en arrière-plan. S'y ajoutent le planning, les absences et les rappels.

Le traitement des données de l'app est détaillé dans sa politique de confidentialité : position uniquement au pointage, pas de reconnaissance faciale, ni publicité ni analytique, et les données dans l'Union européenne.

// sous le capot

Polyglotte à dessein.

Chaque pièce est écrite dans le langage qui lui convient, et toutes sont orchestrées par les mêmes scripts. Ce n'est pas de l'éclectisme : c'est ce qui a permis de remplacer des parties sans refaire l'ensemble.

Navigateur
HTTPS
Noyau web
PHP · nginx
pulse-api
Java · Spring Boot
App mobile
React Native · Expo
BFF
Python · FastAPI
io/v1
Python · Flask
Base de donnéesMySQL · pulse
  • 01Noyau en PHP sur nginx et MySQL, avec migrations versionnées et journal d'audit des modifications.
  • 02API en Java avec Spring Boot pour les traitements qui exigent typage fort et concurrence.
  • 03API en Python avec Flask pour les imports et les alertes, plus un BFF en FastAPI au service de l'app mobile.
  • 04App en React Native et Expo, avec les rappels de pointage programmés sur le téléphone lui-même : pas de notifications push ni de registre des appareils qui l'ont installée.

Votre activité vit-elle dans des tableurs ?

Pulse est sur mesure et ne se vend pas comme un produit, mais ce qu'il démontre, lui, se répète : réunir des services dispersés dans un système que les gens utilisent vraiment.

Parler à un ingénieur