portail-associations/exports/annuaires-integration-20260605/README.md

108 lines
3.1 KiB
Markdown

# Export annuaires CCDS + associations
Ce dossier contient les fichiers principaux pour réintégrer dans un autre projet :
- l'annuaire public des associations
- la carte publique des associations
- la fiche publique d'une association
- l'annuaire interne CCDS
## Fichiers inclus
### Frontend
- `client/src/components/CCDSInternalDirectory.tsx`
- `client/src/components/AssociationPublicMap.tsx`
- `client/src/pages/AssociationDirectoryPortal.tsx`
- `client/src/pages/AssociationMapPublic.tsx`
- `client/src/pages/AssociationPublicProfile.tsx`
### Shared
- `shared/associationCommunes.ts`
- `shared/associationGeo.ts`
- `shared/associationThematics.ts`
### Backend
- `server/associationDirectory.ts`
- `server/associationDirectoryMatcher.ts`
- `server/associationGeo.ts`
- `server/associationHelloAssoSync.ts`
## Routes utilisées dans le portail actuel
- `/associations`
- `/associations/carte`
- `/associations/:id`
- `/admin?tab=ccds-directory`
## Dépendances à rebrancher dans l'autre projet
### Frontend
Les pages exportées utilisent déjà ces dépendances du portail actuel :
- `wouter`
- `sonner`
- `lucide-react`
- composants UI locaux (`Button`, `Card`, `Badge`, `Input`, `Select`, `Accordion`, etc.)
- `trpc` côté client via `@/lib/trpc`
- `useAuth` via `@/_core/hooks/useAuth`
### Backend / API
L'annuaire des associations dépend des procédures `associationDirectory` dans `server/routers.ts`.
Les pages publiques consomment surtout :
- `associationDirectory.listPortal`
- `associationDirectory.listMap`
- `associationDirectory.getMapEntry`
L'admin / bordereau consomme aussi :
- `associationDirectory.getSummary`
- `associationDirectory.listLatest`
- `associationDirectory.getById`
- `associationDirectory.listReviewQueue`
- `associationDirectory.createManual`
- `associationDirectory.updateManual`
- `associationDirectory.setManualCoordinates`
- `associationDirectory.syncExternalData`
- `associationDirectory.syncExternalDataBatch`
- `associationDirectory.syncReferenceData`
- `associationDirectory.syncHelloAssoById`
- `associationDirectory.syncHelloAssoBatch`
- `associationDirectory.resolveReviewLink`
- `associationDirectory.ignoreReview`
- `associationDirectory.previewImport`
- `associationDirectory.importWorkbook`
## Important
Le fichier `server/routers.ts` n'est pas recopié ici car il est très large dans ce projet.
Dans ton autre projet, il faudra soit :
1. recopier la section `associationDirectory: router({...})` depuis `server/routers.ts`
2. soit reconnecter ces composants/pages à ton propre backend
## Fichier archive prêt à copier
Une archive a aussi été générée ici :
- `/Users/selecta/Documents/portail-associations/exports/annuaires-integration-20260605.tar.gz`
## Conseil pratique
Si tu veux une intégration rapide dans un autre projet React :
1. copie d'abord les fichiers `client/src/...`
2. copie ensuite les fichiers `shared/...`
3. rebranche les appels API
4. termine par les services backend `server/...`
Si tu veux, je peux faire la suite utile :
- te préparer un **pack encore plus propre et autonome**
- ou te faire une **version “drop-in”** pour un autre projet React / Vite / Wouter.