TimelineOct 2022 — Jun 2023
SourceView Repository
  • Content-Based Filtering
  • Collaborative Filtering
  • AI
  • NLP
  • CVXPY
  • Full Stack
  • ASP.NET
  • Bootstrap
  • Microsoft SQL Server

Advanced Registration Website Leveraging a Recommendation System

A fully functional and responsive website that leverages a recommendation system which is capable of providing schedule suggestions for students using machine learning algorithms. The website was enhancements on the Jordan University registration's website that includes a page about courses and their description, a student's recommended schedule, and an algorithm that notifies admin users about graduates with conflicting essential to help the Admission and Registration department with the substitute courses problem which was a functionality not available at the university of Jordan at that time. As for the recommendation system which used hybrid filtering combining collaborative and content-based filtering to output a timed course schedule for every student. Here we explore the preparation and deployment stage in more depth: 1. A matrix was created for the courses plan including general university courses to determine the prerequisite relationships between courses. Then a 'popularity' vector is created scoring each course's importance based on the number courses they can open through the use of the Depth-First-Search algorithm. They were after scaled between zero and one to later be used in the optimization function. 2. Courses' descriptions were pre-processed by lowering cases, filling null values, tokenization, lemmatizing words, and removing stop words. 3. Courses are split into clusters by first converting words into vectors using CountVectorizer then K-Mean clustering algorithm is applied to 5 clusters (determined through the use of the elbow method). By this content-based filtering was completed to later be used in the optimization function. 4. Using a students' grades dataset (provided by the Admission and Registration department) which only included students' grades for the one semester of the summer term for 2022. For this to work properly courses had to be processed finding their prerequisites and giving them random character grades (matching the database). After that these character grades will be converted to their numerical values and scaled by adding one to be used as rankings. Pass and fail courses were not taken into account so to not affect the results negatively. Also if a student failed a course that course will be re-entered as an eligible course. 5. After that, collaborative filtering for each student will be calculated using an item-based matrix using the Pearson correlation algorithm. The collaborative filtering values will be scaled between 0 to 1 to later be used in the optimization function as well. 6. Here, the CVXPY optimization algorithm is used to find the optimal schedule for each student. After the admin uploaded the registration schedule from the website, the time slots for courses and their sections will be treated as Boolean set of decision variables determined by the eligible courses for each student. Popularity vector and collaborative filtering results will both act as an objective functions to be maximized. A semester allowed number of credit hours, one course per-timeslot, one section per course, and a section's capacity will act as the constraints. The previously created 5 clusters for BIT plan courses plus group for university obligatory and elective requirements, and another group for general courses creating a total of 7 groups will act as a soft constraint encouraging the solver to choose only one course from each group. 7. The solver will output the optimal schedule for each student by iterating over all students. The algorithm can return two schedules for each student the optimal one plus an alternative one given the student the freedom of the choose on the website.