Files
demat-facturation/todo.md
Manus a56e6c58f4 Checkpoint: Correction du système d'authentification locale pour supporter le cookie auth_token.
Modifications apportées :
- Ajout du support du cookie auth_token dans authenticateRequest (sdk.ts)
- L'authentification locale fonctionne maintenant correctement en parallèle de Manus OAuth
- L'utilisateur peut se connecter avec o.pareige@itinova.org et le mot de passe Itinova69!

Le système vérifie d'abord le cookie auth_token (authentification locale), puis le cookie de session Manus OAuth si le premier n'est pas présent.
2026-01-08 08:43:05 -05:00

3.0 KiB

Invoice Analyzer - TODO

Phase 1: Base de données et schéma

  • Créer table users avec support authentification locale + Azure AD
  • Créer table sourceFiles pour fichiers PDF uploadés
  • Créer table invoices pour factures extraites
  • Créer table userSettings pour paramètres utilisateur
  • Créer table importLogs pour historique des imports
  • Créer table llmLogs pour logs des appels LLM
  • Pousser les migrations avec pnpm db:push

Phase 2: Authentification

  • Implémenter authentification locale (email/password avec bcrypt)
  • Implémenter authentification Azure AD avec MSAL
  • Créer helpers de génération de tokens JWT
  • Créer middleware de vérification des rôles (user/admin)

Phase 3: Stockage et extraction IA

  • Créer helper de stockage local avec préfixe YYYY-MM
  • Implémenter extraction PDF avec Mistral OCR
  • Implémenter extraction de métadonnées avec Mistral LLM
  • Créer système de scoring de qualité (0-100)
  • Implémenter détection de doublons
  • Créer helper de génération de fichiers JSON de métadonnées
  • Implémenter logger LLM pour debug

Phase 4: Export SFTP

  • Créer helper de connexion SFTP
  • Implémenter export manuel de factures
  • Implémenter export automatique de factures
  • Créer test de connexion SFTP

Phase 5: Routes tRPC

  • Routes auth (me, loginLocal, getAzureLoginUrl, logout)
  • Routes invoices (upload, list, getById, update, delete, search, getStats)
  • Routes sourceFiles (getByIds pour polling)
  • Routes settings (get, upsert)
  • Routes admin (createUser, getAllUsers, updatePassword, toggleActive, deleteUser)
  • Routes sftp (testConnection, exportInvoices)
  • Routes importLogs (getByUser)
  • Routes llmLogs (getBySourceFile, getByInvoice)

Phase 6: Pages Frontend

  • Page Login avec formulaire local + bouton Azure AD
  • Page Dashboard avec statistiques et graphiques
  • Page Upload avec drag-and-drop et suivi temps réel
  • Page Invoices avec liste, recherche, filtres, pagination
  • Page Settings avec configuration LLM, keywords, SFTP
  • Page History avec logs et détails
  • Page Users (admin) pour gestion des utilisateurs
  • Layout avec navigation adaptée (DashboardLayout)
  • Configuration des routes dans App.tsx

Phase 7: Tests et finalisation

  • Tests unitaires d'authentification (hashPassword, verifyPassword, JWT)
  • Tests de logout avec cookies multiples
  • Vérification du build et de la compilation TypeScript
  • Vérification du serveur de développement
  • Créer le checkpoint final

Corrections et améliorations

  • Créer un utilisateur administrateur avec login adminServFacturation

  • Tester la connexion locale avec le nouvel utilisateur

  • Modifier l'email de l'administrateur de adminServFacturation à o.pareige@itinova.org

  • Diagnostiquer le problème de connexion locale avec o.pareige@itinova.org

  • Corriger l'authentification locale (ajout support cookie auth_token)