Coursefield — product requirements
Coursefield is an online learning platform. Learners browse a catalogue of twelve courses, enroll (free, paid or prerequisite-gated), work through modules of lessons and quizzes, track progress and earn certificates. Instructors get a gradebook for their courses.
Problem. Learners need a clear path through a course, in order, with honest progress and fair scoring; instructors need accurate cohort figures to spot learners at risk.
Users
- Learner — Find a course, enroll, watch lessons, take quizzes and earn a certificate only when the course is truly complete.
- Instructor — See enrollment, progress and quiz results per course and remind learners who are falling behind.
Goals
- Content order is enforced everywhere, including direct links.
- Scores, progress and certificates are exact: no rounding up to completion and no credit for partly right answers where the rules say none.
- Quiz limits (time and attempts) are enforced by the platform, not by learner goodwill.
Out of scope
- Real video playback
- Payments
- Email delivery of reminders
Contents
Sign-in and roles
Sign-in, deep-link return and role-based pages.
- URL /learn/
- Heading "Maya, you are one lesson from your Data Storytelling certificate." for the seeded learner
- /learn/certificates redirects to sign-in with next=/certificates and opens Certificates after login
Home
Learning dashboard and responsive layout.
- Seeded learner: In progress 3, Lessons completed 23, Certificates 1, Average quiz score 71%
- Data Storytelling is first at 99% with next lesson "Course wrap-up"
Catalogue
Browse, filter, search and sort courses.
- The count reads 12 courses
- Python for Analysts shows Free, Beginner and enrolled
- Price Free: 6 courses; plus Level Beginner: still 6, URL contains price=free and level=Beginner
- Plus Category Data: Python for Analysts and SQL Essentials
- Duration "Under 2 hours": 7 courses
- Searching "Negotiation" leaves only "Negotiation Skills"
- Security Awareness for Teams (1h 5m) first, then Writing for Clarity (1h 8m)
Course syllabus and locks
Modules, lessons, durations and module gating.
- Python for Analysts: Getting started (3 lessons), Core data structures (4 lessons and a quiz), Files and pandas (3 lessons and a quiz)
- Getting started: "Welcome and course tour" 4m, "Installing Python and Jupyter" 9m, "Your first notebook" 12m, all complete
- Files and pandas is locked: lock icons and its lessons are not links
- /learn/lessons/l-py-3-1 shows the locked message while Core data structures check is not passed
- After passing that quiz Files and pandas is no longer locked
Enrollment
Free, paid and prerequisite-gated enrollment.
- Panel shows "Free" and "Enroll for free"; lesson 1 is a free preview
- After enrolling the panel shows a ring at 0% and "Continue: Know your reader"; the catalogue marks the course enrolled
- "Enroll for $59" on Interface Design Systems opens a dialog stating the charge
- Confirming enrolls with the ring at 0%
- Machine Learning Foundations shows a warning to complete Statistics in Practice first, with a link, and a disabled "Enroll for $89"
Lesson player and notes
Video lesson with transcript, completion and notes.
- "Spread and variance" is a 16:00 lesson with player, transcript and notes tabs and an outline of six lessons
- Speed 2x and the scrubber move the time counter and the highlighted transcript line
- After completion the course page shows 2 of 6 lessons complete
- The existing note of "Your first notebook" reads "Restart the kernel after installing packages."
- After editing, a saved indicator appears and the new text persists after reload
Quizzes
Single, multiple-choice, ordering and matching questions with timer, attempts and pass mark.
- Core data structures check: 6 questions, 9 points, pass mark 70%, 3 attempts; one previous attempt 56% not passed; two attempts remain
- Result "100%, 9 of 9 points, Passed"
- The question navigator marks answered questions
- Ticking only list and dict for the three mutable types: 0 / 2 points, marked Incorrect, correct answer lists list, dict and set; the quiz scores 78% (7 of 9 points)
- Single-choice questions score normally
- Two of four pairs right: 1 of 2 points, "Partly correct", quiz 89% (8 of 9)
- Only Q1 answered: result 11%, 1 of 9 points, Not passed; five questions "Not answered"
- Retake button reads "Try again (1 left)"
- Joins and grouping check allows 2 attempts, pass mark 75%, 60 seconds; after the second attempt (one already used) the start button is disabled or replaced by a "no attempts left" notice
- Timer starts at 1:00 and counts down every second
- A banner says time ran out and answers were submitted automatically
- With only question 1 answered correctly the score is 14% (1 of 7 points)
- The 56% attempt shows 5 of 9 points, pass mark 70%, Not passed and six review entries
Progress and certificates
Progress rings and certificate issue.
- Data Storytelling with 8 of 9 lessons (one minute of 240 left) reads 99%, "8 of 9 lessons" and has no certificate link
- Completing "Course wrap-up" gives 100%, "Course complete", and "View certificate CF-2026-52930"; Certificates then lists two cards
- SQL Essentials: CF-2026-40817, issued 14 August 2026, holder Maya Okafor
Instructor gradebook
Cohort figures and reminders.
- Python for Analysts: Enrolled 14, At risk 4; chips On track 6, At risk 4, Completed 4
- At risk: Elif Demir, Grace Nakamura, Jonas Weber, Liam Doherty
- Progress descending then ascending; Liam Doherty (22%) first when ascending
- SQL Essentials: one quiz column, fourteen rows, five Completed
- Elif Demir: idle 22 days
- On-track learners have no reminder button
Glossary and rules
| Pass mark | Minimum quiz percentage needed to pass and to unlock the gated module. |
|---|---|
| At risk | A learner who has been idle and is behind on progress; eligible for a reminder. |