Kleine Web-App, die uns SE-lern die Studienplanung ein wenig erleichtern soll. Im jetzigen Zustand sind die Studiengangsinformationen nur händisch in einem json file konfigurierbar.
Disclaimer: Das Tool ist nach bestem Wissen und Gewissen erstellt, aber für Korrektheit der Ergebnisse kann nicht garantiert werden! Jegliche Belegungen, die man sich zusammenstellt, müssen im Zweifel mit der Prüfungsordnung und/oder dem Studiengangskoordinator abgesprochen werden!
Ein deployment inkl. CI/CD läuft via render.com. Es ist als "WebService" eingerichtet, verwendet die Kommandos build:prod
und start
aus dem package.json
und läuft über @FabianWildgrube's account. Pull Requests auf master werden automatisch separat deployed zum reviewen. Jeder push auf master
löst ein neues Deploymnet zu der o.g. url aus. Deployments werden gescipped, falls [skip deploy]
in der commit message enthalten ist.
Ein zweites deployment ist netterweise von @esclear gehosted. Es ist ein statischer build des Repos (Stand Jan. 23rd 2023).
Minimaler expressJS Server (Datei server.js
auf root-level), der die Angular App served und unter der Route /data
die Studiengangsinfos bereitstellt.
Die Daten sind zur Zeit hardgecoded in einem json File (data/studiengang_se14.json
).
Ein Studiengang besteht aus einigen Grunddaten (Name, ECTS, Anzahl Semester, ...) sowie Modulen, Veranstaltungstypen und Veranstaltungen (Vorlesungen, Seminare, etc.).
Die (noch nicht vollständigen) Daten für den 14. Jahrgang sind unter data/studiengang_se14.json
zu finden. Das detaillierte Schema für die Daten ist unter src/app/datatypes
zu finden.
Angular frontend, das links alle Veranstaltungen eines Studiengangs nach Modulen geordnet anzeigt und rechts die konkrete Auswahl an Veranstaltungen auf die Semester. Rechts unten lebt eine Komponente, die die Regeln des Studiengangs anzeigt und ob diese durch die gewählten Veranstaltungen alle erfüllt sind (zB mind. 120 LP, mind. 1 Seminar, etc.).
"Behind the scenes" existieren drei Services:
StudiengangService
, der hauptsächlich die Daten vom Backend holt und diese der ganzen App zur Verfügung stellt.BelegungService
, der die aktuelle Auswahl an Vorlesungen hält und Methoden sowie Events zum Hinzufügen/Entfernen von Veranstaltungen zur Belegung bereitstellt.RegelCeckerService
, der bei jeder Belegungsänderung alle Regeln des aktuellen Studiengangs überprüft, den aktuellen Regelzustand speichert und Components zur Verfügung stellt.Besonderheiten / Designentscheidungen:
src
Verzeichnis cd'enng build --watch
//--watch für automatisches Recompilen des frontendsnpm run start
startet den Serverlocalhost:8080
erreichbarHilfe ist gerne gesehen :) Falls Du Lust hast eins der Features aus der Roadmap zu implementieren sag mir (Fabian) einfach Bescheid!