Project Overview: "Shift Staff" is a basic scheduling application designed to streamline the process of assigning employees to job positions in an efficient and effective manner. The application tackles the challenges of matching employee skills, certifications, and availability with the requirements of various job positions within an organization.
Key Components:
main.py: This is the heart of the application, serving as the main entry point. It integrates functions from other modules to orchestrate the application's workflow, ensuring seamless operation and coordination between different components.
employee.py: This module encapsulates the Employee class and associated methods. It is responsible for managing employee-related data, including loading information from CSV files. It also includes methods to verify an employee's qualifications and their availability for shifts.
job_position.py: Housing the JobPosition class and related methods, this module deals with job position data. Similar to employee.py, it loads data from CSV files and provides functionality to assess the skill requirements for each job position.
scheduler.py: This pivotal module contains the Scheduler class. It implements the core logic for assigning employees to job positions. The Scheduler takes into account various factors such as employee certifications, their availability, and the specific skill demands of each job position.
csv_loader.py: A utility module focused on loading data from CSV files. It is a crucial component used extensively by both the Employee and JobPosition classes for data ingestion.
utils.py: This module is a collection of general utility functions, particularly for handling common tasks like date and time operations. It serves as a support module for other components of the application.