This repository provides the PlannedBruin application, a student-friendly enrollment planner designed to supply UCLA students with a four year class schedule, saving students from suffering from the common struggles surrounding enrollment restrictions, class availability, confusing prerequisite requirements, and more.
Planned.Bruin.Promotion.mp4
public/index.html
is the location where React initially runs the applicationscraping
contains all of the resources we used to scrape the UCLA course catalog (course_reqs.py
) and UCLA major requirements (prereqs.py
)src
containsindex.js
andApp.js
, which organize all of the functional parts of the applicationsrc/components
contains the homepage and all of the functional components used to make up the homepage
- Install Git
- Create a folder on your computer where you can download this repository
- Clone this repository to your computer:
git clone https://github.com/Lim-Stanley/class-plan
- Download Node.js
- Install mui with
npm install @mui/material @emotion/react @emotion/styled
In the project directory, you can run:
Open http://localhost:3000 to view it in your browser.
To experiment with different class plans, select any major on the left toolbar.
In this section we describe the intended features of our program.
In order to create these schedules for each major, we had to first find the necessary courses to graduate for each major. Along with this, we needed all of the prerequisites for each course, to ensure that a course does not get recommended prior to its prerequisites getting recommended (ex: MATH32A should get recommended before MATH32B).
Given that UCLA does not have a publically available database with this information, we had to scrape both the UCLA course catalog to get information about prerequisites, and UCLA major requirements to get information about what courses are needed to graduate with a specific major.
While we did not create a functioning algorithm to cleanly data scrape either source of data, we do plan in the future to refine our data scraping to be able to extract the above information from the stated sources
Given the list of courses needed for a major, and all of the prerequisites of every course, we intend to create an algorithm that will return a valid ordering of courses to take within the four years at UCLA.
Since we have not created a valid method of scraping all of the data from the UCLA websites, we have not yet implemented our course planning algorithm into the application.
However, we have designed the algorithm. The algorithm would be to treat each class as a node, with a directed edge being formed from a class to each of its prerequisites. Then, we would get a topological ordering of the graph, and assign general education requirements(GE's) wherever we find space to do so.
In the future, we plan on adding more flexibility in the application. Specifically, we wish to consider more information about a student. Given that it is common for a UCLA student to have a minor/minors or a double major, we want to accomodate flexibility to that, by adding a selection bar that allows you to select your respective majors and minors.
Along with this, we plan on adding course editing. The course schedule that we come up with may not at times be favorable to the student, and if they want to remove a course, or to add an additional course that is not in their major, we wish to give them the opportunity to do so, allowing the algorithm to run with pre-inserted slots. Along with non-favorability, this feature will also help students be able to select their own GE's that they wish to take. Currently, our algorithm displays GE's as simply GE's, but if we give students the ability to select the specific GE's they want, we will be able to generate a more accurate schedule.
Finally, we plan on integrating the recommendation system with Bruinwalk, a hub for UCLA professor ratings, that will recommend classes that are taught by highly rated professors over classes that are taught by lower rated professors. Along with this, we plan on integrating the recommendation system with MyUCLA's Degree Audit Reporting System (DARS) and class planner, the current offical resources avaiable to UCLA students (provided by UCLA) for creating class planners, as a guide for students.