Summary
Introduce a persistence layer for passes, guild settings, members, and activity so dashboard changes can survive refreshes and deployments.
Current Behaviour
The dashboard relies on static mock data. Any future create, edit, or activity ingestion flow would be session-only unless backed by storage.
Expected Behaviour
The dashboard should have a storage abstraction that can support mock in-memory data locally and a durable backend store in live deployments.
Suggested Implementation
Define repository interfaces for passes, guild settings, members, and activity. Add an initial adapter for mock data and a production adapter for a selected backend storage option. Keep storage access server-side.
Files or Areas Likely Affected
apps/dashboard/lib/data/
apps/dashboard/lib/repositories/
apps/dashboard/app/api/
apps/dashboard/lib/env.ts
apps/dashboard/app/settings/page.tsx
README.md
Acceptance Criteria
Additional Notes
Do not hard-code one vendor unless maintainers have already chosen it. If storage choice is undecided, implement the interface and mock adapter first, then document the production adapter contract.
Summary
Introduce a persistence layer for passes, guild settings, members, and activity so dashboard changes can survive refreshes and deployments.
Current Behaviour
The dashboard relies on static mock data. Any future create, edit, or activity ingestion flow would be session-only unless backed by storage.
Expected Behaviour
The dashboard should have a storage abstraction that can support mock in-memory data locally and a durable backend store in live deployments.
Suggested Implementation
Define repository interfaces for passes, guild settings, members, and activity. Add an initial adapter for mock data and a production adapter for a selected backend storage option. Keep storage access server-side.
Files or Areas Likely Affected
apps/dashboard/lib/data/apps/dashboard/lib/repositories/apps/dashboard/app/api/apps/dashboard/lib/env.tsapps/dashboard/app/settings/page.tsxREADME.mdAcceptance Criteria
Additional Notes
Do not hard-code one vendor unless maintainers have already chosen it. If storage choice is undecided, implement the interface and mock adapter first, then document the production adapter contract.