← Works

Sleep Study Academy · Healthcare education · 2024 · Vue 3 · AdonisJS · PostgreSQL · Konva · ExcelJS

Sleep-study scoring, graded online.

An online training and assessment platform for sleep technologists. Trainees score real sleep studies page by page and are graded at once against an expert key. Educators author the studies, review the work and export performance.

Industry
Healthcare education · Sleep medicine
Scope
Product build, from backend and admin tools to the trainee scoring experience, reporting and deployment
Delivered
Trainee web app · Admin console · Backend service · Excel performance reports · Paid sign-up · Containerised deployment

01 / Challenge

Why did learning to score a sleep study depend on an expert's free time?

Reading a sleep study is a skill learned by doing. Technologists look at a recording page by page and decide the sleep stage and any events on each one. The client taught this skill, but practice and feedback depended on experts checking each trainee's work by hand.

  • Trainees

    Had few ways to practise on real recordings and get a clear, fair score.

  • Educators

    Spent time marking the same answers again and again, with no easy way to leave visual feedback on a tracing.

  • Course administrators

    Managed learners, access periods and payments across separate tools.

  • Programme leads

    Could not easily see how a learner, or a whole cohort, performed across studies.

Consistent scoring between technologists matters for patient care. Training for it needed to be scalable, fair and measurable.

Let trainees score real sleep studies online, get graded instantly, and give educators the tools to author content, review work and track performance.

02 / Solution

What does a scoring course look like when it marks itself?

We built a web platform with two sides: a scoring workspace for trainees and a console for educators. Both run on one shared backend that holds the content, the answer keys and the grades.

What it covers

  • Study library

    Public catalogue of categories and studies, with search, so visitors can see what's on offer before signing up.

  • Scoring workspace

    Page-by-page scoring with a progress grid, zoom, pan, full-screen view and drawing tools on the recording.

  • Instant grading

    Every answer is checked against the expert key on submission, with a score and a pass or fail.

  • Review and feedback

    Trainees see their answer next to the correct one. Educators can draw their own notes on top of a trainee's markings.

  • Content authoring

    Educators create studies, add pages with images and rich-text notes, set answer keys and publish.

  • Learner management

    Add learners one by one or import a list from a spreadsheet, set access expiry, and disable or re-enable accounts.

  • Paid self-registration

    New learners can sign up and pay online to get access.

  • Performance exports

    Excel reports for one learner across all studies, or one study across chosen learners, down to each page's answer.

  • Onboarding videos

    A "How it works" page walks new users through the platform.

03 / Highlights

What makes the grading fair?

Old results stay true when content changes

Educators often need to fix or improve a study after people have taken it. The platform keeps every published study as a version. Editing creates a new draft and leaves the old version untouched. Past attempts are always graded and reported against exactly what the trainee saw. Try unlocking the study, changing a key and publishing: the past attempt doesn't move.

Quiz / Sleep study 14 / Versions

v3PUBLISHEDLOCKED

Page 12 key · stage N2

v4—

Page 12 key · stage N2

Past attempts

#42026.10.08v3172 / 200

New attempts graded on v3. This one stays on v3.

FIG. 03.1 / STUDY VERSIONSinteractive mock

Marking up the recording, not just ticking boxes

Trainees can draw boxes and lines with labels right on the recording to show what they saw. Educators add their own markings in a different colour on the same image. Markings stay in the right place on any screen size. Feedback becomes visual and specific, like a tutor pointing at the page. Try marking the trace with each pen, then narrow the screen.

Sleep study 2 / Epoch 40 / Review
AROUSAL?

1 trainee · 0 educator markings. Click the trace to add one.

FIG. 03.2 / ANNOTATIONinteractive mock

Fair, instant, consistent grading

Each page is scored on four separate parts: sleep stage, arousal, breathing event and leg movements. Each part counts on its own, so partial understanding earns partial credit. Every trainee is marked against the same expert key, the same way, the moment they submit. Try submitting, then change an answer and submit again.

Sleep study 2 / Epoch 1 of 200

Score 0.00 / 1.00

FIG. 03.3 / GRADINGinteractive mock

Reports that answer real questions

Administrators can export one learner's history across every study, or one study's results across a chosen group of learners. Each spreadsheet includes a summary sheet, a page-by-page detail sheet and a sheet describing what the export contains. Scoring codes are turned into readable labels, so the file makes sense outside the platform. Try exporting, then flip through the sheets.

Quiz / Sleep study 2 / Export performance

Stored as codes: 2 · A1 · H · L0

PageStageArousalRespiLimb
12N2ArousalHypopneaNone
13N3NoneNone1 movement
14WakeArousalNoneNone
FIG. 03.4 / PERFORMANCE EXPORTinteractive mock

Learner access handled in one place

Spreadsheet import, access expiry dates, account disabling and paid sign-up all live in the same console. Running a cohort doesn't need separate tools. Try importing the sheet, then disabling a learner.

Users / Learners

Active 2

  • 0411A. Menonuntil 2026.12.31
  • 0412R. Pillaiuntil 2026.11.30
FIG. 03.5 / LEARNERSinteractive mock

04 / Product

What does a trainee score in?

  1. 01 / Library

    A library of real studies

    Studies inside a category, each with its level and a short clinical brief, searchable before sign-up.

    Grid of sleep study cards, each with a level badge and a short description
    FIG. 04.1 / Library
  2. 02 / Scoring

    One recording, page by page

    The page grid on the left tracks progress through 200 epochs; the recording on the right can be zoomed, panned and marked up.

    Scoring workspace: a numbered epoch grid beside a multi-channel sleep recording
    FIG. 04.2 / Scoring
  3. 03 / Answers

    Four answers per page

    Sleep stage, arousal, breathing event and limb movement, each chosen from a short set of options.

    Sleep stage dropdown open below the recording, with arousal, respiratory and limb movement selects alongside
    FIG. 04.3 / Answers
  4. 04 / Graded

    Your answer, then the key

    After submission every page shows the trainee's answers above the correct ones, so a mistake is clear at a glance.

    Given answers shown above the correct answers for one epoch
    FIG. 04.4 / Graded
  5. 05 / Studies

    Every study, versioned

    The admin list: each study with its published version, attempts, total marks and pass mark.

    Admin table of sleep studies with version badges, attempts and pass marks
    FIG. 04.5 / Studies
  6. 06 / Editor

    Published pages stay locked

    A study's details beside its questions. Published pages are locked until an educator unlocks them into a new draft; performance exports start here.

    Study editor with quiz details on the left and a list of locked questions
    FIG. 04.6 / Editor

05 / Architecture

How do the scores stay out of the browser's reach?

Trainees & visitorsEducators & adminsWeb applibrary · scoring · adminBackend servicegrading · versions · exportsDatabaseImage storagePayments & email
FIG. 05 / FROM TRAINEE TO GRADE
x 0 / y 0
  1. 01One source of truthAll content, answers and grades live in the backend. The web app only displays them, so scores can't be changed from the browser.
  2. 02Versioned contentPublished studies are never edited in place, which protects the history of every attempt.
  3. 03Role-based accessTrainees and administrators see different areas, and every request is checked on the server.
  4. 04Simple to runTwo containers and a database, with error monitoring built in, keep hosting and support straightforward.

06 / Stack

What is it built with?

Web app
Vue 3, TypeScript, Vite
UI
Tailwind CSS, shadcn-vue / Radix Vue components
Data fetching & state
TanStack Query, Pinia
Drawing on recordings
Konva (editing), SVG (read-only views)
Rich-text notes
Tiptap
Forms & validation
vee-validate, Zod, VineJS
Backend
AdonisJS 6 (Node.js, TypeScript)
Database
PostgreSQL with Lucid ORM
Reports
ExcelJS (.xlsx)
Payments
Razorpay
Email
SMTP with MJML templates
Monitoring
Sentry
Hosting
Docker, nginx, GitLab CI image builds

07 / Delivered

What did the client receive?

  1. 01Trainee web appPublic study library, sign-up, scoring workspace, results and report pages.
  2. 02Admin consoleStudy and category authoring, learner management with spreadsheet import, attempt review and feedback, performance exports.
  3. 03Backend serviceAccounts and roles, versioned content, automatic grading, file uploads, password reset email and payments.
  4. 04Excel reportingTwo performance reports with summary, page-level detail and an info sheet.
  5. 05Data migration toolingScripts to move existing data into the new platform.
  6. 06DeploymentDocker images for both apps, an nginx setup and a compose file for the server, plus tag-based image builds.
  7. 07Handover documentationA technical guide covering the system, data model, setup and known follow-ups, plus design specs for the reporting features.

08 / Impact

What changed for trainees and educators?

  • Practice at scale

    Trainees can score real studies whenever they like, without waiting for an expert to be free.

  • Less repetitive marking

    Grading happens automatically, so educators can spend their time on feedback, not checking answers.

  • Consistent standards

    Every learner is measured against the same expert key, supporting the goal of agreement between scorers.

  • Clearer oversight

    Programme leads can pull a learner's or a cohort's results into a spreadsheet in a few clicks.

  • A library that can grow

    Content is grouped by category and versioned safely, so new studies can be added without disturbing past results.

09 / What's next

Where does the platform go from here?

  1. 01Automated testingExtend the first test suites to cover grading and the scoring workspace.
  2. 02Autosave while scoringSave answers as trainees work, so a closed tab never loses progress.
  3. 03Cloud file storageMove recording images to cloud storage so the platform can scale beyond a single server.
  4. 04Security and privacy hardeningTighten cross-site access rules and reduce personal data sent to error monitoring.
  5. 05Shared drawing logicCombine the two annotation views into one so markings look identical everywhere.