Skip to content

mobby57/memoLib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

552 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 MemoLib - Système de Gestion d'Emails pour Cabinets d'Avocats

.NET License Status Tests

🎯 Qu'est-ce que MemoLib ?

MemoLib est un système intelligent de gestion des communications par email spécialement conçu pour les cabinets d'avocats et professionnels du droit.

💡 Le Problème

Les cabinets d'avocats reçoivent des dizaines d'emails clients par jour. Gérer manuellement ces communications est:

  • Chronophage - Tri, classement, extraction d'infos
  • 🔍 Risqué - Emails perdus, oubliés ou mal classés
  • 📊 Inefficace - Pas de vue d'ensemble, pas de statistiques
  • 👥 Isolé - Difficile de collaborer en équipe

✨ La Solution MemoLib

MemoLib automatise tout le workflow de gestion des emails clients:

  1. 📧 Réception Automatique

    • Connecté à votre Gmail via IMAP
    • Scan automatique toutes les 60 secondes
    • Détection des nouveaux emails clients
  2. 🤖 Extraction Intelligente

    • Détecte automatiquement le nom du client
    • Extrait téléphone, adresse, email
    • Identifie les doublons
  3. 📁 Création de Dossiers

    • Créez un dossier en 1 clic depuis l'email
    • Infos client pré-remplies automatiquement
    • Historique complet des échanges
  4. ⚙️ Workflow Complet

    • Statuts: OUVERT → EN COURS → FERMÉ
    • Tags personnalisables (urgent, famille, divorce...)
    • Priorités et échéances
    • Attribution à des avocats
  5. 🔔 Notifications Automatiques

    • Nouvel email reçu
    • Changement de statut
    • Échéance approchant
    • Commentaires d'équipe
  6. 📊 Analytics & Reporting

    • Dashboard avec statistiques
    • Emails par jour/semaine/mois
    • Temps de réponse moyen
    • Dossiers par statut

🎯 Pour Qui ?

  • ⚖️ Cabinets d'avocats (1-50 avocats)
  • 📜 Notaires
  • 🏛️ Huissiers de justice
  • 💼 Experts juridiques
  • 🏢 PME juridiques

💰 Coût

  • Gratuit en local (0€/mois)
  • ~50-100€/mois sur Azure (optionnel, pour multi-sites)

🚀 Démarrage Rapide

# 1. Cloner
git clone https://github.com/VOTRE_USERNAME/MemoLib.git
cd MemoLib/MemoLib.Api

# 2. Restaurer
.\restore-project.ps1

# 3. Lancer
dotnet run

Accès: http://localhost:5078/demo.html


✨ Fonctionnalités Principales

📧 Gestion Emails

  • Monitoring automatique Gmail (IMAP) - Scan toutes les 60 secondes
  • Scan manuel de tous les emails existants
  • Détection automatique des doublons (par ID et contenu)
  • Extraction automatique des informations clients (téléphone, adresse)
  • Envoi d'emails depuis l'application (SMTP)
  • Templates réutilisables avec variables dynamiques
  • Pièces jointes - Upload/download sécurisé

📁 Gestion Dossiers

  • Création manuelle avec extraction auto des coordonnées
  • Workflow de statut (OPEN → IN_PROGRESS → CLOSED)
  • Attribution à des avocats spécifiques
  • Tags et catégorisation flexible
  • Priorités (0-5) et échéances
  • Filtres avancés multi-critères
  • Timeline complète par dossier avec tous les événements
  • Fusion intelligente des doublons
  • Notifications automatiques sur changements d'état

👥 Gestion Clients

  • Création manuelle avec suggestions depuis emails
  • Extraction auto des coordonnées (regex intelligent)
  • Vue 360° client avec historique complet
  • Détection de doublons par email
  • Édition en ligne des informations
  • Règles métier (normalisation, VIP)

🔍 Recherche Intelligente

  • Recherche textuelle classique
  • Recherche par embeddings (similarité vectorielle)
  • Recherche sémantique IA (compréhension du contexte)
  • Regroupement automatique des doublons
  • Filtres combinés (statut + tag + priorité)

📊 Analytics & Monitoring

  • Dashboard intelligent avec vue d'ensemble
  • Statistiques complètes (emails/jour, types, sévérité)
  • Centre d'anomalies centralisé
  • Journal d'audit complet de toutes les actions
  • Notifications en temps réel
  • Alertes pour emails nécessitant attention

🛠️ Stack Technique

Backend

  • Framework: ASP.NET Core 9.0
  • ORM: Entity Framework Core 9.0
  • Base de données: SQLite (production-ready)
  • Email: MailKit 4.15.0 (IMAP/SMTP)
  • Authentification: JWT Bearer avec BCrypt
  • Validation: FluentValidation

Frontend

  • Interface: HTML5/CSS3/JavaScript ES6+
  • Design: Responsive, mobile-friendly
  • PWA: Installable sur desktop/mobile

Sécurité

  • Hashing: BCrypt pour mots de passe
  • Secrets: User Secrets (hors du code)
  • Isolation: Multi-tenant par utilisateur
  • Audit: Traçabilité complète

📦 Installation Rapide

Prérequis

Installation en 3 Commandes

# 1. Cloner le projet
git clone https://github.com/VOTRE_USERNAME/MemoLib.git
cd MemoLib/MemoLib.Api

# 2. Restaurer automatiquement (packages + DB + secrets)
.\restore-project.ps1

# 3. Lancer l'application
dotnet run

🌐 Accès:

Installation Manuelle

# Restaurer les packages
dotnet restore

# Créer la base de données
dotnet ef database update

# Configurer le mot de passe email
dotnet user-secrets set "EmailMonitor:Password" "votre-mot-de-passe-app"

# Compiler
dotnet build

# Lancer
dotnet run

⚙️ Configuration

Gmail IMAP

  1. Activez la validation en 2 étapes sur votre compte Gmail
  2. Créez un mot de passe d'application: https://myaccount.google.com/apppasswords
  3. Configurez dans appsettings.json:
{
  "EmailMonitor": {
    "Enabled": true,
    "ImapHost": "imap.gmail.com",
    "ImapPort": 993,
    "Username": "[email protected]",
    "IntervalSeconds": 60
  }
}
  1. Stockez le mot de passe de manière sécurisée:
dotnet user-secrets set "EmailMonitor:Password" "votre-mot-de-passe-application"

📚 Documentation

🏗️ Architecture & Standards

📊 Diagrammes Architecture ⭐

📋 Fonctionnalités

🧪 Tests & Scénarios

🧪 Test E2E Onboarding

Le flux complet onboarding (inscription utilisateur test, login, création template, invitation client, formulaire public, soumission avec participants) est automatisé via:

npm run api:e2e:onboarding

Forcer une URL API précise:

npm run api:e2e:onboarding:base -- -u http://localhost:5078

Prérequis:

  • API démarrée localement sur http://localhost:8091
  • Base de données accessible et migrations appliquées

Script utilisé:

  • scripts/e2e-onboarding.ps1

🔐 Sécurité

  • ✅ Authentification JWT obligatoire
  • ✅ Mots de passe hashés (BCrypt)
  • ✅ Secrets stockés hors du code
  • ✅ Isolation par utilisateur
  • ✅ Validation des entrées
  • ✅ Audit complet des actions

📊 API Endpoints

Authentification

POST /api/auth/register
POST /api/auth/login

Dossiers

GET    /api/cases
POST   /api/cases
GET    /api/cases/{id}
GET    /api/cases/{id}/timeline
PATCH  /api/cases/{id}/status
PATCH  /api/cases/{id}/assign
PATCH  /api/cases/{id}/tags
PATCH  /api/cases/{id}/priority
GET    /api/cases/filter

Emails

POST /api/ingest/email
POST /api/email-scan/manual
POST /api/email/send
POST /api/email/templates
GET  /api/email/templates

Clients

GET  /api/client
POST /api/client
GET  /api/client/{id}/detail
PUT  /api/client/{id}

Recherche

POST /api/search/events
POST /api/embeddings/search
POST /api/semantic/search

Pièces Jointes

POST /api/attachment/upload/{eventId}
GET  /api/attachment/{id}
GET  /api/attachment/event/{eventId}

🎯 Workflow Typique

# 1. Email reçu automatiquement
# → Notification envoyée à l'utilisateur
# → Utilisateur crée dossier manuellement
# → Coordonnées extraites automatiquement

# 2. Avocat définit la priorité
PATCH /api/cases/{id}/priority
{ "priority": 5, "dueDate": "2025-06-30" }
# → Notification AUTO envoyée aux collaborateurs

# 3. Ajoute des tags
PATCH /api/cases/{id}/tags
{ "tags": ["urgent", "famille", "divorce"] }
# → Notification AUTO envoyée

# 4. Passe en cours
PATCH /api/cases/{id}/status
{ "status": "IN_PROGRESS" }
# → Notification AUTO changement d'état

# 5. Envoie un email au client
POST /api/email/send
{ "to": "[email protected]", "subject": "...", "body": "..." }

# 6. Clôture le dossier
PATCH /api/cases/{id}/status
{ "status": "CLOSED" }
# → Notification AUTO envoyée à tous

🔄 Sauvegarde & Restauration

Sauvegarder vos Modifications

# Méthode automatique (recommandée)
.\backup-git.ps1
git push

# OU manuellement
git add .
git commit -m "Description des changements"
git push origin main

Restaurer sur un Autre PC

# 1. Cloner depuis GitHub
git clone https://github.com/VOTRE_USERNAME/MemoLib.git
cd MemoLib/MemoLib.Api

# 2. Restaurer automatiquement
.\restore-project.ps1

# 3. Lancer
dotnet run

✅ Le script restore-project.ps1 fait tout automatiquement:

  • Restaure les packages NuGet
  • Crée la base de données
  • Compile le projet
  • Configure les secrets utilisateur

📁 Structure du Projet

MemoLib.Api/
├── Controllers/          # API endpoints
├── Models/              # Entités de données
├── Data/                # DbContext
├── Services/            # Logique métier
├── Migrations/          # Migrations EF Core
├── wwwroot/             # Interface web
│   └── demo.html        # Interface utilisateur
├── appsettings.json     # Configuration
└── Program.cs           # Point d'entrée

🚀 Déploiement

Local (Développement)

dotnet run

Production

Option 1: Local (Recommandé pour PME)

  • ✅ Aucun coût
  • ✅ Contrôle total
  • ✅ Données en local
  • ✅ Performance maximale
# Publier en mode Release
dotnet publish -c Release

# Exécuter
cd bin/Release/net9.0/publish
.\MemoLib.Api.exe

Option 2: Cloud Azure (Optionnel)

Prérequis:

  • Compte Azure
  • Azure CLI installé

Étapes:

  1. Créer une App Service
  2. Remplacer SQLite par Azure SQL Database
  3. Configurer secrets dans Azure Key Vault
  4. Déployer via GitHub Actions

Coût estimé: ~50-100€/mois

⚠️ Note: Azure n'est nécessaire que pour:

  • Accès depuis plusieurs bureaux distants
  • Scalabilité 100+ utilisateurs
  • Haute disponibilité 99.9%

🐛 Dépannage

L'API ne démarre pas

# Vérifier le port
netstat -ano | findstr :5078

# Tuer le processus si nécessaire
taskkill /PID <PID> /F

Erreur de connexion Gmail

  • Vérifiez que la validation en 2 étapes est activée
  • Utilisez un mot de passe d'application (pas votre mot de passe Gmail)
  • Vérifiez que IMAP est activé dans Gmail

Base de données corrompue

# Supprimer et recréer
Remove-Item memolib.db
dotnet ef database update

📝 Licence

MIT License - Libre d'utilisation

👥 Auteur

Développé pour les cabinets d'avocats

🤝 Contribution

Les contributions sont les bienvenues ! Ouvrez une issue ou une pull request.

📞 Support

Pour toute question, consultez la documentation ou ouvrez une issue sur GitHub.

📈 Roadmap

Version 2.0 (Actuelle) ✅

  • Monitoring automatique Gmail
  • Gestion complète dossiers
  • Workflow statut/tags/priorités
  • Templates emails
  • Pièces jointes
  • Recherche intelligente
  • Dashboard analytics
  • Centre anomalies
  • Commentaires avec mentions
  • Notifications temps réel (SignalR)
  • Calendrier intégré
  • Tâches avec dépendances
  • Facturation & suivi temps
  • Recherche full-text globale
  • Webhooks sortants
  • Templates avancés
  • Signatures électroniques
  • Formulaires d'inscription intelligents
  • Espaces partagés multi-participants
  • Design System unifié
  • CI/CD Pipeline (GitHub Actions)

Version 2.1 (Prochaine) 🚧

  • Export PDF/Excel avancé
  • Rapports personnalisés
  • IA classification emails
  • Tests E2E automatisés

Version 3.0 (Future) 💡

  • Application mobile (iOS/Android)
  • Architecture microservices
  • Kubernetes orchestration
  • Redis cache distribué
  • Elasticsearch recherche avancée

🤝 Contribution

Les contributions sont les bienvenues !

  1. Fork le projet
  2. Créez une branche (git checkout -b feature/AmazingFeature)
  3. Commit vos changements (git commit -m 'Add AmazingFeature')
  4. Push vers la branche (git push origin feature/AmazingFeature)
  5. Ouvrez une Pull Request

📄 Licence

MIT License - Libre d'utilisation commerciale et personnelle.

Voir LICENSE pour plus de détails.

👥 Auteurs

Développé pour les cabinets d'avocats et professionnels du droit.

📞 Support

⭐ Star History

Si ce projet vous aide, n'hésitez pas à lui donner une étoile ⭐


📌 Note Importante: Ce projet est 100% local par défaut. Azure n'est nécessaire que pour un déploiement cloud multi-sites.

🎯 Parfait pour: Cabinets d'avocats, notaires, huissiers, experts juridiques, PME juridiques.

💰 Coût: Gratuit en local, ~50-100€/mois sur Azure (optionnel).

About

ia assistant messenger

Resources

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors