108 lines
3.1 KiB
Markdown
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.
|