# SIOP V2 — GMAO pour la maintenance d'ascenseurs

[![CI](https://github.com/siop-spelev/siop2/actions/workflows/ci.yml/badge.svg)](https://github.com/siop-spelev/siop2/actions/workflows/ci.yml)

**SIOP** (Système Intégré d'Opérations de maintenance Préventive) est une GMAO complète
dédiée à la maintenance d'ascenseurs, inspirée fonctionnellement d'[Atlas CMMS](https://github.com/grashjs/cmms)
et adaptée au métier (carnet d'intervention, périodicités réglementaires, PV signés,
urgence « personne bloquée »), avec une couche IA différenciante.

Ce dépôt poursuit **deux objectifs jumeaux** :

1. **Le produit** — une application web + mobile + IA complètement fonctionnelle,
   déployée en production (Dokploy).
2. **Le playbook** — la documentation *pédagogique* de toutes les phases du cycle de
   vie logiciel (cadrage → design → architecture → développement → tests → production
   → formation), réutilisable comme support de cours et comme méthode d'entreprise.

> V2 : refondation *design-first* du projet [siop](https://github.com/siop-spelev/siop)
> (v1, gelée — elle sert de référence de lecture). 100 % nouveau code.

## Le playbook

| Phase | Dossier | Contenu |
| --- | --- | --- |
| Vision | [docs/00-vision](docs/00-vision/) | Charte projet, personas, benchmark Atlas |
| Cadrage | [docs/01-cadrage](docs/01-cadrage/) | Releases, user-story map, exigences, risques |
| Design | [docs/02-design](docs/02-design/) | Charte graphique, design tokens, maquettes HD |
| Architecture | [docs/03-architecture](docs/03-architecture/) | ADRs, C4, modèle de données, contrat d'API |
| Développement | [docs/04-developpement](docs/04-developpement/) | Conventions, déroulé d'un sprint |
| Tests | [docs/05-tests](docs/05-tests/) | Stratégie, plans, recettes par release |
| Production | [docs/06-production](docs/06-production/) | Runbook Dokploy, sauvegardes, sécurité |
| Formation | [docs/07-formation](docs/07-formation/) | Manuels, supports, exercices étudiants |

## Releases

`R0` Fondations → `R1` Référentiel → `R2` Exploitation → `R3` Gestion → `R4` Mobile → `R5` IA.
Règle : **une release n'ouvre pas tant que la précédente n'est pas recettée et déployée.**

## Démarrage (à partir de R0)

```bash
nvm use && pnpm install
pnpm infra:up        # PostgreSQL + Redis + MinIO (Docker)
pnpm dev
```

---
Projet mené par le Pr. Daaif (ENSET Mohammedia) avec ses étudiants, en partenariat avec SPELEV.
