Ce système permet aux avocats de :
- Créer des formulaires d'inscription personnalisés pour chaque type de dossier
- Demander des pièces jointes spécifiques aux clients
- Créer des espaces partagés avec tous les participants (juge, avocat, secrétaire, client, expert)
- Suivre l'état du projet en temps réel
- Adapter les formulaires selon les besoins
POST /api/intake/forms
Authorization: Bearer {token}
Content-Type: application/json
{
"name": "Formulaire Divorce",
"description": "Formulaire pour les dossiers de divorce",
"fields": [
{
"label": "Nom complet",
"type": "text",
"required": true,
"order": 0
},
{
"label": "Email",
"type": "email",
"required": true,
"order": 1
},
{
"label": "Téléphone",
"type": "phone",
"required": true,
"order": 2
},
{
"label": "Date de mariage",
"type": "text",
"required": true,
"order": 3
}
],
"requiredDocuments": [
"Pièce d'identité",
"Acte de mariage",
"Justificatif de domicile",
"Contrat de mariage (si applicable)"
]
}Réponse:
{
"id": "guid-du-formulaire",
"name": "Formulaire Divorce",
"description": "Formulaire pour les dossiers de divorce",
"fields": [...],
"requiredDocuments": [...],
"isActive": true,
"createdAt": "2025-03-01T19:55:00Z"
}text- Texte libreemail- Email validéphone- Numéro de téléphonefile- Upload de fichierselect- Liste déroulantecheckbox- Case à cocher
GET /api/intake/forms
Authorization: Bearer {token}GET /api/intake/forms/{formId}Note: Pas d'authentification requise - permet aux clients de voir le formulaire
POST /api/intake/submit
Content-Type: application/json
{
"formId": "guid-du-formulaire",
"clientEmail": "[email protected]",
"clientName": "Jean Dupont",
"formData": {
"nom_complet": "Jean Dupont",
"email": "[email protected]",
"telephone": "+33612345678",
"date_mariage": "15/06/2010"
},
"uploadedDocumentIds": [
"guid-doc-1",
"guid-doc-2",
"guid-doc-3"
],
"status": "PENDING"
}Réponse:
{
"message": "Formulaire soumis avec succès",
"submissionId": "guid-de-la-soumission"
}GET /api/intake/submissions/pending
Authorization: Bearer {token}POST /api/workspace/create
Authorization: Bearer {token}
Content-Type: application/json
{
"caseId": "guid-du-dossier",
"name": "Dossier Dupont - Divorce",
"participants": [
{
"email": "[email protected]",
"name": "Jean Dupont",
"role": "VIEWER",
"participantType": "CLIENT"
},
{
"email": "[email protected]",
"name": "Maître Martin",
"role": "OWNER",
"participantType": "LAWYER"
},
{
"email": "[email protected]",
"name": "Juge Lefebvre",
"role": "VIEWER",
"participantType": "JUDGE"
},
{
"email": "[email protected]",
"name": "Marie Secrétaire",
"role": "EDITOR",
"participantType": "SECRETARY"
},
{
"email": "[email protected]",
"name": "Expert Comptable",
"role": "EDITOR",
"participantType": "EXPERT"
}
]
}Types de Participants:
CLIENT- Client du cabinetLAWYER- AvocatJUDGE- JugeSECRETARY- SecrétaireEXPERT- Expert (comptable, médical, etc.)
Rôles d'Accès:
OWNER- Propriétaire (tous les droits)EDITOR- Éditeur (peut ajouter/modifier)VIEWER- Lecteur (lecture seule)
GET /api/workspace/case/{caseId}
Authorization: Bearer {token}POST /api/workspace/{workspaceId}/documents
Authorization: Bearer {token}
Content-Type: application/json
{
"fileName": "contrat_mariage.pdf",
"filePath": "/uploads/contrat_mariage.pdf",
"fileSize": 245678,
"uploadedBy": "[email protected]",
"category": "CONTRACT",
"visibleToRoles": ["LAWYER", "CLIENT"]
}Catégories de Documents:
GENERAL- Document généralEVIDENCE- PreuveCONTRACT- ContratCOURT_FILING- Dépôt au tribunal
GET /api/workspace/{workspaceId}/documents?role=LAWYER
Authorization: Bearer {token}Note: Les documents sont filtrés selon le rôle de l'utilisateur
GET /api/workspace/{workspaceId}/activities
Authorization: Bearer {token}Réponse:
[
{
"id": "guid",
"workspaceId": "guid",
"actorEmail": "[email protected]",
"actorName": "Maître Martin",
"action": "DOCUMENT_UPLOADED",
"details": "Uploaded contrat_mariage.pdf",
"occurredAt": "2025-03-01T20:00:00Z"
},
{
"id": "guid",
"workspaceId": "guid",
"actorEmail": "[email protected]",
"actorName": "Jean Dupont",
"action": "COMMENT_ADDED",
"details": "Ajouté un commentaire sur le document",
"occurredAt": "2025-03-01T19:45:00Z"
}
]POST /api/workspace/{workspaceId}/activity
Authorization: Bearer {token}
Content-Type: application/json
{
"actorEmail": "[email protected]",
"actorName": "Maître Martin",
"action": "STATUS_CHANGED",
"details": "Dossier passé en phase de négociation"
}Actions Typiques:
DOCUMENT_UPLOADED- Document uploadéCOMMENT_ADDED- Commentaire ajoutéSTATUS_CHANGED- Statut changéPARTICIPANT_ADDED- Participant ajoutéDEADLINE_SET- Échéance définie
http://localhost:5078/intake-forms.html
- Nom et description du formulaire
- Ajout de champs dynamiques
- Configuration des champs (label, type, obligatoire)
- Liste des documents requis
- Sauvegarde du formulaire
- Liste des soumissions en attente
- Détails de chaque soumission
- Statut (PENDING, REVIEWED, APPROVED)
- Actions (approuver, rejeter)
- Création d'espace pour un dossier
- Ajout de participants avec rôles
- Visualisation des participants
- Gestion des documents
- Journal d'activité
POST /api/intake/forms
{
"name": "Formulaire Divorce",
"fields": [...],
"requiredDocuments": ["Pièce d'identité", "Acte de mariage", ...]
}Lien: http://localhost:5078/form/{formId}
POST /api/intake/submit
{
"formId": "...",
"clientEmail": "[email protected]",
"formData": {...},
"uploadedDocumentIds": [...]
}GET /api/intake/submissions/pending
// Retourne la nouvelle soumissionPOST /api/cases
{
"title": "Divorce Dupont",
"clientId": "..."
}POST /api/workspace/create
{
"caseId": "...",
"name": "Dossier Dupont - Divorce",
"participants": [
{ "email": "client@...", "participantType": "CLIENT", "role": "VIEWER" },
{ "email": "avocat@...", "participantType": "LAWYER", "role": "OWNER" },
{ "email": "juge@...", "participantType": "JUDGE", "role": "VIEWER" }
]
}- Upload de documents
- Commentaires
- Changements de statut
- Échéances
- Activités en temps réel
- JWT Bearer token requis pour toutes les opérations (sauf soumission publique)
- Token valide 24h
- Seul le propriétaire du formulaire peut voir les soumissions
- Seuls les participants d'un workspace peuvent y accéder
- Documents filtrés selon les rôles
- Chaque utilisateur ne voit que ses propres formulaires
- Workspaces isolés par dossier
- Audit complet de toutes les actions
{
"name": "Formulaire Divorce",
"fields": [
{ "label": "Nom complet", "type": "text", "required": true },
{ "label": "Date de mariage", "type": "text", "required": true },
{ "label": "Enfants", "type": "select", "options": ["Oui", "Non"], "required": true },
{ "label": "Régime matrimonial", "type": "text", "required": false }
],
"requiredDocuments": [
"Pièce d'identité",
"Acte de mariage",
"Livret de famille",
"Contrat de mariage"
]
}{
"name": "Formulaire Succession",
"fields": [
{ "label": "Nom du défunt", "type": "text", "required": true },
{ "label": "Date de décès", "type": "text", "required": true },
{ "label": "Lien de parenté", "type": "select", "options": ["Conjoint", "Enfant", "Parent", "Autre"], "required": true }
],
"requiredDocuments": [
"Acte de décès",
"Livret de famille",
"Testament (si existant)",
"Relevés bancaires"
]
}{
"name": "Formulaire Achat Immobilier",
"fields": [
{ "label": "Type de bien", "type": "select", "options": ["Appartement", "Maison", "Terrain"], "required": true },
{ "label": "Adresse du bien", "type": "text", "required": true },
{ "label": "Prix d'achat", "type": "text", "required": true }
],
"requiredDocuments": [
"Compromis de vente",
"Diagnostics immobiliers",
"Justificatif de financement"
]
}✅ Formulaires personnalisés par type de dossier
✅ Collecte automatique des informations
✅ Documents requis clairement définis
✅ Gain de temps sur la prise de contact
✅ Suivi centralisé de tous les participants
✅ Formulaire clair et guidé
✅ Liste précise des documents à fournir
✅ Soumission en ligne 24/7
✅ Suivi de l'avancement du dossier
✅ Communication transparente
✅ Espace partagé unique
✅ Visibilité en temps réel
✅ Documents centralisés
✅ Journal d'activité complet
✅ Collaboration facilitée
cd MemoLib.Api
dotnet runhttp://localhost:5078/intake-forms.html
- Cliquez sur "Créer Formulaire"
- Ajoutez des champs
- Ajoutez des documents requis
- Sauvegardez
- Cliquez sur "Espace Partagé"
- Entrez l'ID du dossier
- Ajoutez les participants
- Créez l'espace
Pour toute question ou problème, consultez la documentation principale ou ouvrez une issue sur GitHub.
Bon usage ! 🎉