Skip to content

M5 — Staff / Admin parity & cutover ​

Route parity (staff App.js → unified Admin) ​

Staff pathUnified AdminNotes
/ (home)/dashboardRootHome redirects logged-in users
/plan/saas/subscriptionLegacy redirect (staff subscription page)
/follow-ups/crmSame as staff app
/calendar/dashboardPlaceholder
/marquee/marqueeAdded (was only /headline in Admin)
/reciept/receiptTypo redirect
/department/departmentsAlready present
All other staff routesSame path in AdminVerified via route list compare

Admin is a superset (SaaS, portal, super-admin, complaints, etc.). No staff-only page components missing except legacy aliases above.

Cutover checklist ​

0. Environment (before build) ​

SurfaceFileNotes
Unified appAdmin/.env.example → .envREACT_APP_LINK must point at production API before npm run build --prefix Admin
APIBackend/.env.exampleUnchanged; deploy Backend before Admin when M6 routes are new

Local dev: REACT_APP_LINK=http://localhost:5000 + proxy target matches your Backend port.

Automated API smoke (after Backend is up):

bash
npm run smoke:unified-workspace
# or: node Backend/scripts/smoke-unified-workspace.js https://api.beentara.com

Covers /healthz, admin + staff GET /task-list, staff list create/delete, GET /task/stafftask, and POST /task-history when the staff user has an assigned task.

Browser smoke: npm run unified-app:smoke — see unified-app-browser-qa.md.

Go-live sign-off: unified-app-go-live.md · npm run verify:unified-cutover

1. Deploy (one artifact) ​

  • Build and host only Admin/ (npm run build --prefix Admin).
  • Point beentara.com and teams.beentara.com to the same static host or reverse proxy.

2. DNS / hosting (manual) ​

  • teams.beentara.com → same origin as beentara.com (CNAME or duplicate vhost).
  • Remove separate deploy for staff/UI when satisfied with QA.

3. Auth ​

  • Staff use Staff Login on beentara.com/login (no external teams redirect).
  • Existing /stafflogin API and permissions unchanged.

4. QA smoke (staff test account) ​

  1. Login staff mode → /dashboard shortcuts match permissions.
  2. Deep-link old staff URLs: /plan, /follow-ups, /reciept, /marquee.
  3. Denied route → toast + /dashboard.
  4. Owner login → full menu + analytics dashboard tab.

5. Decommission staff/UI ​

See staff-ui-retirement.md (checklist, wait period, archive — do not delete immediately).

Rollback ​

Redeploy previous Admin build; re-enable staff app host on teams subdomain if needed. No DB migration involved.

Beentara — Business management made simple.