Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support RIT's JSON SIS API #327

Open
MoralCode opened this issue Jul 15, 2023 · 10 comments
Open

Support RIT's JSON SIS API #327

MoralCode opened this issue Jul 15, 2023 · 10 comments
Labels
dev improvement Something that could be fixed to improve the development flow

Comments

@MoralCode
Copy link
Contributor

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
Copy link
Contributor Author

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
Copy link
Contributor Author

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

@shackhorn
Copy link

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.

@jabbate19
Copy link
Contributor

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!

@nsp7786
Copy link

nsp7786 commented Nov 27, 2023

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.

@shackhorn
Copy link

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?

@nsp7786
Copy link

nsp7786 commented Nov 27, 2023

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 )

@shackhorn
Copy link

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.

@jabbate19 jabbate19 added the dev improvement Something that could be fixed to improve the development flow label Nov 27, 2023
@jabbate19
Copy link
Contributor

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.

@MoralCode
Copy link
Contributor Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dev improvement Something that could be fixed to improve the development flow
Projects
Status: No status
Development

No branches or pull requests

4 participants