Projects Hub
npm run dev
Tous les projets
Actif BIM / Revit

Prix Unitaires BIM App

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...

Activité récente (il y a 11 jours)

Ouvrir dans VS Code

Démarrer

  • $ cd backend
  • Créer l'environnement virtuel (optionnel mais recommandé)

    $ python -m venv .venv
  • Sur Windows: .venv\Scripts\activate

    $ source .venv/bin/activate
  • Installer les dépendances

    $ pip install -r requirements.txt
  • Lancer le serveur backend en mode developpement

    $ uvicorn app.main:app --reload --port 8000
  • $ cd frontend
  • Installer les dépendances npm

    $ npm install
  • Lancer le serveur de développement Vite

    $ npm run dev
  • $ python -m pytest -v
  • $ npm run build

Documentation

🏢 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 :

  1. 20260728000000_initial_schema.sql : Schéma de base des 18 tables métiers.
  2. 20260728000001_auth_and_rls_policies.sql : Politiques RLS multi-tenant et fonctions de sécurité.
  3. 20260728000002_seed_referentiels.sql : Référentiel des lots et unités de mesure.
  4. 20260728000003_fix_security_definer_search_path.sql : Protection search_path = '' sur SECURITY DEFINER.
  5. 20260728000004_storage_source_documents.sql : Bucket Supabase Storage immuable source-documents.
  6. 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%).