schedulemaker icon indicating copy to clipboard operation
schedulemaker copied to clipboard

Support RIT's JSON SIS API

Open MoralCode opened this issue 2 years ago • 10 comments

https://api.rit.edu appears to be a program provided by RIT's College of Art and Design that provided SIS data on classes and schedules to anyone with an RIT login.

Migrating to this as a source of data would substantially help resolve #320 by allowing external contributors who are RIT students to create schedulemaker databases using data acquired on their own

MoralCode avatar Jul 15 '23 23:07 MoralCode

This data source seems to be missing a way to fetch a list of all terms (like on the terms page after loging in) or all classes. Currently it assumes you know at least the course codes (i.e. CSCI-XXXX)

MoralCode avatar Jul 19 '23 19:07 MoralCode

image

some info on the structure of term codes: fall is 1, idk if 3 is used (i think intersession is accelareted stuff over winter if it still exists), 5 is spring, and summer is 8 for some reason because there are multiple parts of summer term

MoralCode avatar Oct 10 '23 13:10 MoralCode

I never knew RIT had an API like that, so this inspired me to make a TypeScript module that interacts with it. CSH can contribute to and incorporate it into ScheduleMaker if they like, since I saw that they use TS for some operations.

shackhorn avatar Oct 19 '23 20:10 shackhorn

Hi Adrian!

This is very interesting to see. I am working on a rewrite for the ScheduleMaker API, so I will consider this when writing.

Our current method of obtaining the data (direct from RIT) makes it easier to ensure we have up-to-date resources. I would not be opposed to creating a script that gathered data from this API and wrote it into a database that is schedulemaker compatible!

jabbate19 avatar Nov 27 '23 18:11 jabbate19

The API provided by CAD is very barebones and currently doesn't offer ways to get a list of ALL courses/sections being taught in a term. The only way to get them is to specify a specific course (COUR-101-01). I don't think it would be a viable replacement for what's currently used without being reworked to add more functionality.

nsp7786 avatar Nov 27 '23 20:11 nsp7786

What API does the current version of schedulemaker use? I can't seem to find any documentation on it nor does it appear to be internally accessible to RIT students. Do you have to ask ITS for it?

shackhorn avatar Nov 27 '23 20:11 shackhorn

See #320 for details, but as far as I can tell it's a private API from CSH or ITS. There is no public documentation for it. (See #56 )

nsp7786 avatar Nov 27 '23 21:11 nsp7786

See #320 for details, but as far as I can tell it's a private API from CSH or ITS. There is no public documentation for it. (See #56 )

I see! I could also rewrite RIT.ts accordingly to integrate the other (or both) APIs. CAD's API just appeared to be the only option accessible at the time. I'm also assuming that SIS also refers to whatever proprietary Oracle DB is behind it.

All I know is there has to be an easier way to do this RESTfuly, even if it requires further collaboration with ITS, or making CAD's API more helpful to fit the needs of schedulemaker and other student-maintained projects.

shackhorn avatar Nov 27 '23 21:11 shackhorn

Currently, ITS/Registrar sends a dump of data to one of our servers, then we parse it and update our database that is used by the API.

jabbate19 avatar Nov 27 '23 21:11 jabbate19

i saw a schedulemaker CLI (probably just a coincidental name overlap, idk if it actually used schedulemaker in any way) that used the JSON SIS API but yeah i also noticed the lack of enumerating courses in a term

MoralCode avatar Nov 28 '23 04:11 MoralCode