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¶
- Authentification utilisateur (Supabase)
- Navigation sécurisée (App Router)
- Appels API internes (Next.js) et externes (Strava, Stripe)
- Gestion d’état via context/providers
- 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.typepeut 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