# Bati Univers

> **Projet unifié regroupant 4 outils BTP** : Mesure, Rapport, Plan, Terrain.
> Centralisé dans iCloud Drive. Construit le 26 mai 2026.

---

## 🎯 Vue d'ensemble

**Bati Univers** est le projet de consolidation de quatre solutions BTP indépendantes en un seul espace cohérent, organisé et documenté :

| Module | Origine | Description | Stack |
|---|---|---|---|
| **Mesure** (`apps/mesure/`) | MesurePro-next | SaaS B2B mobile-first : mesures terrain, rapports PDF, devis, assistant IA, multi-tenant | Monorepo Turbo · Fastify · React Native Expo · Prisma · PostgreSQL · Stripe + Mollie |
| **Rapport** (`apps/report/`) | BatiReport | SaaS BTP offline-first packagé en mono-fichier HTML (1,41 Mo) · 49 modules (RE2020, SPS, PEMD, DICT, Factur-X, eIDAS, RGPD, CRM, devis, Dashboard CEO…) | Single-file HTML PWA · 775 tests verts |
| **Plan** (`apps/plan/`) | BatiPlan | Application web de plans d'intérieur · marché belge · import DXF/DWG · PEB · devis TVA | React 18 · Vite 5 · Three.js · IndexedDB · PWA |
| **Terrain** (`apps/terrain/`) | BâtiPilot v6.7 | Application BTP pour artisans belges : devis, factures Peppol BE 2026, états d'avancement NF P03-001, Gantt MS Project, bibliothèque 9 métiers × 114 ouvrages | React 18 · Tailwind v3 · esbuild · Express · Mistral AI · localStorage |

> **Note importante** : MesurePro v1 (legacy V3D Vite/R3F) est conservé en **archive** dans `_archive_safe/mesurepro-legacy-v3d/`. Il reste accessible mais n'est pas la base active.

---

## 🚫 Projet explicitement exclus de la fusion

Le projet suivant n'a **pas** été touché (règle non négociable maintenue) :

- **WAELDO** (et toutes ses variantes : WAELDO V2, WAELDO Bureau, WAELDO Vitrine, etc.)

> Note historique : **BâtiPilot** était initialement exclu lors de la première phase de la fusion (matin 2026-05-26). L'utilisateur a ensuite levé cette exclusion l'après-midi pour intégrer BâtiPilot comme module Terrain (voir `_audit/analysis_batipilot.md`). WAELDO reste exclu.

Voir `_audit/excluded_paths.md` pour la liste complète des chemins exclus.

---

## 📂 Structure du projet

```
BatiUnivers/                            ← Racine iCloud (~/Library/Mobile Documents/com~apple~CloudDocs/BatiUnivers)
├── README.md                           ← Ce fichier
├── package.json                        ← Scripts orchestrateurs (delegate vers chaque app)
├── .gitignore
├── .env.example
├── hub/                                ← Hub Bati Univers — page d'accueil unifiée
│   └── index.html                      ← Liens vers les 4 modules
├── apps/                               ← Les 4 modules métier
│   ├── mesure/                         ← Issu de mesurepro-next (monorepo Turbo)
│   ├── report/                         ← Issu de batireport (mono-fichier HTML)
│   ├── plan/                           ← Issu de batiplan (Vite + React + Three.js)
│   └── terrain/                        ← Squelette à compléter
├── packages/
│   └── shared/                         ← Code à partager entre apps (vide pour l'instant)
├── public/                             ← Assets statiques communs
├── docs/                               ← Documentation Bati Univers
│   ├── architecture.md
│   ├── modules.md
│   ├── migration.md
│   ├── dependencies.md
│   ├── icloud_backup.md
│   └── security.md
├── scripts/                            ← Scripts utilitaires (launch-hub, etc.)
├── tests/                              ← Tests d'intégration cross-modules (à créer)
├── _audit/                             ← Traçabilité de la fusion
├── _original_sources/                  ← Sauvegarde pristine des 4 projets sources (hors node_modules)
├── _archive_safe/                      ← Versions legacy archivées (mesurepro V3D)
├── _migration/                         ← Notes de migration et stratégie de fusion
└── _final_report/                      ← Rapport final de la mission
```

---

## 🚀 Démarrage rapide

### Voir le Hub Bati Univers (le plus simple)

```bash
cd "$HOME/Library/Mobile Documents/com~apple~CloudDocs/BatiUnivers"
open hub/index.html
```

Cette page recense les 4 modules et donne accès direct à chacun.

### Lancer un module individuel

**Mesure (mesurepro-next, monorepo SaaS)** :
```bash
cd apps/mesure
npm install
cp .env.example .env  # remplir les clés (Auth0, Anthropic, Stripe…)
bash scripts/setup.sh
npm run dev
```

**Rapport (batireport, mono-fichier)** :
```bash
cd apps/report/src
python3 -m http.server 8080
# Ouvrir http://localhost:8080/batireport-app.html
```

**Plan (batiplan, SPA Vite)** :
```bash
cd apps/plan
npm install
npm run dev
# Ouvrir http://localhost:5173/
```

**Terrain (BâtiPilot, mono-fichier React + Tailwind + esbuild)** :
```bash
cd apps/terrain
npm install
npm run build       # → génère build/index.html standalone (~740 Ko)
open build/index.html
```
Documentation Bati Univers : [`apps/terrain/BATI-UNIVERS.md`](apps/terrain/BATI-UNIVERS.md)

### Commandes orchestrées via le root

Depuis la racine de Bati Univers :
```bash
npm run dev:mesure          # cd apps/mesure && npm run dev
npm run dev:plan            # cd apps/plan && npm run dev
npm run dev:report          # ouvre apps/report/src/batireport-app.html via http.server
npm run dev:terrain         # cd apps/terrain && npm run watch (BâtiPilot esbuild watch)
npm run hub                 # ouvre hub/index.html
```

---

## 📚 Documentation

| Document | Sujet |
|---|---|
| [`docs/architecture.md`](./docs/architecture.md) | Architecture globale Bati Univers |
| [`docs/modules.md`](./docs/modules.md) | Description détaillée de chaque module |
| [`docs/migration.md`](./docs/migration.md) | Comment les 4 projets ont été fusionnés |
| [`docs/dependencies.md`](./docs/dependencies.md) | Consolidation des dépendances |
| [`docs/icloud_backup.md`](./docs/icloud_backup.md) | Stratégie iCloud + sauvegardes |
| [`docs/security.md`](./docs/security.md) | Sécurité, secrets, RGPD |
| [`_audit/`](./_audit/) | Inventaire et traçabilité |
| [`_migration/`](./_migration/) | Stratégie et journal de fusion |
| [`_final_report/final_report.md`](./_final_report/final_report.md) | Rapport final de la mission |

---

## ⚠️ Notes importantes

### iCloud
- Le projet vit dans `~/Library/Mobile Documents/com~apple~CloudDocs/BatiUnivers`.
- Tous les fichiers sont synchronisés automatiquement vers iCloud.
- En cas de problème de sync (icône nuage), redémarrer le démon `bird` : `killall bird`.

### Sources originales conservées
- Les 4 projets sources sont **toujours présents** sur le Desktop :
  - `Desktop/Bureau .../mesurepro/`
  - `Desktop/Bureau .../mesurepro-next/`
  - `Desktop/Bureau .../batireport/`
  - `Desktop/Bureau .../batiplan/`
- Ils restent connectés à leurs remotes GitHub d'origine.
- La fusion a fait des **copies** dans `_original_sources/` (pristine, sans node_modules).
- Quand Bati Univers sera validé et qu'on voudra archiver les Desktop folders, on créera `_archive_safe/desktop-originals/` et on déplacera.

### Pas de `.git` dans `apps/`
- Pour éviter les conflits de sous-modules Git, le `.git` de chaque projet source a été supprimé dans `apps/`.
- L'historique reste dispo sur les sources Desktop et leurs remotes GitHub.
- Bati Univers a (ou aura) son propre `.git` au niveau racine.

---

## 📅 Versions

- **2026-05-26** — Création initiale, fusion des 4 projets, structure iCloud.

---

## 🤝 Licence

Chaque module conserve sa licence d'origine (voir `apps/<module>/LICENSE` quand applicable). Le code orchestrateur Bati Univers (root) est usage privé de l'auteur.

© 2026 Davide Zaffaroni — Bati Univers.
