# Route atlas

Every major Next.js surface. Role visibility for dashboard items follows `frontend/src/types/nav.types.ts` (role-gated in the sidebar).

**Role aliases**

- **LEARNER_ROLES** — `STUDENT`, `CORPORATE`, `INSTRUCTOR`, `ADMIN`, `SUPER_ADMIN`
- **CAREER_ROLES** — `STUDENT`, `CORPORATE`, `INSTRUCTOR` (learner CMH; coaches may also use this path)
- **INSTRUCTOR_TOOL_ROLES** — `INSTRUCTOR`, `ADMIN`, `SUPER_ADMIN`
- **EMPLOYER_ROLES** — `EMPLOYER`, `ADMIN`, `SUPER_ADMIN`

Default homes: employers → `/dashboard/talent`; admins → `/admin`; others → `/dashboard`.

---

## Marketing & public

| Route | Purpose |
|-------|---------|
| `/` | CMH marketing home |
| `/pricing` | Pricing (learners, employers, teams) |
| `/coaching` | Public coaching product |
| `/mentorship` | Mentorship catalog (prep) |
| `/employers` | Employer value prop + signup |
| `/become-instructor` | Coach/instructor application |
| `/contact` | Contact / enterprise (`?intent=enterprise`) |
| `/about` | About (may redirect to home) |
| `/legal` | Legal hub |
| `/privacy-policy` | Privacy |
| `/terms-of-service` | Terms |
| `/blog`, `/blog/[slug]` | Blog |
| `/mvp` | Stakeholder MVP pitch |
| `/docs`, `/docs/[slug]` | Thin in-app docs |
| `/brand` | Brand guidelines |
| `/instructors/[id]` | Public coach-first instructor page |
| `/u/[slug]` | Public learner CMH profile |
| `/credentials/[code]` | Skill credential verify |
| `/verify` | **Course** certificate verify |
| `/unauthorized` | Access denied |

---

## Auth & account

| Route | Purpose |
|-------|---------|
| `/auth/login` | Login |
| `/auth/register` | Learner (`STUDENT`) signup |
| `/auth/register/employer` | Employer signup |
| `/auth/verify-email` | Verify email |
| `/auth/verify-email/pending` | Waiting for verify |
| `/auth/resend-verification` | Resend verify email |
| `/auth/forgot-password` | Request reset |
| `/auth/reset-password` | Set new password |
| `/account/pending-approval` | Instructor awaiting admin approval |
| `/account/accept-invite` | Team invite acceptance |
| `/account/inactive` | Inactive gate |
| `/account/suspended` | Suspended gate |
| `/account/banned` | Banned gate |
| `/account/deleted` | Deleted gate |

See [Auth & accounts](/product/auth).

---

## Dashboard — by nav group

### Home

| Route | Visible |
|-------|---------|
| `/dashboard` | Any authenticated |

### Learn

| Route | Visible |
|-------|---------|
| `/dashboard/courses` | STUDENT, CORPORATE (browse); parent LEARNER_ROLES |
| `/dashboard/my-courses` | LEARNER_ROLES |
| `/dashboard/saved-courses` | STUDENT, CORPORATE |
| `/dashboard/mentorships` | LEARNER_ROLES |
| `/dashboard/assessments` | LEARNER_ROLES |

Deep links (off-nav): `/dashboard/courses/[courseSlug]/…`, lesson pages, `/dashboard/courses/[courseSlug]/payment`.

### Career (CMH)

| Route | Visible |
|-------|---------|
| `/dashboard/intake` | STUDENT, CORPORATE, INSTRUCTOR |
| `/dashboard/skills` | STUDENT, CORPORATE, INSTRUCTOR |
| `/dashboard/practice` | STUDENT, CORPORATE, INSTRUCTOR |

### Coaching

| Route | Visible |
|-------|---------|
| `/dashboard/coaching` | LEARNER_ROLES (browse) |
| `/dashboard/coaching/hub` | STUDENT, CORPORATE, INSTRUCTOR |
| `/dashboard/coaching/availability` | INSTRUCTOR_TOOL_ROLES (coach setup) |
| `/dashboard/coaching/clients` | INSTRUCTOR_TOOL_ROLES |
| `/dashboard/coaching/reviews` | INSTRUCTOR_TOOL_ROLES |

Deep links: `/dashboard/coaching/[id]/book`, `…/sessions`, `…/payment`.

### Teams (CORPORATE / ADMIN)

| Route | Visible |
|-------|---------|
| `/dashboard/teams` | ADMIN, CORPORATE |
| `/dashboard/teams/course-assignments` | ADMIN, CORPORATE |
| `/dashboard/teams/plans` | ADMIN, CORPORATE |

Deep links: create, checkout, request-enterprise.

### Talent (EMPLOYER)

| Route | Visible |
|-------|---------|
| `/dashboard/talent` | EMPLOYER_ROLES |
| `/dashboard/talent/pipeline` | EMPLOYER_ROLES |
| `/dashboard/talent/jobs` | EMPLOYER_ROLES |
| `/dashboard/talent/billing` | EMPLOYER_ROLES |

### Instructor tools

| Route | Visible |
|-------|---------|
| `/dashboard/students` | ADMIN, INSTRUCTOR |
| `/dashboard/question-bank` | ADMIN, INSTRUCTOR |
| `/dashboard/reset-requests` | ADMIN, INSTRUCTOR |
| `/dashboard/analytics` | ADMIN, INSTRUCTOR |
| `/dashboard/earnings` | INSTRUCTOR |

Deep links: question-bank edit/preview, `/dashboard/earnings/payout-settings`, `/dashboard/promo-codes`.

### Communications

| Route | Visible |
|-------|---------|
| `/dashboard/messages` | LEARNER_ROLES |
| `/dashboard/inbox` | Any authenticated |

### Profile

| Route | Visible |
|-------|---------|
| `/dashboard/profile` | STUDENT, CORPORATE |

### Other dashboard (off-nav)

| Route | Purpose |
|-------|---------|
| `/dashboard/certificates` | Course certificates list |
| `/dashboard/live-sessions/[sessionId]/room` | Live session room |
| `/checkout/quote/[token]` | Plan-quote checkout |

---

## Admin

Staff shell: `/admin`. Permission gates live on the admin sidebar (`content:read`, `users:read`, etc.).

| Route | Purpose |
|-------|---------|
| `/admin` | Ops home / stats |
| `/admin/users` | Users |
| `/admin/roles` | Roles & permissions (super-admin) |
| `/admin/teams`, `/admin/teams/[teamId]` | Platform teams |
| `/admin/courses` | Course catalog admin |
| `/admin/courses/categories`, `/admin/courses/tags` | Taxonomy |
| `/admin/career/tracks` | Career tracks & skills |
| `/admin/content/blog` (+ new / `[id]`) | Blog CMS |
| `/admin/content/pricing` | Pricing CMS |
| `/admin/content/site` | Site & social settings |
| `/admin/content/newsletter` | Newsletter subscribers |
| `/admin/promo-codes` | Promo codes |
| `/admin/email` | Email tooling |
| `/admin/requests/user` | User / instructor requests |
| `/admin/requests/contact` | Contact inbox |
| `/admin/requests/quotes` | Enterprise quotes |
| `/admin/instructor-earnings` | Instructor payout ops |
| `/admin/inbox` | Admin messaging |
| `/admin/analytics` | Platform analytics |
| `/admin/settings` | Admin settings |
| `/admin/reports` | Reports |
| `/admin/activities`, `/admin/activities/[activity]` | Activity feed |

See [Admin](/product/admin).
