GithubHelp home page GithubHelp logo

jeidnx / untismerger Goto Github PK

View Code? Open in Web Editor NEW
5.0 5.0 0.0 1.08 MB

Node.js App designed to merge different time tables in untis together.

JavaScript 2.46% HTML 1.29% CSS 0.77% Dockerfile 2.01% TypeScript 93.47%

untismerger's People

Contributors

jeidnx avatar jonas-w avatar tallerik avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

untismerger's Issues

Wirtschaftskurs

Wirtschaft im Untis enthält unzutreffende Kurse.
Es wurden im Wirtschaftsplan scheinbar irgendwelche Sport bzw Relikurse.
Muss irgendwie gefiltert werden.

Add statistics

It would be cool to get a scope of the project. How many registered users do we have? How many request are made etc..
Maybe something for you @Tallerik ?

Multiple Lessons at same time

In Untis there is the ability to have multiple Lessons at the same time. Untismerger only shows one. This should be changed because when a Lesson is replaced with another it shows in untis that the normal Lesson is canceled but also shows the new Lesson. In this case Untismerger only shows the canceled lesson which implements that there is no Lesson.

Cannot read sessionId

On the current devel version the server sometimes returns an Error: Cannot read properties of null (reading 'sessionId'). This error is thrown server side and is probably an issue with webuntis. Because this issue does not exist on the current main branch, misbehavior of the untis api can most likely be ruled out.

Additionally, if the client encounters this error before the first week is loaded, it crashes (if the error is encountered after the first week is loaded, the error gets caught fine). I couldn't yet figure out more details on this client side issue, because i only encountered it in the production build, which makes errors unreadable.

Bug when making multiple requests in a short period of time

For example when pressing multiple times the key D the timetables both show up and not just the last one.
Like this:
image

Probably you need to cancel the first request when doing the next one. Else all requests will appear after they loaded.

Fix notifications

Currently notifications don't really work for a variety of reasons that need to be taken care of:

  1. The notification handler doesn't know for which lessons notifications have been sent. The current Redis implementation is just broken
  2. There is no periodic checking for cancelled lessons. Lessons just get checked for cancellation if a users requests data for the day that said lesson is on
  3. Currently only the Discord notification provider works

Issues with Webkit browsers

Following issues are known on Webkit browsers (Safari):

  • Pull to refresh doesn't work
  • Broadcast API (I think?) does not work, resulting in not seeing the current Service Worker version
  • the JWT Key is not displayed in the Settings

Untis API Shenanigans

For the "Elektrotechnik" course the Untis API doesn't return a subject name.
How it should look:
grafik
How it looks:
grafik

Improve Service Worker

  • Add client side caching for stale assets to Service Worker
  • Add support for Web Push notifications

Frontend npm dependency resolution

The frontend npm project has a broken dependency resolution due to the react-charts package. This means that the project dependencies have to be installed with the --force option. I am considering the following options:

  • Find an alternative for react-charts (preferred)
  • Remove the statistics page entirely (very easy)
  • Just accept the broken dependency resolution and hope they fix it some day
  • Create a fork of react-charts that doesn't have this Issue

Bug with irregular lessons

JSON Response for relevant date:

[
    {
        "startZeit": 800,
        "fach": "Deutsch",
        "lehrer": "-",
        "raum": "-",
        "code": "irregular"
    },
    {
        "startZeit": 800,
        "fach": "Physik",
        "lehrer": "-",
        "raum": "-",
        "code": "cancelled"
    },
    {
        "startZeit": 845,
        "fach": "Deutsch",
        "lehrer": "-",
        "raum": "-",
        "code": "irregular"
    },
    {
        "startZeit": 845,
        "fach": "Physik",
        "lehrer": "-",
        "raum": "-",
        "code": "cancelled"
    },
    {
        "startZeit": 945,
        "fach": "Deutsch",
        "lehrer": "-",
        "raum": "-",
        "code": "regular"
    },
    {
        "startZeit": 1030,
        "fach": "Deutsch",
        "lehrer": "-",
        "raum": "-",
        "code": "regular"
    },
    {
        "startZeit": 1130,
        "fach": "Evangelisch Religion",
        "lehrer": "-",
        "raum": "-",
        "code": "regular"
    },
    {
        "startZeit": 1215,
        "fach": "Evangelisch Religion",
        "lehrer": "-",
        "raum": "-",
        "code": "regular"
    },
    {
        "startZeit": 1330,
        "fach": "Sport",
        "lehrer": "-",
        "raum": "-",
        "code": "regular"
    },
    {
        "startZeit": 1415,
        "fach": "Sport",
        "lehrer": "-",
        "raum": "-",
        "code": "regular"
    }
]

Shown timetable:
grafik

Expected behavior:

grafik

Add documents to site

We should add legal documents like an imprint aswell as an FAQ on the setup page. Do we need a cookie disclaimer? Also a form for users to submit issues.

cant switch back to current week

There is no issue with navigation through the weeks, but when you want back to the current week, nothing happens and this error apear:
grafik

Reproduce:

  1. Go on https://untismerger.tk [Assuming logged in]
  2. Navigate with [D] through multiple weeks
  3. Use [A] to go back. It will work, but the last page (current work) wont be accessible again.

Workaround:
F5

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.