/Modulhandbuch

Maschinenlesbarmachung der Modulhandbücher des KIT inkl. schlechtem Frontend

Primary LanguageHTMLGNU General Public License v3.0GPL-3.0

Dieses Projekt entstand aus der Frustration heraus, in den Modulhandbüchern effektiv Module zu finden, die sich interessant anhören und auch in den persönlichen Studienablaufplan passen.

Das Endergebnis ist auf GitHub Pages zu finden.

Ebenso die Zwischenergebnisse für Bachelor und Master in maschinenlesbaren Form als JSON Dateien.

Als Konsument endet hier der relevante Teil dieses README, im Folgenden wird lediglich die Projektstruktur und eventuelle Zukunftsvisionen erläutert (langweilig).

Contributions sehr willkommen! (Insbesondere für das Frontend..)

Struktur

Modulhandbuch.Frontend

Grottenschlecht, in kurzer Zeit zusammengezimmert, weil Frontend Entwicklung schrecklich ist ich Frontend hasse.

Muss aufgeräumt werden, braucht wesentlich mehr Funktionalität und bessere UX.

Bietet sich am ehesten für Verbesserungen an (bitte, Hilfe).

Modulhandbuch.Parser

Das Herzstück des Ganzen.

Versucht automatisch die neusten Modulhandbücher als .pdf-Dateien herunterzuladen und parst sie dann. Zunächst zu Strings und dann via Regex zu Datenobjekten.

.pdf-Parsing ist sehr 🥴, insbesondere was Whitespace angeht, aber es funktioniert gut genug für unsere Zwecke (eine Layout-Änderung könnte sehr viel Ärger bedeuten, aber warum sollten sich denn Dinge jemals komplett grundlos ändern??)

Modulhandbuch.Shared

Datenobjekte, die jeder brauchen kann.

Zukunft?

Falls dieses Projekt irgendjemanden interessieren sollte, sind hier ein paar potentielle Dinge, die man in der Zukunft umsetzen könnte:

  • Das Frontend gut machen
  • Die Beschreibungen besser parsen, zurzeit sind sie einfach nur ein riesiger, schwer leserlicher Blob.
  • Die Beschreibungen richtig parsen, mehrseitige Beschreibungen werden einfach abgeschnitten! (Die Idee wäre wahrscheinlich manuell die Seiten zu enumerieren und sie zu Modulen zusammenzuführen. (Das sollte wahrscheinlich auch die Performanz verbessern!))
  • Teilleistungen Support? Braucht man das überhaupt?
  • Studienplaner, der die ganzen verschiedenen wacky Regeln beachtet.

Built with ⛈️ at 🌙 somewhere in 🇩🇪 (I should be studying rn)