This project is a class scheduling application designed to assist students in optimizing their course schedules based on credit limits and time conflicts. It includes a backend server built with Flask and a frontend for user interaction.
Follow the steps below to set up and run the application.
Ensure you have the following installed on your system:
- Python 3.x
- pip (Python package installer)
- Visual Studio Code (VS Code) with the Live Server extension installed
-
Open a terminal and navigate to the project directory.
-
Run the following commands to install the required dependencies:
pip install flask pip install flask-cors pip install requests
-
Start the Flask server by running:
python app.py
This will host the API locally.
- Open the project folder in Visual Studio Code.
- Navigate to the
clientfolder and locate theindex.htmlfile. - Right-click on
index.htmland select Open with Live Server.- If you do not have the Live Server extension installed, you can install it via the VS Code Extensions Marketplace.
- Copy the preview link generated by Live Server (e.g.,
http://127.0.0.1:3000/client/index.html) and paste it into Google Chrome for the best user experience.
This project utilizes the University of Florida API to retrieve course and schedule data. For more details about the API, refer to its GitHub repository:
- Greedy Scheduling Algorithm: Quickly schedules classes by selecting the first available section that fits the constraints. Designed for speed but may not produce the most optimal schedule.
- Dynamic Programming Algorithm: Considers multiple scheduling configurations to optimize the number of classes and credits while respecting constraints.
- Conflict Management: Ensures no overlapping time periods or duplicate courses are added to the schedule.
- User-Friendly Frontend: Provides an intuitive interface for users to view and interact with their schedules.
Contributions to improve the scheduling algorithms, frontend design, or integration are welcome! Feel free to fork the repository and submit a pull request.
This project is open source and available under the MIT License.
Enjoy building your perfect schedule! 🎓