Percepolis Overview

Our Goal

The PERCEPOLIS project aims to design and create a web application that employs a set of algorithms to personalize and optimize a student's path to graduation. The algorithms automate and streamline the academic advising process, an area that has largely gone untouched through the rise of technology over the past two decades. The algorithms are designed to help the student tailor their college career and degree to their interests while also ensuring that they complete their degree quickly, but at a pace right for them. The application consists of four algorithms, each enumerated below. The repositories for the project can be found below, however access is required for viewing.


  • Student Performance Evaluation
    • Evaluates a student's past performance and calculates a suggested credit hour limit
  • Course Selection and Optimization
    • Selects courses based upon the student's degree requirements, career interests, and course availability. Once all courses in the path to graduation have been selected, the algorithm puts the courses into semesters in an optimized ordering that represents the fastest path to graduation.
  • Course Scheduling
    • Finds all possible schedules for a student for the upcoming semester. Once a schedule has been selected, the student is auto-enrolled, eliminating the need for the student to stress about enrollment times.
  • Course Difficulty
    • Evaluates a student's past performance and that of similar students to determine the probability that the student will pass a given course.


  • Nic Dobbins - Master's Student/Server-side Lead
  • Sanfan Liu - PhD Student/Server-side Developer
  • Mitchell Skaggs - Accelerated Master's Student/Server-side Developer
  • Arianna Chaves - Client-side Lead
  • Hans Hernandez - Server-side Developer
  • Hayden Dixon - Client-side Developer
  • Thomas Gleiforst - Client-side Developer
  • Colton Walker - Client-side Developer
  • Antonio Kotoni - Undergraduate Scholar


This repository houses all documentation related to the project.
This repository houses the code for the application webpages. The application is not published yet.
This repository houses the code for the application algorithm and data operations. The application is not published yet.