Skip to content

Support RIT's JSON SIS API #327

Open

Description

@MoralCode

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

Activity

  1. MoralCode commented on Jul 19, 2023

    @MoralCode
    ContributorAuthor

    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)

  2. MoralCode commented on Oct 10, 2023

    @MoralCode
    ContributorAuthor

    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

  3. shackhorn commented on Oct 19, 2023

    @shackhorn

    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.

  4. jabbate19 commented on Nov 27, 2023

    @jabbate19
    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!

  5. nsp7786 commented on Nov 27, 2023

    @nsp7786

    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.

  6. shackhorn commented on Nov 27, 2023

    @shackhorn

    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?

  7. nsp7786 commented on Nov 27, 2023

    @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 )

  8. shackhorn commented on Nov 27, 2023

    @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 )

    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.

  9. added
    dev improvementSomething that could be fixed to improve the development flow
    on Nov 27, 2023
  10. jabbate19 commented on Nov 27, 2023

    @jabbate19
    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.

  11. MoralCode commented on Nov 28, 2023

    @MoralCode
    ContributorAuthor

    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

Metadata

Metadata

Assignees

No one assigned

    Labels

    dev improvementSomething that could be fixed to improve the development flow

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions