michael-maltsev / cheese-fork

A scheduling helper web application for Technion students
https://cheesefork.cf
GNU General Public License v3.0
50 stars 13 forks source link

Missing courses? #12

Closed urialon closed 2 years ago

urialon commented 4 years ago

Hi @michael-maltsev , Thanks for making this and freeing us from the burden of choicefreak.

There are some missing courses which I cannot find on CheeseFork, for example 048715 (https://www.graduate.technion.ac.il/Subjects.Heb/?Sub=48715&fbclid=IwAR1-H0vI4xHDpYcpyqBqZcCZlDEdK65iURvtX4Hm0TEDlIXKgxqJ_X0TQOU)

Thanks!

michael-maltsev commented 4 years ago

Hi Uri,

CheeseFork uses data which is fetched from the UG Rishum website. The 048715 course doesn't exist there, perhaps because it's only for graduate students. CheeseFork could use the graduate website instead, which would fix this issue. Another advantage is that a new semester appears a couple of days earlier in the graduate website. On the other hand, a potential disadvantage is that if there are any discrepancies between the Rishum and the graduate website, I'd prefer to have CheeseFork show what Rishum shows since that's what most students use and expect.

When I developed the technion-ug-info-fetcher project which fetches data from Rishum, I wasn't even aware of the graduate website. Currently, I'll have to implement a new fetching script to use data from the graduate website. And there's at least one issue which I don't know how to solve at this time: I don't know where I can get a list of courses. Without a list of courses, I won't know which pages to fetch (I can't try all numbers from 0 to 999999). Looking at it now for a couple of minutes, I found this page, with the Syllabi links which contain lists of courses. Unfortunately it looks like the links are for graduate-only courses.

Even if I find a solution for using the graduate website, I'll have to invest time into developing a fetching script, and the benefits aren't very significant. I'll leave this issue open, but for now I don't plan to invest time on it.

As a workaround, which you probably figured yourself, you can create the events of the missing course(s) manually in CheeseFork.

urialon commented 4 years ago

Thanks for your answer. I didn't know that UG hides some of the courses, because technically undergrad students can take advanced courses. It's weird, because 236*** courses, which are the "graduate courses" in CS - do appear on UG. But of course, I didn't expect you to implement a new fetcher now.

I asked Ruty Rosenthal from the Technion IT team to provide all the data publicly in a structured way (i.e., tables, database, json, whatever) years ago, but she refused.

Krumpet commented 4 years ago

236XXX courses are for both undergrads and graduates - I think it's the same scheme for all XX(4/6/8)XXX course numbers.

I already have a parser for the graduate website, here.

michael-maltsev commented 4 years ago

I already have a parser for the graduate website, here.

Nice. But as far as I see, you don't have a proper solution for getting a list of courses. You can discover new courses that are referenced by other, known courses, but not new courses that don't have such a reference.

Maybe a union of the Rishum numbers and the numbers on this page provide the complete list of courses.

Krumpet commented 4 years ago

I deliberately removed courses which weren't referenced and don't reference any others. The sources for course numbers are the course catalog PDF and any course number found while parsing the websites. It's also possible to just iterate over all of the 6-digit numbers of the pattern + '8' + to be really thorough.

At any rate, the parser can be used to get the data if you decide to go for parsing courses that only appear on the graduate website.

Randl commented 4 years ago

Having graduate courses could be very helpful.

michael-maltsev commented 2 years ago

Should be fixed now with the updated Rishum website. https://www.facebook.com/cheesefork.technion/posts/1274381833025128