reoder folder structure

This commit is contained in:
Elmar Kresse
2024-07-22 16:01:16 +02:00
parent 5faa9d3b63
commit 0e258cf9b6
9 changed files with 3 additions and 6 deletions

19
content/edX-k8s.asciidoc Normal file
View File

@ -0,0 +1,19 @@
// image base directory::media/
ifndef::imagesdir[:imagesdir: ../media]
=== Kubernetes Cluster Setup for edX
This document describes the steps to set up a Kubernetes cluster for hosting the edX platform. Kubernetes is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications.
The repository with all informations and the helm charts is available at link:https://github.com/openedx/openedx-k8s-harmony[openedx/openedx-k8s-harmony].
In particular, this project aims to provide the following benefits to Open edX operators:
* Ease of use and rapid deployment: This project aims to provide an Open edX hosting environment that just works out of the box, that can be easily upgraded, and that follows best practices for monitoring, security, etc.
* Lower costs by sharing resources where it makes sense. For example, by default Tutor's k8s feature will deploy a separate load balancer and ingress controller for each Open edX instance, instead of a shared ingress controller for all the instances in the cluster. Likewise for MySQL, MongoDB, ElasticSearch, and other resources. By using shared resources by default, costs can be dramatically reduced and operational monitoring and maintenance is greatly simplified.
** For setups with many small instances, this shared approach provides a huge cost savings with virtually no decrease in performance.
** For larger instances on the cluster that need dedicated resources, they can easily be configured to do so.
* Scalable hosting for instances of any size. This means for example that the default configuration includes autoscaling of LMS pods to handle increased traffic.
* Flexibility: this project aims to be "batteries included" and to support setting up all the resources that you need, with useful default configurations, but it is carefully designed so that operators can configure, replace, or disable any components as needed.
image:edX-k8s.drawio.svg[edX-K8s Deployment,align=center]

38
content/edX.asciidoc Normal file
View File

@ -0,0 +1,38 @@
ifndef::imagesdir[:imagesdir: ../media]
=== Allgemeine Informationen zur Open-Source-Lernplattform edX ===
**Gründung und Geschichte:**
edX wurde im Jahr 2012 von der Harvard University und dem Massachusetts Institute of Technology (MIT) angfangen zu entwickeln. Die Plattform wird im Rahmen einer Non-Profit-Organisation geleitet, um hochwertige Bildung für alle zugänglich zu machen und eine Gemeinschaft von Lernenden und Lehrenden weltweit zu schaffen. Seit ihrer Gründung hat sich edX zu einer der größten Plattformen für Online-Lernen entwickelt, die Kurse von Universitäten und Institutionen weltweit anbietet.
**Technische Details:**
**Techstack:**
* **Programmiersprachen:** Python (hauptsächlich Django für das Backend)
* **Frontend:** JavaScript, React
* **Datenbanken:** MySQL, MongoDB
* **Containerisierung:** Docker
* **Continuous Integration/Continuous Deployment (CI/CD):** GitHub Actions, Jenkins
**Module und Funktionen:**
* **LMS (Learning Management System):** Verwaltung von Kursinhalten, Benutzern und Einschreibungen.
* **CMS (Content Management System):** Erstellung und Verwaltung von Kursinhalten.
* **XBlock:** Erweiterbares Modul zur Implementierung verschiedener Lernkomponenten wie Videos, Quizze, Diskussionen und mehr.
* **LTI (Learning Tools Interoperability):** Ermöglicht die Integration von externen Tools und Ressourcen.
* **Open edX Studio:** Ein Autorentool zur Kurserstellung und -verwaltung.
* **Analyse-Tools:** Bereitstellung von Datenanalysen und Berichten zur Lernleistung.
**Architektur:**
- **Microservices-Architektur:** edX nutzt eine Microservices-Architektur, um verschiedene Funktionen und Module zu trennen und unabhängig zu skalieren.
- **APIs:** Umfangreiche RESTful APIs zur Integration und Erweiterung der Plattform.
- **Scalability:** Nutzung von Cloud-Diensten zur Skalierung und Verwaltung von Benutzerlasten.
image::edx-architecture.png[edX-Architektur]
Hauptkomponenten:
* edx/edx-platform repo contains the code for the edX platform.
* edx/edx-analytics-dashboard repo contains the code for edX Insights.
* edx/configuration repo contains scripts to set up and operate the edX platform.

View File

@ -0,0 +1,30 @@
=== Code Grade ===
link:https://docs.codegra.de[CodeGra.de]
Commercial solution for grading code submissions in an external tool, integratable via the open LTI interface.
==== Features ====
* Automatic grading through unit tests, I/O, error code, linter
* Inline comments like code review
* Plagiarism detection to check similarity between submissions
=== CodeOcean ===
link:https://codeocean.openhpi.de/[CodeOcean] ist eine webbasierte Plattform für praktische Programmierübungen, die hauptsächlich in MOOCs (Massive Open Online Courses) wie auf openHPI verwendet wird. Sie ermöglicht es Lernenden, Code direkt in ihrem Browser zu schreiben, auszuführen und zu testen, ohne eine Entwicklungsumgebung einrichten zu müssen. Zu den Funktionen gehören Syntax-Hervorhebung, serverseitige Code-Ausführung und automatisiertes Feedback durch Unit-Tests. Zusätzlich können Lernende kontextbezogene Fragen stellen, was eine kollaborative Lernumgebung fördert.
Erfasste Ziele und Anforderungen dieser Arbeit sind:
- Vielseitigkeit: Einsatz verschiedener Programmiersprachen möglich
- Einsteigerfreundlichkeit: Einfaches User Interface
- Skalierbarkeit: Unterstützung für viele Nutzer
- Sicherheit: Ausführung von fremdem Code in einer Sandbox
- Interoperabilität: Integration in Lernmanagement-Systeme
Der gewählte Ansatz ist daher dem gewünschten am ähnlichsten. Es werden eine vorbestimmte Anzahl an Docker-Containern als Ausführungsumgebungen für die Programmieraufgaben bereitgestellt und jeweils für die Bearbeitung der Programmieraufgaben den Nutzern zugewiesen. CodeOcean unterstützt die Integration in andere Lernmanagement-Systeme über die offene LTI-Schnittstelle
=== EmpowrOrg Coppin ===
link:https://github.com/EmpowrOrg/Coppin[EmpowrOrg Coppin] ist ein Tool zur Erstellung und Bewertung von Aufgaben, das zusammen mit **Doctor** und **CodeEditorXblock** verwendet wird. Durch die Kombination dieser drei Werkzeuge kann jede Organisation, die Open Edx nutzt, Programmieraufgaben lehren und bewerten. Coppin ist in **Doctor** integriert, um die Bewertung von Aufgaben zu ermöglichen, und verwendet **CodeEditorXblock** als Code-Editor und -Ausführer.
Python und Swiftcode, können local ausgeführt und getestet werden. Die Ergebnisse werden in der **Doctor**-Oberfläche angezeigt. Die Bewertung erfolgt durch die automatische Ausführung von Unit-Tests, die in den Aufgaben definiert sind.