Plateforme d'analyses sportives par des experts vérifiés.
- Frontend : Next.js 16 (App Router + Server Components), React 19, Tailwind v4, TypeScript 5
- Backend : Express 5, Prisma 7, PostgreSQL, TypeScript 6
- Auth : Magic-link (Resend), session cookies httpOnly + CSRF double-submit
- Paiements : Stripe Checkout (day pass + abonnement mensuel + candidature expert quarterly)
- Logs : pino structuré, masquage PII (emails)
plarya/
├── frontend/ Next.js — UI utilisateur
└── backend/ Express + Prisma — API REST + webhooks Stripe
- Cloner le repo
- Installer Postgres local sur
:5432, créer une DBplarya - Backend :
cd backend cp .env.example .env # renseigner DATABASE_URL + Stripe + Resend npm install npx prisma migrate dev npm run db:seed npm run dev # port 4000
- Frontend (dans un autre terminal) :
cd frontend cp .env.example .env.local npm install npm run dev # port 3000
- (Optionnel) Pour tester les webhooks Stripe en local :
stripe listen --forward-to localhost:4000/webhooks/stripe
Voir frontend/.env.example et backend/.env.example.
- Linting : ESLint (frontend uniquement,
npm run lint) - Formatting : Prettier partagé via
.prettierrcà la racine —npx prettier --write .ounpm run formatdans chaque package - Type-checking :
npx tsc --noEmitcôté frontend et backend - Dependabot : PRs hebdomadaires groupées (cf.
.github/dependabot.yml)
Repo public à des fins de portfolio dev — utilisation, reproduction ou réutilisation du code soumise à autorisation préalable.