Requirements Specification
Overview
Problem Statement
When trainees sign in for the first time, they have no direction if their manager hasn't assigned them courses yet. Without a quick first win, new trainees are less likely to come back, which hurts long-term use of the system.
Goal
Get a new trainee from first sign-in to enrolled in a relevant course in about 3 minutes. Success means more trainees launch their first course and fewer drop off during sign-up.
Success Metrics
| Metric | Target | How measured |
|---|---|---|
| Time to first launch | Reduced vs. baseline; about 3 minutes to enrollment | Timestamp: account created → first course launched |
| Wizard completion rate | Increase vs. baseline | Analytics: wizard started vs. finished |
| Drop-off rate per step | Decrease vs. baseline | Analytics event per step |
| Recommendation click-through rate | Increase vs. baseline | Enroll / Save clicks on recommended courses |
Out of Scope
- Role-based branching for managers and administrators.
- Full profile editing (trainees can add more to their profile later and not necessary for initial onboarding).
- Changes to the course catalog or the recommendation engine itself.
Users
| Persona | Description | Primary Need |
|---|---|---|
| New Trainee | First time in the system; may or may not have courses assigned by a manager | Set up an account fast and find something worth learning right away |
| Referred Trainee | Joining through a company referral, so linked to a team and manager | Confirm the right team and manager so assigned training shows up |
Assumptions & Constraints
- Assumptions:
- The course catalog has enough tagged data (topic, level, duration, format) to sort recommendations.
- A company referral can pre-fill team and manager details.
- Constraints:
- Must fit within the existing design system without new components where possible.
- Must meet WCAG 2.1 AA.
- Dependencies:
- Email delivery service for sign-in links and backup codes.
- Recommendation / catalog data. Company referral data for team and manager details.
User Stories
Epic A: Account Setup & Authentication
US-01: Create an account
As a new trainee, I want to create my account with only the essentials, so that I can start learning without a long form.
Priority: Must
Acceptance Criteria
- AC1: Given I am on step 1, when I view the form, then I only see first name, last name, email and sign-in method.
- AC2: Given I enter an email, when I continue, then it is checked for a valid format and for uniqueness.
- AC3 (error case): Given my email is invalid or already in use, when I continue, then I see an inline message explaining how to fix it, and my other entries are kept.
- AC4 (error case): Given a required field is empty, when I continue, then the field is flagged and I stay on the step.
US-02: Choose a sign-in method
As a new trainee, I want to sign in with an email link or a password, so that I can use whichever is easier for me.
Priority: Must
Acceptance Criteria
- AC1: Given I am on step 1, when I choose a sign-in method, then Email link is selected by default and marked as recommended.
- AC2: Given I choose Email link, when I continue, then I am sent a one-click sign-in link and a backup code I can enter instead.
- AC3: Given I choose Password, when I create one, then the password rules are shown before I submit.
- AC4 (error case): Given my sign-in link or code has expired or is wrong, when I use it, then I see a message and can request a new one.
Epic B: Team Confirmation
US-03: Confirm my team and manager
As a referred trainee, I want to confirm my team name and my manager's name and position, so that assigned training and team reporting are linked to me correctly.
Priority: Should
Acceptance Criteria
- AC1: Given I joined through a company referral, when I reach this step, then my team and manager details are pre-filled for me to confirm or correct.
- AC2: Given my team and manager details are incorrect, when I reach this step, then I have the option to send in a correction.
- AC3: Given I did not join through a company referral, when I finish account setup, then this step is skipped.
Epic C: Personalization & First Course
US-04: Tell the system what I want to learn
As a new trainee, I want to share my goal, interests, level and preferred session length, so that the courses I see first are relevant to me.
Priority: Must
Acceptance Criteria
- AC1: Given I am on the Interests step, when I choose a goal, then I can pick one of: Grow in my role, Pivot to a new role, Prepare for promotion.
- AC2: Given I am on the Interests step, when I choose topics, then I can pick as many as I like.
- AC3: Given I am on the Interests step, when I choose a level and a session length, then my recommendations are sorted to match.
- AC4: Given I want to change a previous answer, when I select Back, then I return to the previous step with my entries kept.
US-05: Skip personalization
As a new trainee, I want to skip the Interests step, so that I can get to courses faster if I don't want to answer questions.
Priority: Must
Acceptance Criteria
- AC1: Given I am on the Interests step, when I view it, then it is clearly labeled optional and a Skip for now option is visible.
- AC2: Given I skip the step, when recommendations load, then I see the platform's most popular courses instead.
US-06: Enroll in a recommended first course
As a new trainee, I want to see a short list of courses picked for me and enroll in one click, so that I get a first win right away.
Priority: Must
Acceptance Criteria
- AC1: Given I finished or skipped the Interests step, when the First course step loads, then I see up to 6 courses.
- AC2: Given a recommended course, when I view its card, then I see its initial details and why it matches my interests.
- AC3: Given a course I want, when I select Enroll, then I am enrolled into it immediately.
- AC4: Given a course I'm interested in for later, when I select Save, then it is bookmarked to my account.
- AC5 (error case): Given no courses match my answers, when the step loads, then the most popular courses are shown instead of an empty list.
Epic D: Second Pass (Post-MVP)
US-07: Route users by role
As a new user, I want to say whether I am an individual learner or a team manager / admin, so that I get the onboarding path that fits my role.
Priority: Could
Acceptance Criteria
- AC1: Given I start onboarding, when I choose my role, then I am routed to the matching onboarding path.
US-08: Track onboarding analytics
As a product team member, I want onboarding drop-off, completion and click-through tracked, so that we can improve the flow after launch.
Priority: Should
Acceptance Criteria
- AC1: Given a user moves through the wizard, when they enter, finish or leave a step, then an analytics event is recorded.
- AC2: Given recommendations are shown, when a user selects Enroll or Save, then the click is recorded with the course and its position.
Non-Functional Requirements
| ID | Category | Requirement | Acceptance Criteria |
|---|---|---|---|
| NFR-01 | Accessibility | Meets WCAG 2.1 AA | Passes WCAG audit with 0 critical issues |
| NFR-02 | Usability | Quick to finish | Wizard can be finished in about 3 minutes; each step shows its estimated time |
| NFR-03 | Security | Sign-in links and codes are safe | Links and codes expire and can only be used once |
| NFR-04 | Performance | Recommendations load quickly | First course step renders in under 2 seconds after submitting the Interests step |
| NFR-05 | Browser support | Latest 2 versions of major browsers | Verified in Chrome, Safari, Firefox, Edge |
Prioritized MVP List
The smallest set of stories that gets a new trainee from sign-up to their first course.
| Rank | ID | Story | Priority | Why it's in MVP |
|---|---|---|---|---|
| 1 | US-01 | Create an account | Must | Nothing works without an account |
| 2 | US-02 | Choose a sign-in method | Must | Email link reduces drop-off at the riskiest step |
| 3 | US-06 | Enroll in a recommended first course | Must | Delivers the first win; the core goal of the project |
| 4 | US-05 | Skip personalization | Must | Keeps friction low; fallback still gets users to a course |
| 5 | US-04 | Tell the system what I want to learn | Must | Makes recommendations relevant |
| 6 | US-03 | Confirm my team and manager | Should | Needed for referred trainees; can be skipped for everyone else |
Post-MVP Backlog
| ID | Story | Priority | Reason deferred |
|---|---|---|---|
| US-08 | Track onboarding analytics | Should | Needed to measure success after launch; doesn't block launch |
| US-07 | Route users by role | Could | Validate the learner path first |
MVP Release Criteria
- All Must stories meet their acceptance criteria
- All NFRs pass
- Product owner sign-off