MCPSERV.CLUB
RELATE

RELATE

Self-Hosted

Interactive courseware for code, quizzes, and analytics

Active(95)
419stars
0views
Updated 3 days ago
RELATE screenshot 1
1 / 2

Overview

Discover what makes RELATE powerful

RELATE is a self‑hosted, web‑based learning management system (LMS) built on **Django**. It is engineered for rapid content authoring and deployment, leveraging the *human‑readable* combination of **YAML** for course metadata and **Markdown** for lesson text. The platform treats every learning unit as a *flow* – an ordered sequence of pages that can be static or interactive. This modularity enables instructors to mix multimedia, quizzes, code editors, and live classroom tools (XMPP instant messaging) within a single course instance.

Language & Framework

Database

Front‑end

Execution Environment

Overview

RELATE is a self‑hosted, web‑based learning management system (LMS) built on Django. It is engineered for rapid content authoring and deployment, leveraging the human‑readable combination of YAML for course metadata and Markdown for lesson text. The platform treats every learning unit as a flow – an ordered sequence of pages that can be static or interactive. This modularity enables instructors to mix multimedia, quizzes, code editors, and live classroom tools (XMPP instant messaging) within a single course instance.

Technical Stack

  • Language & Framework: Python 3.x, Django 4.x (MVC pattern).
  • Database: PostgreSQL is the default backend, but any SQL‑compatible DB supported by Django can be used.
  • Front‑end: Server‑rendered templates powered by Django’s templating engine, with optional static assets served via CDN or local storage.
  • Execution Environment: Code questions run in isolated Docker containers, providing sandboxed execution and automatic grading via a pluggable grader module.
  • Messaging: XMPP integration (e.g., via xmpp-popup) for real‑time classroom chat.
  • Analytics: Built‑in metrics engine aggregates student responses, quiz scores, and interaction logs; data can be exported as CSV or visualized in dashboards.

Core Capabilities

  • Content Versioning: Courses are stored in a Git repository; every edit creates a new commit, allowing instructors to preview changes while students remain on stable releases.
  • Flow Engine: Dynamically constructs lesson paths based on student state (e.g., prerequisites, grades).
  • Extensible Question Types: Markdown pages can embed custom widgets; a code editor with syntax highlighting, sandboxed execution, and optional human grading.
  • API & Webhooks: RESTful endpoints expose course data, user progress, and grading results. Custom webhooks can trigger external services (e.g., Slack notifications).
  • Plugin Architecture: Developers can add Django apps that hook into the flow lifecycle, register new page types, or extend grading logic.

Deployment & Infrastructure

RELATE is designed for containerized deployment. A single Docker image bundles the Django application, PostgreSQL client libraries, and optional XMPP broker. For production, a Docker Compose or Kubernetes manifest can orchestrate the LMS alongside a PostgreSQL cluster and reverse‑proxy (NGINX/Traefik). Horizontal scaling is supported via Django’s stateless request handling; session data can be stored in Redis or the database for multi‑node setups. The Git‑backed content repository can be mounted as a volume, enabling live updates without downtime.

Integration & Extensibility

  • Plugin System: The relate.plugins package allows third‑party developers to register new flow page types or grading backends.
  • REST API: Exposes endpoints for course metadata, user authentication (via Django’s auth), and submission handling.
  • Webhooks: Events such as submission received or grade updated can be forwarded to external services.
  • Custom Markup: RELATE’s own markup language extends Markdown with tags for embedding code editors, quizzes, and XMPP widgets.

Developer Experience

Configuration is driven by Django’s settings.py, with optional environment variables for database credentials, Git repository paths, and XMPP server details. The project ships with comprehensive documentation covering content authoring, plugin development, and deployment. An active community on GitHub provides issue tracking, pull requests for new features (e.g., additional question types), and a discussion forum for best practices. The modular architecture keeps the codebase approachable: most developers can contribute by adding a new page type or integrating an external grading service.

Use Cases

  • University Courseware: Institutions can host multiple courses in a single RELATE instance, leveraging Git for version control and XMPP for live lectures.
  • Corporate Training: Companies can embed code exercises with sandboxed execution, automatically grade employee submissions, and track progress via the built‑in analytics.
  • MOOC Platforms: Educators can deploy RELATE on cloud infrastructure, scale horizontally, and expose public APIs to integrate with external LMS ecosystems.

Advantages

  • Performance: Django’s ORM and template caching keep page load times low, while Docker‑based code sandboxes isolate execution without heavy virtual machines.
  • Flexibility: The Markdown/YAML workflow allows non‑technical instructors to author content quickly, while developers can extend functionality through plugins.
  • Open Source Licensing: RELATE is released under a permissive license, giving organizations full control over the codebase and the ability to customize without vendor lock‑in.
  • Scalability: Stateless request handling and optional Redis session storage make it straightforward to scale out behind a load balancer.

In summary, RELATE offers a developer‑friendly, extensible platform for building interactive courseware that balances rapid content creation with robust versioning, sandboxed code execution, and real‑time classroom collaboration.

Open SourceReady to get started?

Join the community and start self-hosting RELATE today