Front End


1. Overview

The Pipeline Manager Tool is a PySide6-based desktop application designed for task and workflow management. It includes features such as user authentication, task management, and customizable UI components in a modular structure.

Highlights:

  • Frontend Only :
    No data processing occurs in the frontend; all operations are managed through the backend.
  • API Integration :
    The application communicates with the API team’s endpoints for all data transactions.

2. Project Structure

The project follows this organized structure:

Warning

This section has been redacted.

3. Setup Instructions

Prerequisites

  • Python : Version 3.10 or higher

Dependencies

  • Install required packages :
    • pip install PySide6 requests

Building the Application

  • Run the following command :
    python setup.py

Running the Application

  1. Navigate to the ./src/ directory.
  2. Run the following command :
    python main.py
  3. Alternatively, use the .exe file created using PyInstaller :
    python3 setup.py
  4. Once the build is completed, the executable file will the located at :
    ./dist/PipelineManager/PipelineManager.exe

Troubleshooting

  • Ensure all dependencies are installed
  • Verify Python version compatibility

4. Development Guidelines

Adding or Modifying Features

  • UI Components

    1. Editing UI Forms :
      • Modify the corresponding .ui file in components/forms/
      • Use a PySide UI designer tool for visual editing
    2. Styling :
      • Update the relevant CSS file in stylesheets/
    3. Generate .py File :
      • Run the following command :
        pyside6-uic input.ui -o output.py
  • Backend Logic

    • Follow modular design principles for easy maintenance
  • Debugging

    • Enable Python logging in the main.py file

5. Key Functionalities

  • User Authentication

    • Location : ui/components/forms/login_form.py and ui/views/login_page.py
    • Description : Handles user login and session management
  • Project Population

    • Location : ui/views/project_page.py
    • Description : Enables users to select projects based on submitted form_data
  • Task Management

    • Location : ui/views/task_mancer_page.py and ui/components/core_widgets/task_details.py
    • Description : Manages individual tasks within projects
  • UI Navigation

    • Location : ui/main_window.py
    • Description : Manages page navigation using QStackedWidget

6. Handover Checklist

  • Codebase
    ✔ Ensure the repository is up to date
    ✔ Confirm all dependencies are listed in requirements.txt

  • Documentation

    • Include :
      ✔ This handover document
      ✔ A README.md file for quick setup
      ✔ A CONTRIBUTING.md file for development guidelines (Architectural Design and Tutorials)
  • Known Issues

    • The UI occasionally freezes when loading large project dataset

7. Next Steps

  • Long-Term Improvements
    • Integrating production backend data into the UI
    • Implement data caching for improved performance
    • Add an event handler/manager to trigger events outside the application. For example, update work files in the UI as an artist creates a new version in the application
    • Refactor code to use Signal Manager
    • Add a smart refresh button
    • Use PySide’s QDebug for UI-related debugging
    • Add unit tests for Code validation

Links

Explore the following sections to learn more: