Skip to content
All projects
Software Development

Interactive E-Learning Platform

Learning platform where students run Python directly in the browser via Pyodide, with interactive quizzes, automated scoring, and progress dashboards, built on a REST API covering content, authentication, progress tracking, and personalized learning paths.

Key result

In-browser PythonPyodide execution, no backend runner

01Problem

Teaching programming online usually means either sending student code to a server to execute — which brings sandboxing, cost, and latency problems — or dropping the interactive part altogether and settling for static lessons.

02Objective

Build a learning platform where students write and run Python in the browser, with quizzes scored automatically and progress tracked, so the interactive part works without a server-side execution environment.

03Architecture

  1. React / Next.js
  2. Pyodide (in-browser Python)
  3. REST API
  4. Progress & Content Store
Lessons in the browser, state and content over the API

04Technology

  • Next.js
  • React
  • REST APIs
  • Pyodide

05Implementation

Key technical decisions

  1. 01Ran Python client-side through Pyodide, which removes the need for a sandboxed server-side execution environment.
  2. 02Designed the REST API around four concerns — content management, user authentication, progress tracking, and personalized learning paths.
  3. 03Kept frontend and backend state in sync so progress survives navigation and reload.
  4. 04Built the lesson UI from reusable, accessible React components rather than page-specific markup.

What was built

  • Interactive quizzes with automated scoring and progress dashboards.
  • REST API for content management, user authentication, progress tracking, and personalized learning paths.
  • Lesson navigation, an embedded code editor, and progress visualizations built as reusable, accessible React components.

06Data

What the platform stores

  • Lesson and course content served through the content-management endpoints
  • User accounts and authentication state
  • Per-student progress records backing the dashboards
  • Personalized learning paths derived from progress

07Results

Pyodide

Python runs in the browser

Automated

Quiz scoring

Reusable

Accessible React components

REST

Content, auth, and progress API

10Links

No public repository for this one — happy to walk through the code on request.