# 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.