diff --git a/corresp_IGPDE.csv b/corresp_IGPDE.csv
new file mode 100644
index 0000000..b45a647
--- /dev/null
+++ b/corresp_IGPDE.csv
@@ -0,0 +1,101 @@
+Nouvelle nomenclature,Nomenclature IGPDE
+"700 – Management, Leadership et Compétences Managériales",
+701 - Management d'équipe,Management
+703 - Communication managériale,Communication > Communication managériale
+704 - Gestion des conflits et des situations difficiles,Médiation
+705 - Accompagnement du changement,
+706 - Intelligence collective et émotionnelle,
+707 - Évaluation et entretien professionnel,
+,
+"500 – Ressources Humaines, Carrière, Prépa concours",
+501 – Recrutement,
+502 - Gestion de carrière et mobilité,Ressources humaines > Mobilité et transitions professionnelles
+"503 - Diversité, inclusion et laïcité, lutte contre les discriminations","Ressources humaines > Diversité, laïcité et égalité professionnelle"
+504 - Dialogue social et relations professionnelles,
+505 - Accueil et intégration,
+506 - RH à l’Insee : outils et métiers,Ressources humaines
+507 - Préparation aux concours et examens,
+508 - Jury,
+509 – Formation initiale,
+509 – Formation initiale,
+,
+100 – Méthodologie et production statistique,
+101 - Enquêtes entreprises,
+"102 - Enquêtes ménages (yc PCS, ISCO)",
+103 - Enquêtes ménages – formations spécifiques enquêteurs,
+104 – Répertoire Sirene,
+105 – Recensement de la population,
+"106 – Conjoncture, études économiques",
+107 – Comptabilité nationale,
+108 - Autres outils et logiciels d'enquête,
+109 - Méthodologie d’enquête ,
+110 – Communication avec les enquêtés,
+,
+"200 – Statistique, Analyse de Données et Data Science",
+201 - Statistique descriptive et analyse,
+"202 - Programmation statistique (R, Python pour les statisticiens)","Big data, IA, DevOps > Langages de programmation"
+203 - Visualisation de données (QGIS et autres),
+204 - Séries temporelles et prévision,
+,
+"300 – Informatique, Numérique et Systèmes d'Information",
+301 - Développement et programmation informatique,Informatique > Langages et Développement
+301 - Développement et programmation informatique,"Big data, IA, DevOps"
+302 - Bases de données et SQL,Informatique > Bases de données
+303 - Outils bureautiques,Bureautique
+304 - Sécurité informatique,Informatique > Environnement informatique et sécurité
+305 - Accessibilité numérique,
+306 - Infrastructure et administration système,Informatique > Modélisation de projets SI
+306 - Infrastructure et administration système,Informatique > Réseaux
+306 - Infrastructure et administration système,Informatique > Systèmes d’exploitation – Poste de travail
+306 - Infrastructure et administration système,Informatique > Systèmes d’exploitation – Serveurs
+307 - Agilité et gestion de projet,Informatique > Gestion de projet SI
+308 - Eco-conception et Green IT,
+309 – Intelligence artificielle,"Big data, IA, DevOps > Intelligence Artificielle"
+310 – Autres formations au numérique,"Numérique, innovation, créativité"
+,
+"600 – Santé, Sécurité et Prévention des Risques","Ressources humaines > Qualité de vie, santé au travail et sécurité au travail"
+"600 – Santé, Sécurité et Prévention des Risques",
+,
+"400 – Connaissance de l'Insee, des Régions, de l’État, des entreprises",
+401 - Présentation de l'Insee et de ses missions,
+402 - Connaissance des régions et des territoires,
+"403 – Action publique, connaissance de l’administration",Action publique – Environnement administratif
+403 – Europe et international,Europe – International
+404 – Economie d’entreprise,Connaître et accompagner les entreprises
+,"Comptabilité, gestion et analyse financière des entreprises"
+,
+"800 – Communication, Rédaction et Techniques Éditoriales",
+801 - Communication écrite,Communication > Communication écrite
+"802 - Communication orale, prise de parole",Communication > Communication orale
+803 – Communication visuelle et digitale,Communication > Communication digitale
+804 - Rédaction administrative et technique,Communication >
+805 - Pédagogie des adultes,
+,
+"900 – Juridique, Réglementaire et Déontologie",
+901 - Droit du travail et statut de la fonction publique,
+"902 - Commande publique, marchés",Commande publique et achats publics
+903 – Gestion publique,Gestion publique
+904 - Déontologie et éthique,
+905 - Accessibilité et RGAA,
+907 – Droit – autres,Droit
+908 – Archivage,Gestion et recherche documentaire
+,
+1000 – Transition Écologique et Développement Durable,Développement durable
+,
+"1100 – Langues, Compétences Transversales",
+1101 - Langues,Langues
+1102 - Soft skills et développement personnel,Efficacité professionnelle - Intelligence relationnelle et développement du potentiel créatif
+,
+1200 – Autres Formations Spécifiques ou Transversales,
+1201 - Formations transversales,
+1203 – Economie générale,Economie générale
+1203 - Formations techniques diverses,Immobilier
+1201 - Formations transversales,Événements & séminaires
+507 - Préparation aux concours et examens,Préparations aux concours et examens professionnels (agents MEF)
+507 - Préparation aux concours et examens,Préparations aux concours et examens professionnels (agents MEF) > Préparations de catégorie A
+507 - Préparation aux concours et examens,Préparations aux concours et examens professionnels (agents MEF) > Préparations de catégorie B
+507 - Préparation aux concours et examens,Préparations aux concours et examens professionnels (agents MEF) > Préparations de catégorie C
+507 - Préparation aux concours et examens,Préparations aux concours interministériels
+507 - Préparation aux concours et examens,Qualifications informatiques (agents MEF)
+507 - Préparation aux concours et examens,Qualifications informatiques (agents MEF) > Préparations de catégorie A - Qualifications informatiques
+507 - Préparation aux concours et examens,Qualifications informatiques (agents MEF) > Préparations de catégorie B - Qualifications informatiques
diff --git a/corresp_IGPDE.ods b/corresp_IGPDE.ods
new file mode 100644
index 0000000..2714285
Binary files /dev/null and b/corresp_IGPDE.ods differ
diff --git a/docker-compose.yml b/docker-compose.yml
index de21978..39acb5e 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -4,4 +4,6 @@ services:
container_name: extracteur-pdf
restart: unless-stopped
ports:
- - "5050:5000" # Choix du port à définir en fonction des services déjà existants
\ No newline at end of file
+ - "5050:5000"
+ volumes:
+ - .:/app
diff --git a/requirements.txt b/requirements.txt
index 12d2ec2..119b1e2 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -3,3 +3,4 @@ pdfplumber
pandas
openpyxl
xlsxwriter
+odfpy
diff --git a/webapp.py b/webapp.py
index 1a5da79..59f2cf6 100644
--- a/webapp.py
+++ b/webapp.py
@@ -1,277 +1,207 @@
import os
import io
+import json
+import re
import pandas as pd
import pdfplumber
-from flask import Flask, request, render_template_string, Response, send_from_directory
+import unicodedata
+import traceback
+from flask import Flask, request, render_template_string, Response, send_from_directory, redirect
app = Flask(__name__)
-# Dossier temporaire pour stocker le fichier généré à l'intérieur du conteneur
+# Dossiers et fichiers
TEMP_DIR = "/app/downloads"
-if not os.path.exists(TEMP_DIR):
- os.makedirs(TEMP_DIR)
+if not os.path.exists(TEMP_DIR): os.makedirs(TEMP_DIR)
-# --- DESIGN HTML & JAVASCRIPT ---
-# Ce bloc est envoyé en premier au navigateur pour préparer l'interface de log
-HTML_LAYOUT = """
-
-
-
-
-
- Extracteur de formations
-
-
-
-
-
Analyse du catalogue en cours...
-
Chaque page du fichier est analysée pour extraire les fiches de formation.