Skip to main content

Activities Activities Management Admin Creates Edits Archives An Activity

EPIC: activities
Admin · Activities catalog CRUD + activity-gate editor
STORY: activities_management
As an admin, I can create, edit and archive the household activities and gate them behind a chore + token balance so members have a working, unlockable catalog.
AC: admin_creates_edits_archives_an_activity
An admin adds an activity (with a description + free-text category), edits its token cost, then archives it — each write reloads the activity list via the facade.

open the Admin hub and the Manage page (Activities tab)

User Actions:
  • Tapped: widget with text "Profile"
  • Tapped: widget with key [<'MorePage.adminEntry'>]
  • Tapped: widget with key [<'AdminHubPage.manageEntry'>]
  • Tapped: widget with text "Activities"
Expect:
  • AdminGuard admits the admin to /manage
  • Activities tab shows the empty state
Events:
  • [ANALYTIC] [page]: ProfileRoute
  • MoreStarted
  • MoreCurrentMemberChanged
  • [ANALYTIC] [page]: AdminRoute
  • [ANALYTIC] [page]: ManageRoute
  • RewardsStarted
  • ActivitiesStarted
  • ChoresManagementStarted
  • ChoreRequestsManageStarted

add an activity — Trampoline park appears

User Actions:
  • Tapped: widget with key [<'ActivitiesPage.addButton'>]
  • Entered text: Trampoline park
  • Entered text: Jump for an hour
  • Entered text: Outing
  • Entered text: 25
  • Tapped: widget with key [<'ActivityEditor.saveButton'>]
Expect:
  • the new activity appears after the reload
Events:
  • ActivitiesCreated
  • [ANALYTIC] [page_popped]: ManageRoute

edit Trampoline park — bump the token cost to 35

User Actions:
  • Tapped: widget with key [<'ActivitiesPage.activityTile_activity-trampoline'>]
  • Entered text: 35
  • Tapped: widget with key [<'ActivityEditor.saveButton'>]
Expect:
  • the row shows the new token cost after the reload
Events:
  • ActivitiesUpdated
  • [ANALYTIC] [page_popped]: ManageRoute

archive Trampoline park — it shows as archived

User Actions:
  • Tapped: widget with key [<'ActivitiesPage.archiveButton_activity-trampoline'>]
Expect:
  • an archived activity offers a restore affordance
Events:
  • ActivitiesArchived