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.

Local dev

  1. Run the consumer app: Start here (cd client && npm start).
  2. Start backend partner service: cd backend && make partner-dashboard-service.
  3. Sign in with a user that has partner permissions (Cognito partner group + restaurant mapping).
  4. Navigate to /partner (or /partner/analytics).