Base Next.js (App Router) + Tailwind pour l Epic 1:
- US-001: homepage + recherche ville/commerce en base locale
- US-002: pages legales FR
- US-003: disclaimers non-affiliation sur page commerce
npm install
npm run dev- Copier les variables d'environnement:
cp .env.example .env- Demarrer PostgreSQL:
npm run db:upSi le port 5432 est deja utilise, lancer sur un autre port:
POSTGRES_PORT=55432 npm run db:up- Appliquer les migrations Prisma:
npm run prisma:migrate- Generer le client Prisma:
npm run prisma:generateImport complet (full refresh):
npm run import:boulangeries -- --data-dir ./dataOptions:
--nace-version(defaut:2025)--nace-codes(codes/prefixes NACE, separes par virgules)
Codes utilises par defaut:
10.7Fabrication de produits de boulangerie-patisserie et de pates alimentaires10.71Fabrication de pain; fabrication de patisserie fraiche10.712Fabrication artisanale de pain et de patisserie fraiche47.241Commerce de detail de pain et de patisserie (depots)
Exemple:
npm run import:boulangeries -- --data-dir ./data --nace-version 2025 --nace-codes "10.7,10.71,10.712,47.241"Verifications SQL rapides:
SELECT COUNT(*) FROM "Commerce";
SELECT COUNT(*) FROM "ImportRun" WHERE status = 'SUCCESS';
SELECT "establishmentNumber", "slug" FROM "Commerce" LIMIT 20;- Configurer
DATABASE_URLdans.env(adapter le port si besoin):
DATABASE_URL=postgresql://chocolatine:chocolatine@localhost:5432/chocolatine?schema=public- Demarrer l app:
npm run dev- Recherche live disponible via:
- endpoint
GET /api/search?q=...&limit=... - homepage
/(suggestions dynamiques) - pages
/boulangeries/[ville]et/boulangerie/[slug]alimentees depuis PostgreSQL
npm run typecheck
npm run test
npm run test:e2eMettre a jour les placeholders dans:
lib/site-config.ts
//cookies/mentions-legales/politique-confidentialite/gerer-ou-supprimer-cette-fiche/boulangerie/[slug]/boulangeries/[ville]