This progeram's purpose is to find the optimal time schedule for every course, and to do so in a way that is beneficial for both the faculty and students.
We designed this program such that it accepts a Google Sheets file containing a list of all courses for that semester, and then outputs the same Google Sheets file with each course's time schedule filled in with the optimal value calculated by machine learning.
Specifications
- Has two different user interfaces: (a) CLI for debugging purposes and also for people who want to customize and (b) a web app built using HTML, CSS, TypeScript, and React. The web app is containerized with Docker and is designed to be deployed with Docker Compose.
- Test server at https://foraugie.nsustain.com
- Production server at https://augie.nsustain.com
- It's important to use technology for solving the problem and not the other way around -- we can sometimes make the mistake of trying to solve a problem in order to use a technology we like. Remember to focus on the problem, not on which technology to use.
- Again, start from the problem. Don't start from which cool, fancy library to use! What is our problem and which library best solves the problem?
Structure of the program
- Main optimization done using ... library in C++.
- Help data scraped using ... library in Python.
- Call Python code from the main driver written in C++ https://docs.python.org/3/extending/embedding.html#embedding-python-in-c
Let's try not to reinvent the wheel! If there's already an open-source project that does what we need, just using that open-source project is the best decision most of the time.
We expect this project to take at least six months because of the need for continuous testing. We will set up a continuous feedback loop from both the faculty and students so that this program truly serves its purpose.