Application web communautaire pour découvrir et partager les lieux pet-friendly de la région bordelaise : carte interactive, ajout de lieux, profils utilisateurs, avis et modération.
| Couche | Technologie |
|---|---|
| Framework | Next.js 16 (App Router, Turbopack) |
| Langage | TypeScript 6 |
| Frontend | React 19, Tailwind CSS 4, shadcn/ui (base-ui, lucide) |
| Carte | Mapbox GL JS 3 |
| Auth | Auth.js v5 (NextAuth, Credentials + JWT) |
| ORM | Prisma 7 + @prisma/adapter-pg |
| Base de données | PostgreSQL 16 (Prisma Postgres) |
| Tests | Jest 30, React Testing Library |
| Conteneurisation | Docker, publication automatique sur GHCR |
| CI/CD | GitHub Actions (lint + gitleaks + typecheck/build/test) |
- Carte interactive des lieux pet-friendly autour de Bordeaux
- Recherche et barre latérale listant les lieux
- Ajout de lieux via formulaire flottant (utilisateur connecté)
- Profil utilisateur : édition des infos, liste des lieux soumis, liste des avis laissés
- Système d'avis : notation + commentaire par lieu
- Espace admin (rôle
ADMIN) : modération des lieux et avis - Authentification par e-mail / mot de passe (NextAuth + bcrypt)
- Node.js ≥ 24
- Docker & Docker Compose (option recommandée pour la base)
- Un token public Mapbox (créer un compte)
git clone https://github.com/Periicles/petfriendlylocator.git
cd petfriendlylocator
cp .env.example .envRenseigne ensuite les variables dans .env — voir .env.example pour la liste complète (Postgres, DATABASE_URL, AUTH_SECRET, NEXT_PUBLIC_MAPBOX_TOKEN).
docker compose up --buildL'application est disponible sur http://localhost:3000, la base PostgreSQL sur le port 5432.
npm install
npm run generate # prisma generate
npm run migrate # prisma migrate dev
npm run dev| Script | Description |
|---|---|
npm run dev |
Serveur de dev Next.js (Turbopack) |
npm run build |
Build de production |
npm start |
Lance le build de production |
npm run lint / lint:fix |
ESLint (zéro warning toléré en CI) |
npm run generate |
prisma generate |
npm run migrate |
prisma migrate dev --name init |
npm run seed |
Compile et exécute prisma/seed.ts |
npm test |
Lance Jest (21 suites, 160 tests) |
npm run clean |
Supprime node_modules, .next, dist, prisma/migrations |
- Architecture — arborescence, flux d'auth, modèle de données, CI/CD
- API — référence complète des routes REST
- Tests — configuration Jest dual-environment, couverture
- Contribuer — workflow git, conventions, checks locaux
- Changelog — historique des versions
Projet open source. Voir le fichier LICENSE (à venir).