Partner Dashboard
Partner-facing UI lives inside the main client app at /partner/*. It is not a separate deployable frontend.
Where it lives
| Piece | Path |
|---|---|
| Router | client/src/components/partner/PartnerApp.js |
| Access control | client/src/components/partner/utils/PartnerRoute.js |
| Restaurant context | client/src/components/partner/contexts/PartnerRestaurantContext.js |
| Page components | client/src/components/partner/pages/ |
| API wrappers | *ApiService.js next to each page (e.g. MenuApiService.js) |
Top-level app route: client/src/App.js → <Route path='/partner' component={PartnerApp} />.
See also Routing & auth — Partner access.
Routes (wired today)
| URL | Page |
|---|---|
/partner | Redirect → /partner/analytics |
/partner/analytics | transactions/AnalyticsPage |
/partner/contests | transactions/ContestsPage |
/partner/menus | pages/menu/MenusPage |
/partner/create-promos | pages/offers/CreatePromosPage |
/partner/manage-promos | pages/offers/ManagePromosPage |
/partner/report-bug | pages/reportBug/ReportBugPage |
Other folders under partner/pages/ (e.g. dashboard/, profile/, FinancePage.js) exist but are not registered in PartnerApp.js unless you add routes there.
API calls
Partner pages call the partner dashboard service with paths like:
/partner_dashboard/restaurant/{id}/.../partner_dashboard/user/restaurants
Auth uses the same Cognito tokens as the consumer app; PartnerRoute gates access before rendering.
- Frontend patterns: API calls — Partner Dashboard
- OpenAPI: Partner Dashboard API
Local dev
- Run the consumer app: Start here (
cd client && npm start). - Start backend partner service:
cd backend && make partner-dashboard-service. - Sign in with a user that has partner permissions (Cognito partner group + restaurant mapping).
- Navigate to
/partner(or/partner/analytics).
Related
- Feature map (consumer + partner): Frontend overview
- Original design note: Partner Dashboard (contributing)