/ Home (landing page)
├── /courses Course catalogue (public)
│ └── /courses/:trainingId Course detail (public)
├── /predefined-path-catalog Predefined learning path catalogue (public)
├── /skills/:sckId Skill / knowledge detail (placeholder)
├── /job-roles/:jobRoleId Job role detail (placeholder)
├── /providers/:providerId Provider detail (placeholder)
├── /profile User profile (authenticated)
├── /provider Provider area (role: Provider)
│ └── /provider/trainings My Courses - provider course management
│ ├── /provider/trainings/create New course wizard
│ │ ├── .../create/detail Step 1 - Course detail
│ │ ├── .../create/sck Step 2 - Skills, competences & knowledge mapping
│ │ └── .../create/delivery Step 3 - Delivery methods
│ ├── /provider/trainings/created/:trainingId Course created confirmation
│ └── /provider/trainings/:trainingId/edit Edit course wizard (drafts only)
│ ├── .../edit/detail Step 1 - Course detail
│ ├── .../edit/sck Step 2 - Skills, competences & knowledge mapping
│ └── .../edit/delivery Step 3 - Delivery methods
├── /forbidden 403 - Access denied
└── /prototypes/* Design prototypes (dev only, not part of the product)
/ - Home
Landing page of the application. Currently a minimal placeholder with the SkillsHub title, a short description, and links to the design catalogue and home page prototypes. Will be replaced by role-specific home pages (guest / learner / provider prototypes exist under /prototypes).
/courses - Course catalogue
The main public course catalogue. A searchable, sortable, paginated grid of all published courses with a left-hand filter rail (provider, price, delivery method, language, and other facets). Supports three view modes (large grid, dense grid, list). Filter and search state is kept in the URL, so catalogue views can be shared as links. Course cards link to the course detail page.
/courses/:trainingId - Course detail
Public detail page for a single course. Shows the full course description, content sections, and an info sidebar (provider, price, delivery methods, languages, dates). Links out to the provider, job roles, and the skills/knowledge the course covers. Each visit records a view for course metrics. Data is preloaded on navigation so the page renders without a loading waterfall.
/predefined-path-catalog - Learning path catalogue
Public catalogue of predefined learning paths (curated sequences of courses). Same catalogue pattern as /courses: search, sorting (newest, name A-Z/Z-A), facet filters, pagination, and three view modes, with state stored in the URL.
/skills/:sckId - Skill / knowledge detail (placeholder)
Target page for skill and knowledge links from the course detail. Currently shows a "coming soon" message; the real skill feature has not been built yet.
/job-roles/:jobRoleId - Job role detail (placeholder)
Target page for job role links from the course detail. Currently shows a "coming soon" message; the real job role feature has not been built yet.
/providers/:providerId - Provider detail (placeholder)
Target page for provider links from the course detail. Currently shows a "coming soon" message; the real provider feature has not been built yet.
/profile - User profile (requires login)
The signed-in user's account page, split into three sections via side navigation:
- Personal - edit basic Keycloak profile data (name, email)
- Details - edit extended person details
- Security - change password
Unauthenticated visitors are redirected to Keycloak login and returned afterwards.
/provider/trainings - My Courses
The provider's course management page. Lists all courses belonging to the provider's group with lifecycle actions (edit drafts, publish/archive, etc.). Entry point to the create and edit wizards.
/provider/trainings/create - New course wizard
Three-step wizard for creating a new course:
1. Detail (/create/detail) - name, description, price, languages, and other core course attributes
2. SCK mapping (/create/sck) - map the course to skills, competences, and knowledge items
3. Delivery (/create/delivery) - delivery methods (online, in-person, etc.) with their specifics
The stepper can be shown horizontally or as a collapsible side rail (persisted per user). Visiting /create redirects to the first step.
/provider/trainings/created/:trainingId - Course created
Confirmation page shown after a course is successfully created. Summarizes the new course and offers navigation to its detail page or back home.
/provider/trainings/:trainingId/edit - Edit course wizard
The same three-step wizard (/edit/detail, /edit/sck, /edit/delivery) preloaded with the saved course values, so changes are tracked against what was previously saved. Only **draft** courses can be edited - published or archived courses are blocked before the wizard opens. The bare course URL /provider/trainings/:trainingId has no page of its own and redirects here.
/forbidden - 403 Access denied
Shown when a signed-in user opens a page their role does not allow. Offers a link back home and, for anonymous users, a sign-in button.
/countries (inactive)
Empty placeholder route with no UI; left over from the initial API-layer template work.
/prototypes/* - Design prototypes
Throwaway design experiments, not part of the product and exempt from the app's conventions:
- /prototypes/design-catalogue - living reference page of the design system (colors, tokens, component variants)
- /prototypes/home-guest, /prototypes/home-learner, /prototypes/home-provider - home page design drafts for each audience