Karbé — marketplace de location de carbets fluviaux de Guyane
Find a file
Karbé Architect 88a7d01d55 feat(auth): add multi-role NextAuth with role guards
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-29 10:46:54 +00:00
prisma feat(auth): add multi-role NextAuth with role guards 2026-05-29 10:46:54 +00:00
public chore: scaffold Next.js + Prisma + Tailwind 2026-05-29 10:45:59 +00:00
src feat(auth): add multi-role NextAuth with role guards 2026-05-29 10:46:54 +00:00
.env.example chore: scaffold Next.js + Prisma + Tailwind 2026-05-29 10:45:59 +00:00
.gitignore chore: scaffold Next.js + Prisma + Tailwind 2026-05-29 10:45:59 +00:00
AGENTS.md chore: scaffold Next.js + Prisma + Tailwind 2026-05-29 10:45:59 +00:00
CLAUDE.md chore: scaffold Next.js + Prisma + Tailwind 2026-05-29 10:45:59 +00:00
eslint.config.mjs chore: scaffold Next.js + Prisma + Tailwind 2026-05-29 10:45:59 +00:00
LICENSE Initial commit 2026-05-29 03:57:34 +00:00
next.config.ts chore: scaffold Next.js + Prisma + Tailwind 2026-05-29 10:45:59 +00:00
package-lock.json feat(auth): add multi-role NextAuth with role guards 2026-05-29 10:46:54 +00:00
package.json feat(auth): add multi-role NextAuth with role guards 2026-05-29 10:46:54 +00:00
postcss.config.mjs chore: scaffold Next.js + Prisma + Tailwind 2026-05-29 10:45:59 +00:00
prisma.config.ts chore: scaffold Next.js + Prisma + Tailwind 2026-05-29 10:45:59 +00:00
README.md feat(auth): add multi-role NextAuth with role guards 2026-05-29 10:46:54 +00:00
tsconfig.json chore: scaffold Next.js + Prisma + Tailwind 2026-05-29 10:45:59 +00:00

Karbé

Karbé — marketplace de location de carbets fluviaux de Guyane.

Connecter voyageurs et hôtes pour des séjours authentiques le long des fleuves de Guyane, au cœur de la forêt amazonienne.

Stack

Prérequis

  • Node.js >= 20
  • Une base de données PostgreSQL

Installation

  1. Installer les dépendances :

    npm install
    

    Le script postinstall génère automatiquement le client Prisma dans src/generated/prisma.

  2. Configurer les variables d'environnement :

    cp .env.example .env
    

    Puis renseignez DATABASE_URL (connexion PostgreSQL) et NEXTAUTH_SECRET dans le fichier .env.

Développement

npm run dev

L'application est disponible sur http://localhost:3000.

Base de données (Prisma)

Le schéma vit dans prisma/schema.prisma (volontairement minimal pour le moment, les modèles seront ajoutés au fur et à mesure).

# Régénérer le client après une modification du schéma
npx prisma generate

# Créer / appliquer une migration en développement
npx prisma migrate dev

Scripts

Script Description
npm run dev Démarre le serveur de développement
npm run build Build de production
npm run start Démarre le serveur de production
npm run lint Lance ESLint

Authentification multi-rôles (NextAuth)

Implémentation de base disponible avec NextAuth (Credentials):

  • Route d'auth: /api/auth/[...nextauth]
  • Page de connexion: /connexion
  • Contrôle d'accès par rôle côté serveur via requireRole()
  • Exemples de pages protégées:
    • /admin (ADMIN)
    • /espace-hote (OWNER ou ADMIN)

Variables d'environnement à définir:

  • DATABASE_URL
  • NEXTAUTH_SECRET (compatibilité)
  • AUTH_SECRET (recommandé)