This project leverages Google's OR-Tools to solve course scheduling problems efficiently. OR-Tools is an open-source software suite for optimization, designed to tackle complex scheduling, routing, and bin packing challenges. This project focuses on automating the creation of conflict-free course schedules while optimizing resource allocation .
Key Features:
- Automates course scheduling using constraint programming.
- Optimizes room assignments, instructor availability, and time slots.
- Provides a flexible framework for customizing constraints and objectives.
To set up this project locally, follow these steps:
-
Clone the repository:
git clone https://github.com/UnderratedGignac/Course_Scheduling_OrTools.git
-
Navigate to the project directory:
cd Course_Scheduling_OrTools -
Install the required dependencies:
pip install -r requirements.txt
Note: Ensure you have Python 3.x installed on your system. If not, download it from python.org.
To run the course scheduling solver, execute the following command:
python main.pyYou can customize the scheduling constraints by modifying the configuration file (config.json) or directly editing the code in main.py. For example:
- Add new constraints (e.g., preferred time slots for instructors).
- Adjust optimization objectives (e.g., prioritize minimizing room changes).
For more details, refer to the OR-Tools documentation.
- Python 3.x
- Google OR-Tools: Installed via
pip install ortools - Dependencies: Listed in
requirements.txt
Ensure your environment meets these requirements before running the project .
We welcome contributions to improve this project! To contribute:
- Fork the repository.
- Create a new branch (
git checkout -b feature/YourFeatureName). - Commit your changes (
git commit -m "Add a new feature"). - Push to the branch (
git push origin feature/YourFeatureName). - Open a pull request.
Please ensure your code adheres to the project's coding standards and includes appropriate tests .
For questions or feedback, feel free to reach out:
- GitHub Issues: Open an issue in this repository.
- Email: ghanemcharbel219@gmail.com