# 4NK IA Front Notarial Application front-end pour l'analyse intelligente de documents notariaux avec IA. ## 🎯 FonctionnalitĂ©s ### 📄 Gestion de documents - **Upload multiple** : Glisser-dĂ©poser de documents (PDF, images) - **PrĂ©visualisation** : Affichage des documents uploadĂ©s - **Types supportĂ©s** : PDF, PNG, JPG, JPEG ### 🔍 Extraction et analyse - **OCR automatique** : Extraction du texte des documents - **DĂ©tection de type** : Identification automatique du type de document - **Objets standardisĂ©s** : Extraction d'identitĂ©s, adresses, biens, contrats - **DĂ©tection de langue** : Identification automatique de la langue ### 📊 Analyse intelligente - **Score de vraisemblance** : Évaluation de la crĂ©dibilitĂ© du document - **Recommandations** : Suggestions d'actions Ă  effectuer - **SynthĂšse** : RĂ©sumĂ© automatique du document ### 🌐 DonnĂ©es contextuelles - **Cadastre** : VĂ©rification des rĂ©fĂ©rences cadastrales - **GĂ©orisques** : Analyse des risques gĂ©ologiques - **BODACC** : VĂ©rification des procĂ©dures en cours - **Infogreffe** : ContrĂŽle des entreprises ### đŸ€– Conseil IA - **Analyse LLM** : Évaluation intelligente du document - **DĂ©tection de risques** : Identification des Ă©lĂ©ments suspects - **Prochaines Ă©tapes** : Recommandations d'actions ## 🚀 Technologies - **Frontend** : React 19 + TypeScript - **Build** : Vite 7 - **UI** : Material-UI (MUI) v7 - **State** : Redux Toolkit + React Redux - **Routing** : React Router v7 - **HTTP** : Axios - **Tests** : Vitest + Testing Library - **Linting** : ESLint + Prettier + markdownlint ## 📩 Installation ### PrĂ©requis - Node.js >= 20.19.0 (LTS). RecommandĂ©: 22.12+ - npm >= 10.0.0 - nvm recommandĂ© pour gĂ©rer les versions de Node Avec nvm: ```bash nvm use # utilise la version dĂ©finie dans .nvmrc # ou, si non installĂ©e nvm install && nvm use ``` ### Installation des dĂ©pendances ```bash npm ci ``` ### Configuration des environnements CrĂ©er un fichier `.env` : ```env VITE_API_URL=http://localhost:8000 VITE_CADASTRE_API_URL=https://api.cadastre.gouv.fr VITE_GEORISQUES_API_URL=https://www.georisques.gouv.fr/api VITE_GEOFONCIER_API_URL=https://api.geofoncier.fr VITE_BODACC_API_URL=https://api.bodacc.fr VITE_INFOGREFFE_API_URL=https://api.infogreffe.fr ``` ## đŸ› ïž Scripts disponibles ```bash # DĂ©veloppement npm run dev # Serveur de dĂ©veloppement npm run build # Build de production npm run preview # PrĂ©visualisation du build # QualitĂ© de code npm run lint # VĂ©rification ESLint npm run format # VĂ©rification Prettier npm run format:fix # Formatage automatique npm run mdlint # VĂ©rification Markdown # Tests npm run test # Tests unitaires avec couverture npm run test:ui # Tests avec interface # Docker ./scripts/docker-build.sh # Construire l'image locale IMAGE_TAG=0.1.3 ./scripts/docker-build.sh # Construire avec tag explicite IMAGE_TAG=0.1.3 ./scripts/docker-push.sh # Pousser vers git.4nkweb.com ``` ## đŸ—ïž Architecture ### Structure du projet ```text src/ ├── components/ # Composants rĂ©utilisables │ ├── Layout.tsx # Layout principal │ └── NavigationTabs.tsx ├── views/ # Vues de l'application │ ├── UploadView.tsx # Upload de documents │ ├── ExtractionView.tsx # Extraction de donnĂ©es │ ├── AnalyseView.tsx # Analyse des documents │ ├── ContexteView.tsx # DonnĂ©es contextuelles │ └── ConseilView.tsx # Conseil IA ├── store/ # Gestion d'Ă©tat Redux │ ├── index.ts # Configuration du store │ ├── appSlice.ts # État global │ └── documentSlice.ts # État des documents ├── services/ # Services API │ └── api.ts # Client API et endpoints ├── types/ # Types TypeScript │ └── index.ts # Interfaces et types └── main.tsx # Point d'entrĂ©e ``` ### Gestion d'Ă©tat - **Redux Toolkit** : Gestion centralisĂ©e de l'Ă©tat - **Async Thunks** : Actions asynchrones pour les appels API - **Slices** : Organisation modulaire du state ### Services API - **Client Axios** : Configuration centralisĂ©e - **Intercepteurs** : Gestion d'erreur automatique - **Mode dĂ©mo** : Fallback automatique en cas d'erreur ## 🎹 Interface utilisateur ### Design - **Material-UI** : Composants modernes et accessibles - **ThĂšme cohĂ©rent** : Palette de couleurs professionnelle - **Responsive** : Adaptation mobile et desktop - **Fond blanc** : Interface claire et professionnelle ### Navigation - **Onglets** : Navigation intuitive entre les vues - **Breadcrumbs** : Indication de la position actuelle - **Actions contextuelles** : Boutons d'action selon la vue ## 🔧 IntĂ©gration backend Toutes les fonctionnalitĂ©s (upload, extraction, analyse, donnĂ©es contextuelles, conseil LLM) passent par le backend `4NK_IA_back`. Les APIs externes (Cadastre, GĂ©orisques, GĂ©ofoncier, BODACC, Infogreffe) sont appelĂ©es cĂŽtĂ© backend uniquement. ## đŸ§Ș Tests ### Configuration - **Vitest** : Framework de test rapide - **Testing Library** : Tests d'intĂ©gration React - **JSDOM** : Environnement DOM simulĂ© - **Coverage** : Couverture de code avec V8 ### ExĂ©cution ```bash npm run test # Tests en mode watch npm run test:ui # Interface graphique npm run test:coverage # Rapport de couverture ``` ## 📚 Documentation - **docs/** : Documentation technique dĂ©taillĂ©e - **CHANGELOG.md** : Historique des versions - **CONTRIBUTING.md** : Guide de contribution - **CODE_OF_CONDUCT.md** : Code de conduite ## 🚀 DĂ©ploiement ### Build de production ```bash npm run build ``` ### ExĂ©cution via Docker ```bash # Construire l'image ./scripts/docker-build.sh # Lancer localement docker run --rm -p 8080:80 git.4nkweb.com/4nk/4nk-ia-front:latest # Pousser vers le registry (requiert authentification prĂ©alable) IMAGE_TAG=0.1.3 ./scripts/docker-push.sh ``` ### Variables d'environnement Configurer les URLs des APIs externes selon l'environnement : - **DĂ©veloppement** : `http://localhost:8000` - **Staging** : URL de l'environnement de test - **Production** : URL de l'API de production ## đŸ€ Contribution 1. Fork le projet 2. CrĂ©er une branche feature (`git checkout -b feature/nouvelle-fonctionnalite`) 3. Commit les changements (`git commit -m 'Ajouter nouvelle fonctionnalitĂ©'`) 4. Push vers la branche (`git push origin feature/nouvelle-fonctionnalite`) 5. Ouvrir une Pull Request ### Standards de code - **ESLint** : RĂšgles strictes activĂ©es - **Prettier** : Formatage automatique - **TypeScript** : Typage strict - **Tests** : Couverture minimale requise ## 📄 Licence Ce projet est sous licence MIT. Voir le fichier [LICENSE](LICENSE) pour plus de dĂ©tails. ## 🔗 Liens utiles - [Documentation Material-UI](https://mui.com/) - [Redux Toolkit](https://redux-toolkit.js.org/) - [React Router](https://reactrouter.com/) - [Vite](https://vitejs.dev/) - [Vitest](https://vitest.dev/) ## 📞 Support Pour toute question ou problĂšme : - Ouvrir une [issue](https://git.4nkweb.com/4nk/4NK_IA_front/issues) - Consulter la [documentation](docs/) - Contacter l'Ă©quipe de dĂ©veloppement --- **Version actuelle** : 0.1.3 **DerniĂšre mise Ă  jour** : Septembre 2025