elite-se / elite-se.study-planner

Angular App zum einfachen Planen des Studienplans im SE Master Augsburg.
9 stars 2 forks source link

SE Study Planner

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.

Deployment 1 und Deployment 2

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!

aktueller Screenshot

Readme Inhalt:

Deployments

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).

Architektur

Server

Minimaler expressJS Server (Datei server.js auf root-level), der die Angular App served und unter der Route /data die Studiengangsinfos bereitstellt.

Daten

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.

Frontend

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:

Besonderheiten / Designentscheidungen:

Roadmap

Lokales Setup

Mithelfen

Hilfe ist gerne gesehen :) Falls Du Lust hast eins der Features aus der Roadmap zu implementieren sag mir (Fabian) einfach Bescheid!