MCPSERV.CLUB
QST

QST

Self-Hosted

Secure, open‑source assessment platform for scalable quizzes and exams

Stale(40)
0stars
0views

Overview

Discover what makes QST powerful

QST (Quick Self‑Test) is a fully self‑hosted assessment engine that delivers end‑to‑end quiz, test, and grading functionality. It is designed to run on an institution’s own network or private cloud, ensuring data privacy and eliminating vendor lock‑in. The core product is a web application that accepts a wide range of question formats, runs them on demand or in scheduled batches, auto‑marks and produces detailed analytics. QST’s architecture is intentionally lightweight yet extensible, making it a natural fit for integration into existing LMS ecosystems or as a standalone testing portal.

Backend

Frontend

Database

Search & Caching

Overview

QST (Quick Self‑Test) is a fully self‑hosted assessment engine that delivers end‑to‑end quiz, test, and grading functionality. It is designed to run on an institution’s own network or private cloud, ensuring data privacy and eliminating vendor lock‑in. The core product is a web application that accepts a wide range of question formats, runs them on demand or in scheduled batches, auto‑marks and produces detailed analytics. QST’s architecture is intentionally lightweight yet extensible, making it a natural fit for integration into existing LMS ecosystems or as a standalone testing portal.

Technical Stack

  • Backend: The server is written in Python 3.x, leveraging the FastAPI framework for a high‑performance, async API layer. Business logic is encapsulated in modular services that handle question parsing, scoring algorithms, and analytics generation.
  • Frontend: A single‑page application built with React (or alternatively Vue) communicates with the backend via JSON over HTTPS. The UI is responsive, supports drag‑and‑drop question editing, and renders quizzes in both mobile and desktop contexts.
  • Database: PostgreSQL is the primary data store, chosen for its robust support of JSONB columns (used to persist question metadata) and full‑text search capabilities. Optional SQLite support is available for lightweight deployments.
  • Search & Caching: ElasticSearch can be plugged in for advanced search across question banks, while Redis provides short‑term caching of session data and rate limiting.
  • Containerization: A Docker Compose file ships with the project, exposing services such as app, db, redis, and optional elasticsearch. Kubernetes manifests are also available for large‑scale, multi‑pod deployments.

Core Capabilities

  • Question Import/Export: Native support for QST XML, Moodle XML, Canvas, Chamilo, Blackboard, and the ISO‑standard QTI 2.1 format. Conversion utilities allow round‑trip migration between these formats, preserving formatting, images, and alt‑text for accessibility compliance.
  • Auto‑Marking Engine: Multi‑type scoring (multiple choice, short answer, essay with keyword matching) runs in parallel threads, providing instant results and a confidence score for each answer.
  • Analytics & Reporting: Real‑time dashboards expose per‑question difficulty, discrimination indices, and item response curves. Reports can be exported as PDF or CSV for archival purposes.
  • API & Webhooks: A RESTful API exposes endpoints for CRUD operations on quizzes, questions, and results. Webhooks can be configured to notify external systems (e.g., an LMS) upon test completion or grading updates.
  • Security: All data is encrypted at rest using PostgreSQL’s native encryption features, and HTTPS/TLS terminates at the reverse proxy (NGINX). Role‑based access control is enforced through JWT tokens.

Deployment & Infrastructure

QST can be deployed on any Linux distribution that supports Docker, or directly from source using pip. The minimal hardware requirements are modest: a single CPU core and 2 GB RAM for small installations; larger deployments scale horizontally by adding more app containers behind a load balancer. The Docker Compose stack includes health checks and automatic restarts, simplifying DevOps workflows. For institutions requiring high availability, the PostgreSQL cluster can be configured with Patroni or BDR, and Redis can run in a sentinel configuration.

Integration & Extensibility

  • Plugin System: Developers can write Python plugins that hook into the scoring pipeline or extend the admin UI. Plugins are discovered via a simple entry‑point registration, allowing custom grading logic or third‑party analytics tools.
  • LTI 1.3 Support: QST can act as an LTI tool provider, enabling seamless launch from popular LMS platforms such as Canvas or Moodle.
  • SAML/OIDC: Single‑sign‑on is supported out of the box, making it easy to integrate with institutional identity providers.
  • Custom Themes: The React frontend supports CSS overrides and a theming API, allowing branding to match institutional guidelines without modifying source code.

Developer Experience

The project ships with comprehensive documentation covering installation, API reference, and migration guides. The codebase follows PEP‑8 conventions, and type hints are fully annotated for IDE autocomplete. Unit tests (pytest) cover 85 % of the code path, and continuous integration is available on GitHub Actions. The active community maintains a Discord channel where developers can ask questions, propose features, or contribute plugins.

Use Cases

  1. University Exam System: Deploy QST on campus servers to conduct mid‑term and final exams, leveraging the proctored desktop mode for high‑stakes assessments.
  2. Corporate Training: Use QST as a lightweight quiz engine for compliance training, exporting results to an internal LMS via LTI.
  3. Open‑Source Education Projects: Integrate QST into a MOOC platform to provide secure, auto‑graded quizzes while keeping data under institutional control.
  4. Research Studies: Export question banks in QTI for psychometric analysis, and ingest data into statistical software via the API.

Advantages

  • Zero Vendor Lock‑In: All data and question banks remain on-premises; no proprietary formats or cloud dependencies.
  • GPL v2 Licensing: Free for commercial use, with a permissive open‑source license that encourages contributions.
  • High Performance: FastAPI’s async engine and PostgreSQL JSONB indexing deliver sub‑second response times even under load.
  • Extensibility: Plugin hooks and LTI support mean QST can be tailored to

Open SourceReady to get started?

Join the community and start self-hosting QST today