notangles
notangles copied to clipboard
Allocate+ Timetable Support
Hi there, there's a few universities that use the allocate+ timetabling system. Namely USyd, ANU and UTS (but I'm sure there's more). I know that there's an accessible endpoint for the UTS instance for querying subject availability and times. The same may be true for other instances.
I would be willing to contribute to an implementation supporting this as I'm familiar with Redux and Redux Toolkit (slices and rtk). Lmk
Hey there! I was just curious as to what the UTS endpoint is. From past experience, USyd has authenticated API, for which the tokens that are provided are very short-lived. I am not sure if this is the same for ANU, would it be possible for you to get back to me on this?
Here's a sample of some of the code I use to interact with the API https://github.com/utsprogsoc/KronosUTS/blob/main/packages/backend/src/fetcher/fetcher.service.ts
If you go to https://mytimetablecloud.uts.edu.au/odd/ you can see the different interfaces. For the UTS one there's a public version. Not sure about other universities.
If you go to https://mytimetablecloud.uts.edu.au/odd/ you can see the different interfaces. For the UTS one there's a public version.
This seems to redirect me to an SSO page? (unless you meant that the API itself is public, while the UI to access it is not)
Sorry, looks like the directory page is behind SSO. The actual public access timetable is here
/subjects, /locations, and /studentsets (groups) are public at /odd/rest/timetable, and they worked when I used a gateway for CORS/caching. So probably safe to scrape /subjects. Looks like it's just served by ELBs so may not even have ratelimiting or caching.
I'm not sure how to populate some of the scraper schema fields though, at least for ANU. career could map to courseCode[:-4] < 5000 ? Undergraduate : Postgraduate, but I don't think classes[].courseEnrolment or censusDates are available. mode seems to be missing too but was available from an older API (I used it for https://timetable.cssa.club).
Designing a scalable scraper might be tricky too depending on scope. crt.sh lists >150 cloud customers (ignoring on-prem, not sure if Allocate still sell it).
At UTS the subject description always includes the same text to indicate that the subject is not in-person, though I'm not sure how it's handled for other universities.