Problem
There is no settings page for admins to configure hub-wide settings (name, hours, timezone, tax rate). Without this UI, hub operators must hard-code configuration or contact developers to make basic customisations.
Proposed Solution
Create frontend/app/admin/settings/page.tsx as a settings form that reads from and writes to the GET/PATCH /hub-settings endpoints (implemented in GF-BE-03).
Page sections:
- Basic Info — Hub Name, Description, Contact Email, Contact Phone, Logo (image upload via existing Cloudinary integration)
- Business Hours — A per-day grid (Monday–Sunday) with a toggle (open/closed) and time inputs (open time, close time) for each day
- Address — Full address text field
- Tax & Currency — Tax Rate (percentage input), Currency (read-only display showing "NGN")
- Timezone — Dropdown of common African/global timezones
Each section has its own Save button (or one global Save at the bottom). Show a success toast on save and display validation errors inline.
Acceptance Criteria
Depends on: [GF-BE-03] Build hub settings backend module (name, hours, timezone, tax rate)
Problem
There is no settings page for admins to configure hub-wide settings (name, hours, timezone, tax rate). Without this UI, hub operators must hard-code configuration or contact developers to make basic customisations.
Proposed Solution
Create
frontend/app/admin/settings/page.tsxas a settings form that reads from and writes to theGET/PATCH /hub-settingsendpoints (implemented in GF-BE-03).Page sections:
Each section has its own Save button (or one global Save at the bottom). Show a success toast on save and display validation errors inline.
Acceptance Criteria
frontend/app/admin/settings/page.tsxcreated and accessible via/admin/settingsGET /hub-settingson load and pre-populates the formPATCH /hub-settingsand shows a success or error toast