You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Catalog of all v1.0 user stories, grouped by role. This is the source of truth for
functional scope; a story is promoted to its own implementation issue when work on
it starts (as was done for the password reset flow, #51).
Format: Connextra template
(As aβ¦ I wantβ¦ so thatβ¦) + acceptance criteria checkboxes.
Roles and permissions are defined in #39.
Developer & teacher creating and maintaining courses
Sophie β the platform manager
admin
Manages accounts and the content lifecycle
β
superadmin
Operator role; technical, no product persona
Personas map 1:1 to roles by design (small product, solo team). superadmin deliberately has no persona: it has permissions but no UX journey of its own.
TODO: Add superadmin as an enhancement.
As a student, I want to mark a lesson as completed, so that I can track my progress.
A completed lesson is recorded and visibly marked
My course progress reflects completed vs. total lessons
US-09 β Complete a course
As a student, I want the course to be marked completed when I finish all lessons, so that I have a record of my achievement.
When all lessons are completed, the course status becomes completed
US-10 β Drop a course
As a student, I want to withdraw from a course, so that I can stop without losing my account or history.
Dropping marks the enrollment as dropped (not deleted) and revokes content access
Instructor (Marc)
US-11 β Create a course
As an instructor, I want to create a new course, so that students can learn from it.
A new course is created in a non-published (draft) state, owned by me
US-12 β Update my course
As an instructor, I want to update a course I created, so that its content stays accurate.
I can edit my own courses; I cannot edit another instructor's course
US-13 β Manage enrollments of my course
As an instructor, I want to add students and confirm enrollments on my courses, so that I control who attends.
I can add a student to a course I created
I can confirm a pending enrollment, which grants content access (US-07)
US-14 β Archive my course
As an instructor, I want to archive a course, so that it is no longer offered without being deleted.
An archived course is unpublished: hidden from the catalog, closed to new enrollments
The course and its data are preserved (deletion is admin-only, US-21)
US-15 β Create a lesson
As an instructor, I want to add a lesson to my course, so that the course has content.
I can create a lesson (Markdown content) in a course I own
US-16 β Update a lesson
As an instructor, I want to edit a lesson of my course, so that I can fix and improve it.
I can edit lessons of my own courses only
US-17 β Archive a lesson
As an instructor, I want to archive a lesson, so that outdated content is hidden without being deleted.
An archived lesson is no longer visible to students; data is preserved
Admin (Sophie)
US-18 β Add an instructor
As an admin, I want to create instructor accounts, so that authors can publish courses.
A new account with the instructor role can be created
US-19 β Deactivate an instructor
As an admin, I want to deactivate an instructor account, so that it can no longer be used, without deleting it.
A deactivated instructor cannot log in; their data and courses are preserved
US-20 β Add or deactivate a student
As an admin, I want to add and deactivate student accounts, so that I can manage the user base.
Same semantics as US-18/US-19, applied to the student role
US-21 β Delete an archived course
As an admin, I want to permanently delete a previously archived course, so that obsolete content can be removed.
Only an archived course can be deleted (two-step safety: archive β delete)
US-22 β Delete an archived lesson
As an admin, I want to permanently delete a previously archived lesson, so that obsolete content can be removed.
Only an archived lesson can be deleted
Superadmin
No dedicated stories: superadmin can do everything above, for every user and
every course/lesson (see role hierarchy in #39).
Design notes
Registration is self-service and automatic (no human approval), gated by
email verification β the industry-standard pattern on free training platforms.
Enrollment requires instructor confirmation (US-06 β US-13), a deliberate
choice matching the training-center model (Moodle-style "manual enrolment").
The common alternative β auto-confirmed open enrollment, with approval as a
per-course toggle β is deferred to the π΅ Enhancements epic (π΅ Enhancements β EpicΒ #41).
Summary
Catalog of all v1.0 user stories, grouped by role. This is the source of truth for
functional scope; a story is promoted to its own implementation issue when work on
it starts (as was done for the password reset flow, #51).
Format: Connextra template
(As aβ¦ I wantβ¦ so thatβ¦) + acceptance criteria checkboxes.
Roles and permissions are defined in #39.
Personas
studentinstructoradminsuperadminPersonas map 1:1 to roles by design (small product, solo team).
superadmindeliberately has no persona: it has permissions but no UX journey of its own.TODO: Add superadmin as an enhancement.
Student (LΓ©a)
US-01 β Register an account
studentroleUS-02 β Log in and out
US-03 β Reset a forgotten password
US-04 β Browse available courses
US-05 β View a course syllabus
US-06 β Enroll in a course
US-07 β Access lessons of an enrolled course
US-08 β Complete a lesson
US-09 β Complete a course
completedUS-10 β Drop a course
Instructor (Marc)
US-11 β Create a course
US-12 β Update my course
US-13 β Manage enrollments of my course
US-14 β Archive my course
US-15 β Create a lesson
US-16 β Update a lesson
US-17 β Archive a lesson
Admin (Sophie)
US-18 β Add an instructor
instructorrole can be createdUS-19 β Deactivate an instructor
US-20 β Add or deactivate a student
studentroleUS-21 β Delete an archived course
US-22 β Delete an archived lesson
Superadmin
No dedicated stories:
superadmincan do everything above, for every user andevery course/lesson (see role hierarchy in #39).
Design notes
email verification β the industry-standard pattern on free training platforms.
choice matching the training-center model (Moodle-style "manual enrolment").
The common alternative β auto-confirmed open enrollment, with approval as a
per-course toggle β is deferred to the π΅ Enhancements epic (π΅ Enhancements β EpicΒ #41).
Related