Files
festipod/AGENTS.md
T
Sylvain Duchesne 445a448031 docs: NextGraph multi-user data model — stores, auth matrix, inbox fork plan
Capture the multi-user design exploration as project knowledge + briefs:
- knowledge: NextGraph store types/permissions (+ inbox at protocol, SDK
  exposure, local repo path); integration model (iframe, where the verifier
  runs, generic JS plumbing, ngd stateful, build-time broker target)
- briefs: multi-store refactor; authorization matrix + query inventory +
  derived store partitions; temporary fork to expose the inbox (3 layers:
  SDK fork, Coolify self-hosting, Festipod integration; libs via build:ng)
- fix stale @ng-org versions (alpha.11 -> alpha.13) and a broken
  decision-record link in data-layer.md

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-21 17:38:51 +02:00

3.9 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

Briefs (work not yet started)