Work / Case study

Agency Training Program

Shipped Shipped July 14, 2026 Python

Built an internal learning management system (LMS) that standardizes staff onboarding with video modules, randomized assessments, remediation gates and automated manager reporting.

Source code is private. Walkthroughs are available on request.

39automated tests passing
1Playwright end-to-end suite (web variant)

Business impact

Standardized onboarding into one measurable program: consistent content, enforced mastery and automatic manager reporting, so training accountability no longer depends on manual follow-up.

Problem

Training was scattered across decks and videos, with no assessment tracking and no manager visibility into results. That made onboarding inconsistent and hard to hold people accountable to.

Solution

Designed and delivered a content-driven training platform. Each module (video, slides, chapters, question bank and Core Process document) is data, added through a built-in import wizard with no code change or rebuild, so non-technical staff can publish training.

Results & highlights

  • Engineered a randomized assessment engine: round-robin draws across sections, with shuffled questions and answer options on every attempt
  • Enforced mastery: a failed attempt triggers a server-enforced remediation gate, so staff must rewatch the sections they missed before retaking
  • Automated score reporting to the right manager through Outlook COM, working around a tenant that blocks SMTP AUTH; failed sends queue in SQLite and retry
  • Added in-app PDF.js document viewing and cross-content search across narration, slides, documents and links
  • Quality gate: 39 automated tests passing (verified 2026-09-22), plus a Playwright end-to-end suite for the web variant

Competencies demonstrated

  • Learning management system (LMS) design: Content-driven modules (video, slides, chapters, question bank, Core Process document) published through an import wizard with no code changes.
  • Assessment engineering: Randomized round-robin draws with shuffled questions and answers, plus a server-enforced remediation gate before retakes.
  • Enterprise integration: Automated manager score reports through Outlook COM, working around a tenant that blocks SMTP AUTH, with a SQLite retry queue.
  • Search & document viewing: In-app PDF.js viewer and search across narration, slides, documents and links.
  • Test automation: 39 automated tests passing, plus a Playwright end-to-end suite for the web variant.

Architecture

  1. Import wizardslides + draft quiz
  2. Module foldersschema-validated
  3. Video + search UIlocal media server
  4. Assessment enginerandomized draws
  5. Remediation gaterewatch before retake
  6. Manager reportPDF by email, retry queue
Design-level view. Hostnames, addresses and account details are intentionally omitted.

Notes

  • content/ (training videos and decks) and config/roster.json are not in the repo; the roster in koi_training/roster.py is fictional.
  • web-portal/ holds a later browser-based variant (single HTML page + PHP roster API) and its Playwright end-to-end test.

Next: FileGate — Naming Compliance Auditor + AI Intake →