🏢 Plateforme Prix Unitaires Logements & Intégration BIM 5D Revit
Plateforme SaaS multi-tenant d'analyse des coûts de construction, de structuration de référentiels de prix unitaires et d'estimation BIM 5D connectée à Revit.
📐 Architecture Technique
┌────────────────────────────────────────────────────────┐
│ Frontend React (Vite / Tailwind) │
└──────────────────────────┬─────────────────────────────┘
│ HTTP / REST API
┌──────────────────────────▼─────────────────────────────┐
│ Backend FastAPI (Python) │
│ - Authentification & RLS Multi-Tenant (JWKS/JWT) │
│ - Hachage Déterministe SHA-256 (Fichiers & Lignes) │
│ - Extraction Multi-Format (.xlsx, .xls, .csv) │
└──────────────────────────┬─────────────────────────────┘
│ Supabase Client / PostgREST
┌──────────────────────────▼─────────────────────────────┐
│ Supabase PostgreSQL │
│ - Staging 3-Niveaux : Brutes → Staged → Publiés │
│ - Fonctions SECURITY DEFINER & RLS Multi-Tenant │
│ - Supabase Storage (Bucket immuable source-documents) │
└────────────────────────────────────────────────────────┘
🚀 Démarrage Rapide (Développement)
Prérequis
- Python 3.11+
- Node.js 18+ & npm
1. Installation du Backend (FastAPI)
cd backend
# Créer l'environnement virtuel (optionnel mais recommandé)
python -m venv .venv
source .venv/bin/activate # Sur Windows: .venv\Scripts\activate
# Installer les dépendances
pip install -r requirements.txt
# Lancer le serveur backend en mode developpement
uvicorn app.main:app --reload --port 8000
Le backend est accessible sur http://127.0.0.1:8000.
La documentation interactive Swagger est disponible sur http://127.0.0.1:8000/docs.
2. Installation du Frontend (React / Vite)
cd frontend
# Installer les dépendances npm
npm install
# Lancer le serveur de développement Vite
npm run dev
L'application frontend est accessible sur http://localhost:5173.
🧪 Exécution des Tests
Backend (Pytest)
cd backend
python -m pytest -v
Build Frontend Production
cd frontend
npm run build
🗄️ Migrations de Base de Données (Supabase)
Les migrations SQL se trouvent dans le dossier supabase/migrations/ et doivent être appliquées dans l'ordre chronologique :
20260728000000_initial_schema.sql: Schéma de base des 18 tables métiers.20260728000001_auth_and_rls_policies.sql: Politiques RLS multi-tenant et fonctions de sécurité.20260728000002_seed_referentiels.sql: Référentiel des lots et unités de mesure.20260728000003_fix_security_definer_search_path.sql: Protectionsearch_path = ''sur SECURITY DEFINER.20260728000004_storage_source_documents.sql: Bucket Supabase Storage immuablesource-documents.20260728000005_indexes_and_constraints.sql: Index FK de performance, contrainte UNIQUE projects, et cast UUID sécurisé.
🔒 Configuration des Variables d'Environnement
Exemple .env backend :
PROJECT_NAME="Plateforme Prix Unitaires Logements & Integration BIM 5D Revit"
VERSION="0.1.0"
ENVIRONMENT="development" # Basculer à "production" pour renforcer la sécurité JWT
SUPABASE_URL="https://votre-projet.supabase.co"
SUPABASE_ANON_KEY="votre-anon-key"
SUPABASE_SERVICE_ROLE_KEY="votre-service-role-key"
📊 Suivi du Projet & Roadmap
Consultez docs/PROJECT_TRACKING.md pour suivre l'avancement des jalons (Jalon 1 à Jalon 8 validés 100%).