FloorIA est une application web moderne qui utilise l'intelligence artificielle pour analyser automatiquement les plans architecturaux et détecter les éléments structurels tels que les murs, portes, fenêtres et pièces.
- Analyse IA automatique : Détection des éléments architecturaux via l'API Roboflow
- Interface moderne : Application Vue.js 3 avec design Tokyo Night
- Visualisation interactive : Canvas zoomable avec sélection d'éléments
- Authentification sécurisée : Système d'authentification via Supabase
- Export de données : Sauvegarde des résultats d'analyse en JSON
- Tri intelligent : Tableau des détections trié par confiance décroissante
- Vue.js 3.5+ avec Composition API et TypeScript 5.2+
- Vite 5.4+ pour le développement et le build optimisé
- Canvas HTML5 pour la visualisation interactive des plans
- Axios pour les requêtes HTTP vers l'API
- Supabase JS Client pour l'authentification côté client
- Design Tokyo Night avec polices Slack (Lato)
- Python 3.8+ avec FastAPI 0.100+ pour l'API REST haute performance
- Uvicorn comme serveur ASGI avec support hot reload
- Roboflow 1.0+ pour l'analyse IA des plans architecturaux
- Supabase 2.0+ pour l'authentification JWT et base de données PostgreSQL
- Shapely 2.0+ pour le traitement géométrique des détections
- Pillow 9.0+ pour le traitement d'images
- pdf2image 1.16+ + Poppler pour la conversion PDF vers image
- python-multipart pour l'upload de fichiers
- PyJWT 2.8+ pour la validation des tokens d'authentification
- Python 3.8+ avec pip
- Node.js 16+ avec npm
- Compte Roboflow avec accès API
- Projet Supabase configuré
git clone https://github.com/naptax/FloorIA.git
cd FloorIAcd backend
python -m venv venv
source venv/bin/activate # Linux/macOS
# ou
venv\Scripts\activate # Windowspip install -r requirements.txtcp .env.example .envÉditer le fichier .env avec vos clés API :
# Roboflow API Configuration
ROBOFLOW_API_KEY=votre_cle_roboflow_ici
ROBOFLOW_WORKSPACE=cubicasa5k-2-qpmsa-tppfc
ROBOFLOW_PROJECT=cubicasa5k-2-qpmsa-tppfc
ROBOFLOW_VERSION=1
# Supabase Configuration
SUPABASE_URL=https://votre-projet.supabase.co
SUPABASE_TOKEN=votre_cle_anon_supabase_ici
SUPABASE_APIKEY=votre_cle_anon_supabase_icicd ../frontend
# IMPORTANT: Utiliser le venv Python même pour npm
source ../backend/venv/bin/activate
npm installcp .env.example .env.productionÉditer .env.production :
VITE_API_BASE_URL=http://localhost:8000- Créer un compte sur Roboflow
- Obtenir votre clé API dans les paramètres du compte
- Le modèle utilisé : CubiCasa5K pour la détection d'éléments architecturaux
- Workspace :
cubicasa5k-2-qpmsa-tppfc - Projet :
cubicasa5k-2-qpmsa-tppfc - Version :
1
- Créer un projet sur Supabase
- Récupérer l'URL du projet et la clé anon
- Configurer l'authentification par email
- Voir
AUTHENTICATION.mdpour la configuration détaillée
# Dans le répertoire backend, avec le venv activé
source venv/bin/activate
python -m uvicorn main:app --host 0.0.0.0 --port 8000 --reloadLe backend sera accessible sur : http://localhost:8000
# Dans le répertoire frontend, avec le venv activé
source ../backend/venv/bin/activate
npm run devLe frontend sera accessible sur : http://localhost:3000
FloorIA utilise le modèle CubiCasa5K via l'API Roboflow :
- Dataset : CubiCasa5K - 5000 plans architecturaux annotés
- Classes détectées :
mur- Murs et cloisonsporte- Portes et ouverturesfenêtre- Fenêtres et baies vitréespièce- Espaces et pièces
- Précision moyenne : >85% sur les éléments principaux
- Temps de traitement : 2-5 secondes par plan
- Formats supportés : JPG, PNG, PDF (converti)
- Endpoint :
https://detect.roboflow.com/ - Authentification : Clé API dans les headers
- Format de réponse : JSON avec coordonnées et confiance
- Connexion : Authentifiez-vous avec votre compte
- Import : Cliquez sur "Importer un plan" et sélectionnez votre fichier
- Analyse : Cliquez sur "Analyser le plan" pour lancer la détection IA
- Visualisation : Les éléments détectés apparaissent dans le tableau
- Sélection : Cliquez sur une ligne pour visualiser l'élément sur le plan
- Export : Sauvegardez les résultats en JSON
# Arrêter le backend
pkill -f "uvicorn main:app"
# Arrêter le frontend
pkill -f "npm run dev"
# Vérifier les processus actifs
ps aux | grep -E "(uvicorn|npm)"# Lancer le backend
./start-backend.sh
# Lancer le frontend
./start-frontend.shFloorIA/
├── backend/ # API Python/FastAPI
│ ├── main.py # Point d'entrée de l'API
│ ├── auth_middleware.py # Authentification
│ ├── geometry_processor.py # Traitement géométrique
│ ├── supabase_client.py # Client Supabase
│ ├── requirements.txt # Dépendances Python
│ └── .env.example # Template de configuration
├── frontend/ # Application Vue.js
│ ├── src/
│ │ ├── components/ # Composants Vue
│ │ ├── types/ # Types TypeScript
│ │ └── utils/ # Utilitaires
│ ├── package.json # Dépendances Node.js
│ └── vite.config.ts # Configuration Vite
├── supabase/ # Configuration Supabase
├── README.md # Cette documentation
├── AUTHENTICATION.md # Guide d'authentification
└── .gitignore # Fichiers ignorés par Git
Ajoutez ?modetest à l'URL pour accéder aux outils de développement :
http://localhost:3000?modetest
- Backend :
--reloadactive le rechargement automatique - Frontend : Vite recharge automatiquement les modifications
- Backend : Logs détaillés dans la console
- Frontend : DevTools Vue.js disponibles
- API : Documentation automatique sur
/docs
AUTHENTICATION.md- Configuration Supabase et authentificationCORS_TROUBLESHOOTING.md- Résolution des problèmes CORSRENDER_DEPLOYMENT.md- Déploiement sur Render
- Fork le projet
- Créer une branche feature (
git checkout -b feature/AmazingFeature) - Commit les changements (
git commit -m 'Add AmazingFeature') - Push vers la branche (
git push origin feature/AmazingFeature) - Ouvrir une Pull Request
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
Développé par Deep-5 avec ❤️
FloorIA - Transformez vos plans architecturaux en données structurées grâce à l'IA