Skip to content
TQT
Early Product Engineering 2024

LMS — Learning & Assessment Platform

A Django learning platform with a separate AI-assisted monitoring service

A full-stack learning and assessment platform covering structured course content, enrollment, quizzes, reporting, role-based workflows, and a separately deployed face-detection service.

Overview

From Solo Prototype to Team Platform

LMS is a full-stack learning and assessment platform designed to support course administration, structured learning content, learner enrollment, online quizzes, assessment reporting, and role-based operations.

The application's initial version was designed and developed independently during my internship. After the solo prototype was positively received, its core design approach was adopted into a larger team implementation, which was developed collaboratively rather than solely owned by one person. I continued as a primary developer within the team for the extended platform.

The project was an early opportunity to work across the complete product lifecycle: defining the domain model, implementing backend and user-facing workflows, integrating an AI-assisted service, and deploying the system through a containerized environment.

Product Scope

Structured learning hierarchies and multi-role operations

The platform supports multiple user and operational workflows, dividing administrative and instructor actions from learner actions. Course content is modeled hierarchically to manage learning material within a consistent product workflow:

Content Domain Model Course → Section → Module → Lesson or Quiz
  • Content Administration — Instructors can manage training programs, courses, ordered sections, learning modules, lessons, quizzes, questions, and answer options.
  • Learner Workflows — Learners browse available courses, self-enroll, navigate structured lessons, complete quizzes, and review attempt histories.
  • Assessment Tracking — Persisted attempt records keep track of submitted answers, duration, scores, and assessment-monitoring logs.
  • Data Utilities — Supporting tools import pre-structured course content, convert spreadsheets to structured JSON, and generate multi-set examinations.

Architecture

Decoupled Multi-Service Topology

To separate stateful product workflows from compute-intensive AI inference, the system is structured as a containerized environment managed via Docker Compose. Static files and uploaded media are mounted directly to the reverse proxy layer for efficient serving.

Browser (Client)
      |
Nginx reverse proxy
      |
-----------------------------------------------
|                                             |
Django LMS Application (State, Users, Quiz)   FastAPI Service (PyTorch model)
|                                             |
Database                                      Face-presence signals for assessment monitoring

Engineering Decisions

Architecting for reliability and performance

  • Isolate Compute-Oriented Inference — Placed face detection behind an independent FastAPI service. This separated stateful workflows from GPU-dependent runtimes and model load overhead, keeping the core Django server lightweight and responsive.
  • Model the Learning Domain Explicitly — Represented courses using strict, structured database hierarchies instead of flat content strings. This supported unified course management for instructors and structured linear navigation for learners.
  • State Preservation for Audit Trails — Persisted assessment monitoring metrics alongside raw answers. Attempt records serve as comprehensive evidence reports containing duration, scores, tab-blur counts, and face-detection logs.
  • Standardized Service Orchestration — Orchestrated services (Django, FastAPI, Nginx, Cloudflare Tunnel) using Docker Compose to reduce environment drift between local development and deployment.

Stack

DjangoFastAPIPyTorchDocker ComposeNginxCloudflare TunnelPandasPlotlySQLite/MySQLBootstrap