7099c817db5e6821a7f6fb238dac0e836ab5c232
Refactor FestipodDataContext to use only the useShape ORM API: - Remove ng.sparql_update, sessionPromise, ensureGraphNuri imports - Use privateNuri (useShape scope) directly as @graph for adds - Create/join are now synchronous (no async wrapper needed) - Leave uses ngSet.delete() — known limitation: doesn't persist (@wip) Add event lifecycle e2e scenarios (cycle-de-vie-evenement.feature): - Create event via form and verify on home screen - Created event persists after reconnexion - Consult event detail from home - Join an event - Modify event location and verify - Leave + persistence tagged @wip (ngSet.delete doesn't persist) Fix DemoMode external navigation: sync initialScreenId prop changes to internal state via useEffect (was ignored after first mount). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Festipod
A prototyping tool for the Festipod mobile app - an event discovery and networking platform.
What's Inside
- Mobile App Mockups - 13 interactive screens with hand-drawn "sketchy" UI
- User Stories - 26 stories across 5 categories (Events, Workshops, Users, Meetings, Notifications)
- BDD Specifications - Cucumber feature files in French with test integration
Quick Start
bun install
bun run dev
Navigation
| Page | Route | Description |
|---|---|---|
| Gallery | #/ |
Browse all mockup screens |
| Demo | #/demo/{screen} |
Interactive screen preview |
| Stories | #/stories |
User stories browser |
| Specs | #/specs |
BDD specifications with test status |
Commands
bun run dev # Start dev server with HMR
bun run test:cucumber # Run Cucumber tests
bun run features:parse # Regenerate features from .feature files
bun run steps:extract # Extract step definitions
Documentation
See docs/ for detailed documentation:
- Festipod App - Mobile app design
- Prototyping Tool - Web app architecture
- Cucumber Integration - BDD testing setup
Description
Languages
TypeScript
90.8%
Gherkin
6.3%
CSS
1.9%
Shell
0.8%
HTML
0.1%