Skip to content

Architecture technique de Bécik

Vue d'ensemble

  • Framework : Next.js (App Router, TypeScript)
  • Monorepo : pnpm workspaces
  • UI : Tailwind CSS, shadcn/ui
  • Auth : Supabase
  • Intégrations : Strava API, Stripe, Supabase Storage

Structure des dossiers principaux

  • /src/app/ : Pages, routes, API (App Router)
  • /src/components/ : Composants réutilisables, organisés par feature
  • /src/lib/ : Fonctions utilitaires, intégrations externes
  • /src/types/ : Types TypeScript partagés
  • /supabase/ : Config, migrations, seed
  • /docs/ : Documentation technique et communication

Flux principal

  1. Authentification utilisateur (Supabase)
  2. Navigation sécurisée (App Router)
  3. Appels API internes (Next.js) et externes (Strava, Stripe)
  4. Gestion d’état via context/providers
  5. Rendu UI dynamique (SSR/CSR)

Notifications (in-app inbox)

  • Inbox (cloche) : table public.notification_logs (lecture via API Next.js).
  • Push web : table public.push_subscriptions + envoi via service worker.
  • Attention au drift Supabase : une contrainte trop stricte sur notification_logs.type peut empêcher l’écriture en inbox.

Points d’extension

  • Ajout de pages : /src/app/{page}/page.tsx
  • Ajout d’API : /src/app/api/{feature}/route.ts
  • Ajout de composants : /src/components/{feature}/

Voir aussi : README.md