Back to my work Case study, IELTS Test BD

An IELTS platform that scores all 4 skills.

Most online IELTS sites are question banks that skip Speaking. IELTS Test BD tests Listening, Reading, Writing and Speaking, records Speaking answers in the browser and returns an AI transcript and band estimate, saves work through a dropped connection, and runs the whole centre from an 18 screen admin workspace.

The build

The platform I built.

The IELTS Test BD homepage
Public site, testing engine, AI scoring and admin, built from scratch
The work

The work, up close.

15 screens, from the public landing page to the admin workspace.

The IELTS Test BD homepage
Public site

The homepage states what the platform does

Real exam experience, instant results, progress tracking and data security, stated on the first screen alongside a view of the product. The 2 admission office numbers sit in a strip above the navigation, because a large share of this audience still books by phone.

2 office numbers above the fold on every page

The IELTS mock-test library listing course bundles
Course library

8 course bundles, filtered and searchable

8 active bundles from a free trial to 24 mock tests, searchable and filterable by level. The free full mock is listed first so a student can complete a real test before paying.

1 free full mock, no purchase required

A course detail page showing what learners get and outcomes
Course detail

Contents, price and outcomes on every bundle

Each bundle lists what is included and what the student should be able to do afterwards. Pricing shows list price against current price, and promo codes are validated on the server rather than trusted from the browser.

Discounts calculated server-side, never client-side

The four skill modules: Listening, Reading, Writing and Speaking
4 skills

Each of the 4 modules runs its own format

Listening runs audio-led parts with protected playback. Reading uses passage layouts built for scanning and matching. Writing carries live word counts and rubric review. Speaking runs Introduction plus Parts 1, 2 and 3. Each keeps the exam format while reporting into one progress record.

4 modules, 1 combined progress record

The official IELTS registration information form
Official registration

Official IELTS registration, collected online

The centre also registers candidates for the official IELTS exam. The form collects test date, venue, module, delivery type, passport and NID details, destination countries and document scans, generates a reference number, and arrives in an admin inbox with the uploads attached.

Identity documents stored in private storage

The student dashboard showing the next module to take
Student workspace

The dashboard shows the next module to take

The mock card lists all 4 modules as compact rows, each showing Start, Resume or Result based on the current attempt state. The main action changes with them, so a returning student reaches the right place in 1 tap.

Start, Resume or Result per module

The module start screen before a Listening test begins
Independent modules

Modules can be taken on separate days

A full mock does not have to be completed in one session. Listening on one day and Speaking on another is supported, and each module scores and reports independently. Once all 4 are complete the platform calculates the overall band.

Modules scored separately, band combined at the end

The Writing task runner with word targets, timer and a saved indicator
Test runner

Answers survive a reload or a lost connection

The toolbar shows the timer, the word target per task tab and a live Saved state. Answers save to the server as the student writes, and a local draft is written before the network request completes. Reopening restores the exact question, notes, mode and remaining time.

Server autosave plus a local draft, merged by timestamp

The Speaking test entry with headphone check, microphone check and waiting room
AI Speaking

Speaking runs in the browser with audio checks

Speaking opens with a headphone check, a microphone check and a waiting room, so audio faults surface before the attempt rather than after. The student then answers each part aloud in the browser. The checks guide but do not block entry.

Headphone and microphone checked before entry

The score dashboard showing band progress by skill
Score dashboard

Band progress per skill, with the next test named

Average band, best band, completed attempts and pending reviews across the top, then a panel per skill with best, average and attempt count. A recommendation names the single most useful next test, calculated from the weakest skill.

Next test chosen from the weakest skill

A unified full mock report showing writing and speaking responses side by side
Full mock report

One report covering all 4 skills and an overall band

All 4 skills are grouped under the parent mock, with a band each and an overall band rounded to the nearest half. Objective questions show the student answer beside the correct one with an explanation. Writing and Speaking show rubric feedback, and Speaking includes the transcript.

Answers released only after submission

Writing rubric feedback across task achievement, coherence, lexical resource and grammar
Review workflow

Writing scored on 4 criteria, then reviewed by an admin

Writing is scored against the 4 IELTS criteria: task achievement, coherence, lexical resource and grammatical range. The platform produces a preliminary band and rubric notes, then an admin corrects or confirms them. Comments appear in the student result page, not in a separate message.

Automated first pass, admin confirms the band

The admin command center showing work queues and daily activity
Admin workspace

The admin opens on pending decisions

The first screen lists writing reviews queued, payments awaiting approval, registrations submitted and today's activity. Analytics are available but placed after the queues, since an operator opens the workspace to make decisions. Common tasks sit beside the queue, 1 click from the next action.

Payments, reviews and registrations queued first

The admin work queue and gradebook summary
Gradebook

Results grouped by mock test, 1 row per student

Results are grouped under the parent mock rather than listed as separate skill attempts, so each student is 1 row with 4 module states and an overall band. Submitted work opens from the queue. Student names are blurred in this screenshot only; the live workspace shows them in full.

1 row per mock instead of 4 skill attempts

The test, section and question builder in the admin workspace
Content builder

A 4 step builder for tests, sections and questions

A 4 step builder covering test details, sections, questions and solutions, with skill, status, duration and band target set per test. Answer keys entered here stay on the server and are used only for scoring. New mocks and Speaking variations are added in the admin, with no development work.

Answer keys never leave the server

The client.

IELTS Test BD is the online mock-test platform of British Language Club, an IELTS international test and visa processing centre in Rajshahi running admission offices at Kazla and Vodra.

4Skills in 1 platform
8Course bundles live
2Admission offices
At a glance

The engagement, on paper.

Client
IELTS Test BD, the online mock-test arm of British Language Club in Rajshahi, Bangladesh.
Audience
Bangladeshi candidates preparing for Academic and General Training IELTS, on phones as often as laptops.
Scope
Public site, course and checkout, 4 skill test runner, AI Speaking evaluation, results and certificates, payments, official registration, and 3 role-based workspaces.
Stack
React and TypeScript on Cloudflare Pages, with Pages Functions handling every sensitive server-side action.
Data
Supabase Postgres with row level security, role-based access, and private storage for documents and payment proof.
AI
Speaking transcription and band estimation through a provider-agnostic pipeline with structured output validation.
Workspaces
Student, teacher and admin, each gated by role rather than by hidden links.
The challenge

6 problems with testing IELTS online.

6 requirements an IELTS mock test has that a standard web app does not.

Speaking is the module most platforms omit

It needs a prompt, a voice, a recording, and a examiner-style judgement. Most platforms either omit it or post static cue cards, which is the module students most need to rehearse.

Marking 4 skills by hand does not scale

Listening and Reading can be marked mechanically, but Writing and Speaking need judgement. With one centre and hundreds of attempts, manual review becomes the bottleneck that caps enrolment.

A dropped connection can lose an hour of work

Test sessions run 30 to 60 minutes on connections that are not always stable. Losing a Writing task to a reload is the fastest way to lose a student permanently.

A full mock takes 3 hours in one sitting

A full mock is 4 modules back to back. Students working or studying full time need to split it across days without the platform treating that as an abandoned attempt.

Most of this market does not pay by card

Much of this market pays by mobile transfer and expects to send a transaction reference and a screenshot. A card-only checkout would exclude a large share of genuine buyers.

Answer keys must stay off the client

If correct answers ship to the browser with the questions, the test is worthless. They have to be withheld during the attempt and released only once it is submitted.

The goals

7 goals, in order.

Agreed before development started, in the order they were solved.

01

Put all 4 skills in one place

Listening, Reading, Writing and Speaking under one mock identity, so a student sees a test rather than 4 unrelated exercises.

02

Make Speaking actually possible

Record in the browser, transcribe it, and return a criterion-based estimate, so the hardest module stops being the one that gets skipped.

03

Never lose a student's work

Autosave to the server, keep a local draft as a second net, and restore the exact position on return.

04

Let each module stand alone

Any skill on any day, scored independently, with the overall band assembled once all 4 are done.

05

Return a band, not just a mark

Raw scores mean nothing to an IELTS candidate. Every module ends in a band estimate with feedback attached.

06

Take payment the way the market pays

Mobile transfer with a reference and proof, reviewed and approved by a human, with a card gateway ready behind it.

07

Give the centre 1 place to run it

Students, tests, scores, payments, registrations, documents and feedback in a single workspace instead of a spreadsheet and an inbox.

My strategy

The decisions I made.

6 build decisions and what each one traded off.

Automate the objective modules, keep judgement on the subjective ones

Listening and Reading mark themselves against a server-held key. Writing and Speaking get an automated first pass that an admin can correct. That splits the work so volume scales without pretending a model has final say on a band.

Design the Speaking room around failure, not the happy path

Microphones are wrong, tabs get closed, uploads fail. So audio is checked before entry, each answer records separately and can be retried alone, and finished recordings are held in the browser's own storage so a reload does not erase them.

Treat autosave as a correctness problem

Naive autosave loses data when an older request finishes after a newer one. Saves are debounced and ordered, later writes cannot be overwritten by earlier ones, and local and server state are merged by timestamp rather than by whichever loaded last.

Keep answer keys server-side without exception

Correct answers are never part of the data the test page loads. They are applied during server-side scoring and released to the student through a separate endpoint only after submission, which is the only version of this that actually holds.

Make manual payment a first-class flow, not a fallback

Most platforms bolt local payment on as an afterthought. Here the proof upload, the private storage, the admin review and the approval emails were built as the primary path, with the card gateway kept ready alongside it.

Build the admin as a work queue

An operator's question is what needs deciding today, not how many users signed up this quarter. So the workspace opens on pending reviews, payments and registrations, and the analytics sit behind that.

The testing engine

The testing engine.

8 systems that run during a timed attempt.

Full mocks and single modules

4 skills grouped under one mock identity, each launchable on its own, with the mock card showing all 4 states together.

Real and practice modes

Real mode runs the complete module at standard timing. Practice mode allows selected parts and adjustable limits, and the mode is remembered when an attempt resumes.

Ordered autosave

Answers, notepad, active question, selected parts, mode and time are persisted as the student works, with out-of-order responses discarded rather than applied.

Exact-position recovery

Reopening restores the question the student was on, their answers and notes, the correct mode, and the remaining time rather than restarting the clock.

Listening

Audio-led parts with controlled playback, volume and mute, section-aware numbering, and automatic marking against the server key.

Reading

Passage layouts built for scanning, supporting matching, completion, multiple choice and short answer, marked question by question with evidence shown afterwards.

Writing

Task 1 and Task 2 as separate tabs with live word counts against the task target, long-form autosave, and rubric evaluation on submission.

Timer and exit protection

Progress flushes when a field loses focus or the tab is hidden, the runner warns before leaving, and the timer auto-submits so finished work is never lost to a countdown.

The signature feature

How the AI Speaking test works.

4 stages, and what each one covers.

01 · The speaking room

  • A dedicated interface separate from text questions, showing the current part and prompt
  • Introduction, Part 1, Part 2 and Part 3 each presented with their own instructions
  • A generated examiner voice reads the prompt, and the student can replay it
  • A caption stays visible so the prompt is readable if audio playback fails
  • A 1 minute preparation timer for the Part 2 cue card, with target response times shown

02 · Recording and recovery

  • Recording happens in the browser on a phone, tablet or computer, with no app to install
  • Each response records independently, so one answer can be retried without losing the rest
  • Students can replay every saved recording before they submit
  • Finished recordings are held in the browser's own storage, so a reload or a closed tab does not erase them
  • Oversized or invalid audio is caught before submission, with Safari-compatible fallbacks
  • Explicit consent is required before any audio is sent for evaluation

03 · Transcription and band estimation

  • Every recorded answer is transcribed and attached to the prompt it belongs to
  • Submitted question IDs are validated against the selected test, so audio cannot attach to the wrong one
  • Evaluation covers fluency and coherence, lexical resource, grammatical range and accuracy, and pronunciation
  • The result is a band from 0 to 9 rounded to the nearest half, with a comment per criterion
  • Structured output validation rejects malformed model responses instead of storing them as a score
  • Band values are constrained to the valid range before they reach a student's report

04 · Human oversight

  • The interface presents the result as an IELTS-style practice estimate, not an official score
  • Administrators can review the output and request a rescore
  • An administrator can correct or finalise the band and the rubric feedback
  • Evaluation events are logged so failures can be traced rather than guessed at
  • Raw audio is not retained as a permanent student document; the report keeps the transcript, band and feedback
Running the centre

The admin workspace.

18 management screens, grouped into 4 areas.

01 · Decisions waiting

  • Pending payment approvals, with payer, method, reference and proof in one view
  • Writing and Speaking submissions queued for review
  • Official registration submissions with candidate documents attached
  • Today's activity: new students, payment records, attempts touched, reviews pending

02 · Results and students

  • A gradebook grouped by main mock test rather than by loose skill attempts
  • A unified 4 skill report with scores, feedback, answers and certificate controls
  • Student detail pages carrying activity, payments, results, documents and certificates
  • Search and filtering by student, course, skill and status
  • Historical standalone attempts stay reachable even when not tied to a test set

03 · Content and courses

  • A test builder covering test details, sections, questions and solutions
  • Skill, status, duration and band target configured per test
  • Course, package and product management, with enrolment and access control
  • Audio and test-asset management for Listening material
  • New Speaking variations added as content, without touching the product

04 · Money, documents and email

  • Payment review and approval, with rejection notes that keep access locked
  • Admit cards, money receipts, enrolment documents and course certificates
  • Full-mock certificates issued once all 4 published skills are complete and scored, once per student per test set
  • Email templates and delivery, with idempotency protection against duplicate sends
  • Settings for brand, support contact, payment instructions and communication
The comparison

This platform against a question bank.

10 differences between this platform and a practice question site.

A typical practice siteWhat I built
SpeakingOmitted, or a page of static cue cardsRecorded in the browser, transcribed, and scored on 4 criteria
MarkingManual for every submissionAutomatic for Listening and Reading, AI first pass on Writing and Speaking
Losing workA reload costs the attemptServer autosave and a local draft, restored to the exact question
SchedulingAll 4 modules in one sittingAny module on any day, each scored independently
ReportingFour unrelated percentagesOne full-mock report with a band per skill and an overall band
Answer keysShipped to the browser with the questionsHeld server-side, released only after submission
PaymentCard onlyMobile transfer with proof and admin approval, gateway ready
CertificatesIssued by hand, if at allIssued automatically on full-mock completion, once per test set
OperationsA spreadsheet and an inboxOne workspace for students, tests, payments, registrations and documents
What was built

The platform, by the numbers.

Counts from the delivered build. Not traffic or revenue figures.

4Skills scored
18Admin screens
8Course bundles live
3Role-based workspaces
Business impact

What this gets the centre.

How the platform changes the centre's operation. Not separately measured outcomes.

Speaking practice finally scales

A student can rehearse a full Speaking test and get criterion feedback without an examiner sitting with them, which is the part of preparation that used to cap how many students the centre could serve.

Marking time collapses

Listening and Reading need no human at all, and Writing and Speaking arrive pre-scored with rubric notes, so review becomes confirmation rather than assessment from scratch.

Students stop losing work

The most common reason people abandon an online test is losing an hour to a reload. 2 layers of saving mean a dropped connection costs seconds, not the attempt.

Preparation fits around a job

Independent modules let a working student practise in the time they actually have, which turns a full mock from a weekend commitment into 4 manageable sessions.

Payment works the way the market works

Accepting a mobile transfer with a reference and a screenshot, reviewed by a person, keeps the buyers a card-only checkout would have turned away.

One system instead of five

Students, tests, scores, payments, registrations, documents and email live together, so the centre stops reconciling a spreadsheet against an inbox against a folder of receipts.

Questions

The short version.

What did you build for IELTS Test BD?

The whole platform, not a website with a quiz attached:

  • Public site: homepage, course bundle library, course detail pages, checkout, support, and the official IELTS registration form.
  • Testing engine: Listening, Reading, Writing and Speaking with real and practice modes, ordered autosave, and exact-position resume.
  • AI Speaking: browser recording, local recovery, transcription, 4 criterion evaluation, and half-band estimates with feedback.
  • Results: per-module reports, a unified 4 skill full-mock report with an overall band, and automatic certificates.
  • Operations: student, teacher and admin workspaces covering payments, reviews, registrations, content building, documents and email.
How does the AI Speaking test work?

It runs the shape of a real Speaking interview, in a browser:

  • Before it starts: a headphone check, a microphone check and a waiting room, so audio problems surface before the test rather than after.
  • During: the examiner voice reads each prompt with a caption fallback, Part 2 gets its 1 minute preparation timer, and each answer records separately so one can be retried alone.
  • Safety net: finished recordings are kept in the browser's own storage, so a reload or a closed tab does not lose them.
  • After: each answer is transcribed, evaluated on fluency and coherence, lexical resource, grammatical range and accuracy, and pronunciation, then returned as a half-band estimate with per-criterion comments.
  • Consent: audio is only sent for evaluation after the student explicitly agrees, and raw audio is not kept as a permanent document afterwards.
Is the AI band an official IELTS score?

No, and the platform is deliberate about saying so:

  • What it is: an IELTS-style practice estimate, produced on the same 4 criteria a real examiner uses, to show a student roughly where they stand and what to fix.
  • What it is not: an official result. Only the test partners can issue those, and the interface never presents the estimate as one.
  • Human oversight: an administrator can request a rescore, or correct and finalise the band and rubric feedback themselves.
  • Guardrails: malformed model output is rejected rather than stored, and band values are constrained to the valid 0 to 9 range before they reach a report.
What happens if a student's connection drops mid-test?

Very little, which was the point:

  • 2 layers: answers save to the server as the student works, and a local draft is written before the network request finishes.
  • Ordering: saves are debounced and applied in order, so a slow earlier request cannot overwrite newer input.
  • On return: local and server state are compared by timestamp and only newer local data is merged, then the exact question, notes, mode and remaining time are restored.
  • Leaving the page: progress flushes when a field loses focus or the tab is hidden, and the runner warns before a student navigates away from a running test.
Can you build a platform like this for my institute?

Yes. This is the largest build in my portfolio and the pattern transfers:

  • Best fit: training centres and coaching institutes whose delivery is capped by how much marking and admin their staff can absorb.
  • What transfers: timed testing with reliable autosave, automated scoring with human review, role-based workspaces, local payment handling, and document generation.
  • What is specific: the IELTS band logic, the 4 skill structure and the Speaking criteria were built for this exam and would be rebuilt for yours.
  • What to weigh: a platform on this scale is a serious build, not a website project, and it earns back through the staff hours it stops consuming.
  • Next step: book a free call and tell me what you teach.
Keep exploring

More case studies.

View all
Your turn

Stop letting marking cap your enrolment.

If enrolment is limited by how much your staff can mark, a platform that automates the mechanical scoring removes the ceiling.