Factory management

The project aims to develop a system for automated process management in a factory, implemented in C++. The system automatically assigns unique identifiers (ID) to packages and employees, then manages the allocation of tasks to individual employees based on their availability and priorities. The goal is to streamline workflow management in the factory, improve efficiency, and minimize errors in task assignment.


1. Project Assumptions

The management system was designed to meet the following requirements:

  • Automatic ID Assignment to Packages and Employees:
    Each package and employee receives a unique identifier, allowing easy identification and tracking.
  • Task Management:
    The system automatically assigns tasks to employees based on:
    • Their availability (e.g., free/busy status).
    • Task priority (e.g., urgent tasks are performed first).
    • Employee specialization (e.g., assigning specific tasks to employees with the required qualifications).
  • Flexibility:
    The system allows for dynamic addition of new packages, employees, and tasks.
  • Progress Monitoring:
    Each task has a status (e.g., “in progress”, “completed”), enabling the tracking of production processes.

2. System Functionalities

1. ID Generation

  • Each package and employee receives a unique identifier, automatically generated when added to the system.
  • ID numbers are stored in a data structure (e.g., vectors or maps), enabling easy searching and management.

2. Task Assignment

  • Tasks are prioritized based on their importancedeadline, and available resources.
  • The system assigns tasks to employees based on their status (available/busy) and specialization (e.g., packaging, quality control).

3. Package Handling

  • Packages are registered in the system with information about their typepriority, and required processing steps.
  • Packages are automatically assigned to tasks that need to be completed (e.g., sorting, packaging, shipping).

4. Progress Monitoring

  • Each task has a status„pending”„in progress”„completed”.
  • The system allows for real-time tracking of current tasks and their statuses.

5. Flexible Employee Management

  • New employees can be added to the system, and their status or qualifications can be updated.
  • Employees can be assigned to multiple tasks simultaneously, if their status allows it.

3. Technologies and Data Structures

  • Programming Language: C++
    • An object-oriented approach was used for managing packages, employees, and tasks.
    • Classes represent objects such as Package, Employee, and Task.
  • Data Structures:
    • Vectors (std::vector): Used to store lists of employees, packages, and tasks.
    • Maps (std::map): Used to associate IDs with corresponding objects (e.g., map<int, Employee>).
    • Priority Queues (std::priority_queue): Used to handle tasks with different priority levels.
  • Multithreading:
    • To increase efficiency, tasks could be processed in parallel, allowing multiple employees to execute tasks simultaneously.
    • Thread synchronization was ensured using mutexes.
  • Files:
    • Data related to employees, packages, and tasks could be stored and loaded from files, allowing easy preservation of the system’s state between executions.

4. Example System Workflow

1. Registration of Packages and Employees:

  • The system automatically adds packages to the list with a unique ID and parameters such as package type and priority.
  • New employees are added to the system, and their specializations and availability are properly recorded.

2. Task Assignment:

  • Tasks are created based on factory processes (e.g., sorting, quality control).
  • The algorithm selects an available employee with the required specialization and assigns them a task.

3. Monitoring:

  • The status of each task is updated in real-time.
  • After completing a task, the employee becomes available for the next assignment.

4. Reporting:

  • The system generates reports on completed tasks, handled packages, and employee performance.

5. Project Results

  • Efficiency: The system automatically managed task allocation, eliminating conflicts and downtime.
  • Scalability: The system was able to handle large numbers of packages, employees, and tasks thanks to the use of efficient data structures.
  • Modularity: The project was easy to expand, e.g., adding new task types or employee assignment criteria.

6. Development Possibilities

  • Graphical Interface (GUI): Adding a visual interface for real-time monitoring of factory operations.
  • Data Analysis: Utilizing data analytics to predict performance and optimize task allocation.
  • IoT Integration: Connecting the system with physical devices in the factory, such as barcode scanners or conveyor belts, to achieve full automation.
  • Use of Artificial Intelligence Algorithms: Enhancing the task assignment algorithm by implementing machine learning.

This project is an example of the effective application of object-oriented programming and management algorithms in a practical scenario, such as factory automation. By using C++, the system is fast, flexible, and ready for deployment in industrial environments.

pl_PLPolish
Scroll to Top