Goal
The admin shell, admin landing, and settings page are fully built. Admins can edit dates, toggle show-decision, and edit the form config from the UI. Mocks return success, real persistence comes later.
Tasks
Admin layout
AdminSidebar
Admin landing page
Settings page
DateControl component
ShowDecisionToggle component
FormConfigEditor component
Styling
Definition of done
Goal
The admin shell, admin landing, and settings page are fully built. Admins can edit dates, toggle show-decision, and edit the form config from the UI. Mocks return success, real persistence comes later.
Tasks
Admin layout
src/app/(admin)/layout.tsx: full admin shell withAdminSidebaron the left, header withUserMenuon the right, content area in the middle.requireAdmin()comes in the backend sprint).AdminSidebar
/admin,/admin/settings,/admin/applicants,/admin/stats.Admin landing page
/adminpage: tile grid linking to Settings, Applicants, Stats with brief descriptions of each./adminsee a navigation hub instead of an empty page.Settings page
/admin/settings: organized into three sections — "Dates," "Display," "Form Configuration."DateControlinstances (one per date singleton) in the Dates section.ShowDecisionTogglein the Display section.FormConfigEditorin the Form Configuration section.DateControl component
GETresponse.POSTendpoint, shows loading state, toast on success/error.ShowDecisionToggle component
POST /api/v1/show-decision. Optimistic update with rollback on error.FormConfigEditor component
Styling
Definition of done
/adminand/admin/settingsare fully styled and navigable.