Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3.4 KiB
Festipod
Mobile-first web app for discovering and sharing festival/event recommendations through trusted networks.
Architecture
Feature-based: code organized by business domain, not technical layer. See architecture.
src/modules/{event,user,home,auth,workshop,meeting,notification}/
src/shared/ # Components, context, data — importable by all modules
src/app/ # App shell (router, providers, entry point)
src/screens/index.ts # Screen registry (used by Storybook)
Routing
Path-based routing with History API (custom router in src/app/router.tsx).
| Path | Screen |
|---|---|
/ |
WelcomeScreen |
/login |
LoginScreen |
/home |
HomeScreen |
/events |
EventsScreen |
/events/new |
CreateEventScreen |
/events/:id |
EventDetailScreen |
/events/:id/edit |
UpdateEventScreen |
/events/:id/invite |
InviteScreen |
/events/:id/participants |
ParticipantsListScreen |
/events/:id/meeting-points |
MeetingPointsScreen |
/profile |
ProfileScreen |
/profile/edit |
UpdateProfileScreen |
/profile/friends |
FriendsListScreen |
/profile/share |
ShareProfileScreen |
/users/:id |
UserProfileScreen |
/settings |
SettingsScreen |
Screens use useNavigate() and useParams() hooks from the router — no prop drilling.
Data Layer
NextGraph (P2P/local-first) with SHEX shapes and ORM. See data-layer.
BDD Testing
Multi-layer Cucumber/Gherkin in French. See bdd-testing for the setup and test-layer-contracts for what each layer is allowed to test.
@ui scenarios render screens in-process (happy-dom + seed data) and assert on the DOM. @data scenarios test data operations through the real NextGraph broker. @e2e scenarios test the real app UI in the broker iframe. See data-layer-testing.
Quick Start
bun run dev # Dev server with HMR (port 3000)
bun run build # Production build to dist/
bun run storybook # Browse screens and components
bun run test:cucumber # Run all BDD tests
bun run features:parse # Regenerate features.ts from .feature files
bun run steps:extract # Extract step definitions for tooltips
bun run build:orm # Regenerate ORM from SHEX shapes
Documentation
- Architecture — module structure, import rules, app shell
- Data Layer — NextGraph, shapes, context, seed data
- BDD Testing — Cucumber setup, step layers, feature files
- Test Layer Contracts — what each of
@ui/@data/@e2eis allowed to test - Screens — screen inventory, registry, sketchy components
- Data-Layer Testing — real broker testing, wallet setup, Playwright harness, e2e layer
Briefs (work not yet started)
- Multi-store refactor — passer du mono-store actuel à une structure de Group stores par communauté/event/RDV (prérequis multi-user)
- Matrice d'autorisations et requêtes — analyse qui doit guider la structure de stores cible