# Benchmark — Atlas CMMS et adaptation ascenseurs > **Rôle de ce document (playbook)** : avant de concevoir, on étudie l'état de l'art. Ici, > [Atlas CMMS](https://github.com/grashjs/cmms) (GMAO open source, Spring Boot + React) est > notre référence fonctionnelle : on liste ce qu'on **reprend**, ce qu'on **adapte** au > métier ascenseur, ce qu'on **écarte**, et nos **différenciateurs**. ## 1. Ce qu'Atlas fait bien (repris tel quel, réimplémenté dans notre stack) | Module Atlas | Reprise SIOP | Release | | --- | --- | --- | | Work Orders (statuts, priorités, assignés, coûts) | Ordres de travail, machine à états stricte | R2 | | Requests (portail + approbation → WO) | Demandes convergeant vers l'OT (lien 1-1) | R2 | | Preventive Maintenance (triggers) | Génération périodique d'OT avec checklist | R2 | | Assets + hiérarchie | Ascenseurs + **organes** (hiérarchie 2 niveaux) | R1 | | Locations | Sites/emplacements + carte | R1 | | Parts & Inventory / Purchase Orders | Stock dérivé des mouvements, BC, seuils | R3 | | People & Teams, rôles/permissions | Matrice rôles × objets × droits, en base | R0 | | Vendors & Customers | Tiers unifiés | R3 | | Files | Bibliothèque de documents rattachables | R3 | | Analytics | Tableau de bord KPI + agrégations SQL | R3 | | Mobile app | App technicien Expo offline-first | R4 | ## 2. Ce qu'on adapte au métier ascenseur (le cœur de la valeur) | Spécificité métier (source : carnet SPELEV) | Traduction produit | | --- | --- | | **Bilan d'intervention codé** (6 champs à valeurs codifiées : état portes, position cabine, anomalie, cause extérieure, action, élément) | Référentiels administrables + garde de clôture : pas d'OT terminé sans bilan valide | | **Périodicités réglementaires** calées calendrier (mensuel → annuel, ancrage au mois — ex. parachute en juillet) | Gabarits de tâches à périodicité + génération mensuelle idempotente + « premier contrôle = tout » | | **Grille du mois** cochée en cabine | Checklist embarquée sur l'OT préventif, cochable hors-ligne sur mobile | | **PV contradictoire signé** (technicien + client) | Signatures tactiles + PDF fidèle au carnet, générable hors connexion (post-v1 : R5+) | | **Urgence « personne bloquée »** | Priorité dédiée, circuit court (alerte immédiate, pas de validation préalable) | | **Étiquette QR en cabine** | QR = URL canonique de la fiche → signalement prérempli (public) et fiche technicien (mobile) | ## 3. Ce qu'on écarte (v1) - Multi-tenant SaaS, facturation, abonnements (Atlas est un produit commercial hébergé). - Workflows configurables génériques — nos flux métier sont fixés par le métier. - Intégrations tierces (SAP, IoT…) — hors périmètre v1. ## 4. Nos différenciateurs (au-delà d'Atlas) 1. **IA** (R5) : assistant RAG citant ses sources (notices, historiques), aide à la saisie du bilan ; principe « l'IA propose, l'humain valide ». 2. **Design métier** : interface pensée pour les personas ascensoristes (gros statuts, urgences visibles, terminologie du carnet) — pas une GMAO générique habillée. 3. **DX/démo** : sélecteur de compte démo 1 clic (`DEMO_MODE`) — essentiel pour la démonstration commerciale ET le développement. ## 5. Choix de stack face à Atlas Atlas = Java Spring Boot + React (MUI). Nous **ne clonons pas la stack**, seulement le fonctionnel : notre stack TypeScript de bout en bout (NestJS/React/Expo) + FastAPI pour l'IA est plus cohérente pour une équipe unique et l'enseignement (un seul langage principal). Décision motivée en ADR-001.