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
- Navigate to the ./src/ directory.
- Run the following command :
python main.py - Alternatively, use the .exe file created using PyInstaller :
python3 setup.py - 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
- Editing UI Forms :
- Modify the corresponding .ui file in
components/forms/ - Use a PySide UI designer tool for visual editing
- Modify the corresponding .ui file in
- Styling :
- Update the relevant CSS file in
stylesheets/
- Update the relevant CSS file in
- Generate .py File :
- Run the following command :
pyside6-uic input.ui -o output.py
- Run the following command :
- Editing UI Forms :
Backend Logic
- Follow modular design principles for easy maintenance
Debugging
- Enable Python logging in the
main.pyfile
- Enable Python logging in the
5. Key Functionalities
User Authentication
- Location :
ui/components/forms/login_form.pyandui/views/login_page.py - Description : Handles user login and session management
- Location :
Project Population
- Location :
ui/views/project_page.py - Description : Enables users to select projects based on submitted
form_data
- Location :
Task Management
- Location :
ui/views/task_mancer_page.pyandui/components/core_widgets/task_details.py - Description : Manages individual tasks within projects
- Location :
UI Navigation
- Location :
ui/main_window.py - Description : Manages page navigation using
QStackedWidget
- Location :
6. Handover Checklist
Codebase
✔ Ensure the repository is up to date
✔ Confirm all dependencies are listed inrequirements.txtDocumentation
- Include :
✔ This handover document
✔ AREADME.mdfile for quick setup
✔ ACONTRIBUTING.mdfile for development guidelines (Architectural Design and Tutorials)
- Include :
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: