Skip to content
Oluwaferanmi Adeniji
← WorkMarch 2025

Testgraders

A global IELTS practice grading platform with automated grader distribution and bi-directional review systems.

Fullstack Developer·Freelance

Overview

Testgraders is a platform where IELTS candidates submit practice essays and speaking recordings, and qualified graders provide detailed feedback. The system needed to handle media uploads, distribute work fairly among graders, and present results in dense, data-rich dashboards.

What needed to work

  • Essay submission with text editor and file upload
  • Speaking submission with audio/video recording
  • Grader assignment that distributes work equitably
  • Bidirectional review system (grader reviews student, student reviews grader)
  • High-density dashboards for managing hundreds of submissions
  • In-app notifications for status changes
  • Media storage and streaming at scale

Architecture

Next.js (Frontend)
       ↓
   Hono API
       ↓
  Cloudflare D1 (Database)
  Cloudflare R2 (Media Storage)
  Cloudflare KV (Caching)
  Cloudflare Durable Objects (Real-time)

Cloudflare’s serverless stack was chosen for global edge deployment. D1 provided a familiar SQL interface without managing infrastructure. R2 handled media storage without egress fees critical for a platform where users upload and stream large audio/video files. Durable Objects managed real-time state for grader assignment queues.

Engineering challenges

Grader distribution algorithm

The core problem: distribute submissions to graders fairly while respecting grader availability, specialization, and workload limits.

A naive round-robin approach failed because:

  • Some graders specialize in essays but not speaking
  • Graders have different availability windows
  • Equal distribution doesn’t mean fair distribution (some submissions require more time)

The solution uses a weighted scoring system that considers grader specialization match, current workload, and historical completion speed. Submissions are queued and matched to the best-available grader rather than simply the next one in line.

Bidirectional reviews

After grading, both the student and grader rate each other. This creates a quality feedback loop consistently low-rated graders are flagged, and students with poor submission quality are surfaced.

The review system needed to prevent gaming: reviews are anonymous during the review period, and neither party can see the other’s review until both have submitted (or the window expires).

High-density dashboards

Graders and administrators need to manage hundreds of submissions simultaneously. The UI required:

  • Sortable, filterable tables with column-level controls
  • Batch actions (assign, approve, reject)
  • Real-time status updates without page refreshes
  • Keyboard navigation for power users

TanStack Table handled the data layer. Custom UI with Tailwind CSS and shadcn/ui provided the visual density without sacrificing readability.

What I shipped

  • Full-stack architecture on Cloudflare’s serverless platform
  • Grader and student dashboards with dense data tables
  • In-app notification system
  • Audio/video upload, storage, and streaming
  • Grader distribution algorithm
  • Bidirectional review system
  • CI/CD pipelines for automated deployments

Outcome

The platform supports the complete IELTS practice workflow: submission, grading, feedback, and review with fair workload distribution and real-time status tracking across all user types.

My role

Fullstack Developer responsible for architecture, grader distribution logic, dashboards, media handling, and deployment infrastructure.

Stack

Next.jsHonoCloudflare D1R2TanStack Table