> ## Documentation Index
> Fetch the complete documentation index at: https://theteam-13fc7f49.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Help Center links — where each topic card goes

> The JSON file that sets the link of every Help Center topic card, for the student, admin, instructor and content manager Help Centers: routes, keys, how to change a link, and the fallback rules.

Written on 04/11/2026 from the code on the `chat+ai` branch of `LMS_Frontend` (Update 222).
Keywords for search: Help Center, help section, topic card, "View guide", `help_center_links.json`,
`HelpCenterLinks`, YouTube playlist.

**In one sentence.** Every topic card of the Help Center opens the link set for it in
**`assets/config/help_center_links.json`** of `LMS_Frontend`: one section per role, one key per card.
For now every card opens the YouTube guide playlist.

## Routes and sections

| Role | Help Center route | JSON section | Cards |
| :- | :- | :- | :- |
| Student | `/student-help-section` | `student` | 6 |
| Admin | `/admin-help-section` | `admin` | 10 |
| Instructor | `/instructor-help-section` | `instructor` | 6 |
| Content manager | `/content-manager-help-section` | `contentManager` | 6 |
| Super admin | (no Help Center) | | |

Locally the app runs on `http://localhost:5000`, so the student Help Center is
`http://localhost:5000/student-help-section`.

## Which key is which card

The orange labels show the key each card reads (`<section>.<key>`). They were added to the
screenshots; the app doesn't draw them.

> [tab] Student
>
> ![Student Help Center, each card labelled with its key](https://mintcdn.com/theteam-13fc7f49/FzlD2Z4jQ0k7ma9d/images/help-center/student.png?fit=max\&auto=format\&n=FzlD2Z4jQ0k7ma9d\&q=85\&s=cf489d84ced0e2c1351ce8bb9593d577)
>
> /student-help-section
>
> | Card | Key |
> | :- | :- |
> | Vouchers & discounts | `vouchersAndDiscounts` |
> | Dashboard & progress | `dashboardAndProgress` |
> | Trainings & certificates | `trainingsAndCertificates` |
> | Exams & attempts | `examsAndAttempts` |
> | Cart & orders | `cartAndOrders` |
> | Account & security | `accountAndSecurity` |

> [tab] Admin
>
> ![Admin Help Center, each card labelled with its key](https://mintcdn.com/theteam-13fc7f49/FzlD2Z4jQ0k7ma9d/images/help-center/admin.png?fit=max\&auto=format\&n=FzlD2Z4jQ0k7ma9d\&q=85\&s=b0ed440bd236e67820d6eaf9b7a32371)
>
> /admin-help-section
>
> | Card | Key |
> | :- | :- |
> | Orders | `orders` |
> | Trainings | `trainings` |
> | Exams | `exams` |
> | Discounts | `discounts` |
> | Users | `users` |
> | Classrooms | `classrooms` |
> | Classifications | `classifications` |
> | Platform Configuration | `platformConfiguration` |
> | Notifications | `notifications` |
> | Settings | `settings` |

> [tab] Instructor
>
> ![Instructor Help Center, each card labelled with its key](https://mintcdn.com/theteam-13fc7f49/FzlD2Z4jQ0k7ma9d/images/help-center/instructor.png?fit=max\&auto=format\&n=FzlD2Z4jQ0k7ma9d\&q=85\&s=be22a70145c5d5c561bcfb465291c8ed)
>
> /instructor-help-section
>
> | Card | Key |
> | :- | :- |
> | Dashboard | `dashboard` |
> | Trainings | `trainings` |
> | Exams | `exams` |
> | Profile Setup | `profileSetup` |
> | Classrooms | `classrooms` |
> | Settings | `settings` |

> [tab] Content manager
>
> ![Content manager Help Center, each card labelled with its key](https://mintcdn.com/theteam-13fc7f49/FzlD2Z4jQ0k7ma9d/images/help-center/content-manager.png?fit=max\&auto=format\&n=FzlD2Z4jQ0k7ma9d\&q=85\&s=586ab874459ad802cfbc8be0124055b8)
>
> /content-manager-help-section
>
> | Card | Key |
> | :- | :- |
> | Dashboard | `dashboard` |
> | Trainings | `trainings` |
> | Exams | `exams` |
> | Classrooms | `classrooms` |
> | Classifications | `classifications` |
> | Account & security | `accountAndSecurity` |

A key is read inside its role's section, so the admin's `trainings` card and the instructor's
`trainings` card can open different links.

## The file

```json assets/config/help_center_links.json theme={null}
{
  "_readme": "Help Center: the link each topic card opens, one section per role ...",
  "student": {
    "vouchersAndDiscounts": "https://www.youtube.com/playlist?list=PLf7Ei8pwRxWo",
    "dashboardAndProgress": "https://www.youtube.com/playlist?list=PLf7Ei8pwRxWo",
    "trainingsAndCertificates": "https://www.youtube.com/playlist?list=PLf7Ei8pwRxWo",
    "examsAndAttempts": "https://www.youtube.com/playlist?list=PLf7Ei8pwRxWo",
    "cartAndOrders": "https://www.youtube.com/playlist?list=PLf7Ei8pwRxWo",
    "accountAndSecurity": "https://www.youtube.com/playlist?list=PLf7Ei8pwRxWo"
  },
  "admin": { "orders": "https://...", "trainings": "https://...", "...": "..." },
  "instructor": { "dashboard": "https://...", "...": "..." },
  "contentManager": { "dashboard": "https://...", "...": "..." }
}
```

`pubspec.yaml` lists `assets/config/`, so the file ships with the web, Android and iOS builds.

## Change a link

**1. Edit the URL in the repo**

Open `assets/config/help_center_links.json` in `LMS_Frontend`, find the role's section and the
card's key, and replace the URL. Keep the key as it is.

**2. Rebuild and deploy**

Web: deploy as usual. Phone apps: build and release a new version (the file is inside the app).

**3. (Web only) Quick change on the server**

On a deployed web app the file is also served at `assets/assets/config/help_center_links.json`
(under `httpdocs/`), so you can edit it there without a rebuild. Browsers may keep the old copy
until their cache expires.

A change made only on the server is lost on the next deploy: the upload replaces `httpdocs/` with
the new build (a 1:1 mirror). Always make the same change in the repo.

## Rules

* A missing key, an empty value or a value that isn't an `http(s)` link opens the guide playlist
  (`https://www.youtube.com/playlist?list=PLf7Ei8pwRxWo`). So does a broken file.
* Keys starting with `_` (such as `_readme`) are notes and are ignored.
* On the web a card opens its link in a new tab; on phones, in the browser or the YouTube app.
* The links are read once when the Help Center opens, before any tap: on the web a link must open
  in the same click, or the browser's popup blocker stops the new tab.

## In the code

| What | Where (`LMS_Frontend`) |
| :- | :- |
| The links | `assets/config/help_center_links.json` |
| Reading the file, the fallback rules | `lib/core/utils/help_center_links.dart` (`HelpCenterLinks`) |
| The cards and their keys | `lib/ui/pages/shared/help/help_center.dart` (`_HelpTopic.linkId`) |
| Routes | `student_statefulshell.dart`, `admin_statefulshell.dart`, `instructor_statefulshell.dart`, `content_manager_statefulshell.dart` in `lib/core/routes/statefulshells/` |
| Guard | `test/help_center_test.dart` fails when the file's keys and the cards don't match |

To add a card: add its `_HelpTopic` (with a `linkId`) to the role's list in `help_center.dart`, then
the same key to the role's section of the JSON file, in the same position.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.