Giter Site home page Giter Site logo

wcm-timetable's People

Contributors

j0ki avatar lkairies avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

wcm-timetable's Issues

Wie fragen wir die Lehrveranstaltungen ab?

Da der Datenaustausch zwischen Python und Ruby bei den Modulen so gut geklappt hat, würde ich sagen, dass wir die LVs auch mit nem Python-script abfragen und dann direkt die gecrawlten URLs integrieren. Das Python script würde dann alles zusammen als json ausgeben und wir könnten es genauso wie bei den Modulen von seed.rb aus aufrufen.

Schönes neues Jahr übrigens! :)

Datatables Fehler bei Klick auf "Module"

Wenn man von der Seite
http://localhost:3000
auf den link zu
http://localhost:3000/moduls?semester=w14
klickt, dann kommen drei javascript alerts mit
"DataTables warning: table id=module-table - Cannot reinitialise DataTable. For more information about this error, please see http://datatables.net/tn/3"

Vielleicht kann man den Fehler mit rails routen umgehen, indem man von / auf /moduls weiterleitet.

EDIT: Der Fehler kommt auch, wenn man von einer Modulseite auf "Module" klickt.

Bezeichnung von Modul-Attributen (Modulform, Modulart, ...)

Damit wir nicht durcheinander kommen...
Es gibt im Modul-PDF das Attribut Modulform, welches die Werte "Pflicht", "Wahl", "Wahlpflicht" annehmen kann.
Das andere Attribut hat im PDF keinen Namen und ist auch nicht bei allen Modulen vorhanden. Außerdem kann es mehr Werte annehmen:

  • Bachelor
    • (nicht gesetzt)
    • Kernmodul
    • Vertiefungsmodul
    • Seminarmodul
    • Ergänzungsfach Medizinische Informatik
    • Ergänzungsfach Biologie
  • Master (zusätzlich)
    • Schlüsselqualifikation

Ich würde das erste Attribut in der Datenbank form nennen. Das zweite könnte man art nennen.
Ist zwar immer noch nicht sehr aussagekräftig, aber immerhin ähnlich zu den Bezeichnungen im PDF.

Ich bin mir auch nicht sicher, ob wir die Werte mit enums setzten sollten. Strings sind doch eigentlich ausreichend für unseren Anwendungsfall, oder? Wir sollten jedenfalls keine Probleme mit Speicherplatz oder Performance haben.

Suchbereiche des Crawlers

Ich habe grad angefangen den crawler zu schreiben. Ich hab mich entschieden ihn nur mit den Übersichtsseiten der Institute zu füttern.
Die "Abteilung Algebraische und logische Grundlagen der Informatik" hat ne ziemlich komische Struktur und wird scheinbar nicht so richtig gepflegt.
http://www.informatik.uni-leipzig.de/alg/
http://www.informatik.uni-leipzig.de/alg/lehre/alg_lehre.html
Bin drauf gestoßen als ich die Veranstaltungsseite von "Tree Automata" gesucht habe. Manche Seiten liegen einfach im Verzeichnis der Dozenten (http://www.informatik.uni-leipzig.de/~brewka/KRoutline.html).
Mal gucken wie der crawler damit klarkommt...
Die anderen Institute sollten eigentlich gut funktionieren:
http://rvs.informatik.uni-leipzig.de/de/lehre/
http://asv.informatik.uni-leipzig.de/courses/
http://www.dh.uni-leipzig.de/wo/courses/
http://www.informatik.uni-leipzig.de/ti/lehre/aktuellessemester.html
Weitere werden folgen.

Erzeugen von Ereignissen in A-Wochen und B-Wochen erfolgt nicht nach Spezifikation

Zitat von http://studium.fmi.uni-leipzig.de/stundenplaene.html :
"Die A-Woche bezieht sich dabei auf die ungeraden Kalenderwochen und die B-Woche auf die geraden Kalenderwochen."

In der aktuellen Implementierung wird die erste Vorlesungswoche (die Woche, die den ersten Vorlesungstag enthält) als A-Woche und alle darauffolgenden Wochen abwechselnd als B- bzw. A-Woche betrachtet. Dieses Verhalten muss angepasst werden.

Größe des http requests an den Wochenplan verringern

Wenn ein Wochenplan angefragt wird, sollten nur die LVs des gewählten Semesters in der Anfrage enthalten sein.
Am einfachsten wäre es wohl, die LVs im localStorage nach Semestern zu gruppieren. Z.B.:
localStorage["selected_lvs_w14"] vs. localStorage["selected_lvs_s15"]

Liste der Module unvollständig in der Datenbasis

Für manche Studiengänge (z.B. Master Wirtschaftsinformatik) sind nicht alle Module in der Datenbank vorhanden.
Die entsprechenden "Units" sind aber trotzdem für diese Studiengänge empfohlen. Das führt dazu, dass nicht alle Lehrveranstaltungen angezeigt werden, die im alten Stundenplan stehen.
Ob es solche Units ohne Modul auch für Master Informatik oder Bachelor Informatik gibt, weiß ich nicht.

Berechnung der Ereignisse bei Datenbankinitialisierung und nicht bei jeder Anfrage

Momentan werden die Ereignisse für jede Anfrage neu berechnet. Bei vielen Lehrveranstaltungen dauern die Anfragen auf meinem Rechner spürbar länger (mehrere Sekunden).
Da es sich bei den Ereignissen (Terminen) nicht um dynamische Werte handelt, könnte man sie bei der Initialisierung (rake db:setup) berechnen und in der Datenbank speichern.
Dann müsste der Wochenplan-Controller nur noch für jede LV die Ereignisse aus der Datenbank holen und dann alles in einen ICalendar packen.
Die Tabelle in der Datenbank hätte dann die Felder lv_id, event_id, event.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.