zllovesuki / slugsurvival

Source Code for SlugSurvival.com with Cloudflare Workers Site support
https://slugsurvival.com
GNU General Public License v3.0
14 stars 3 forks source link

Graph representation of Course Requirements #28

Open tisuela opened 4 years ago

tisuela commented 4 years ago

You mentioned in your ReadMe of considering implementing a graph representation of course prerequisites.

This is something I'm trying to learn as an app in front of another project I'm working on, CourseCake.

I'm looking into a python implementation via p2neo, which interfaces with a neo4j graph database. The latter is the biggest hurdle that I face -- it's not sustainable to build a graph from data stored in a SQL-like database.

Let me know if this is something you'd like me to update you on as I implement this in the coming month!

zllovesuki commented 4 years ago

IF ANYONE WANTS TO HELP LEMME KNOW PLSSSS ty nice

I think the issue right now is to build the dependency graph, and the "edges" in the first place. Course requirements appear to be written by hand.

tisuela commented 4 years ago

Yeah, we would have to process the strings to detect Course names (like COMPSCI 101) and the edges (if they are a direct prerequisite or are under an "OR" clause).

The graph I'm thinking of would look a lot like this: https://github.com/Schemetrical/PreReqTree

tisuela commented 4 years ago

Unrelated, but I plan on using your API to adapt UCSC course information to CourseCake's schemas and offer it on our API endpoints. Of course, I will credit and link slugsurvival as the Data Provider for every request made that includes UCSC data, and I will credit and link slugsurvival on our documentation.

Lemme know if you're not ok with this or if you have any questions!

CourseCake is open source and I'm not making any money. The application will only make requests to slugsurvival a couple times a week to update any old information in our database.

zllovesuki commented 4 years ago

Not an issue. Feel free to use the data and credit SlugSurvival. I need to take a look at the some of the projects that you linked.