A professional Material 3-inspired desktop application for logging and recording stack assembly processes. This tool allows operators to log project details, record or upload videos, and automatically overlay critical data (Battery Code, No, Operator) onto the video files.
- Streamlined Data Entry: Log battery information, operator details, and session notes.
- Auto-Population: Intelligent lookup of battery names and session details based on the Battery Code to minimize repetitive typing.
- Video Overlays: Automatically process videos to include semi-transparent text overlays for better traceability.
- Search & Filter: Quickly find past recordings using a powerful search bar and field-specific filters.
- Integrated Player: Preview recordings and take snapshots directly within the app.
- Safety First: Background processing of videos ensures the app remains responsive, with built-in exit confirmations to prevent interrupted tasks.
- Python 3.10 or higher
- FFmpeg: (Automatically handled by the app via
imageio-ffmpeg)
-
Clone the Repository:
git clone <repository-url> cd res_stack_recorder
-
Create a Virtual Environment (Recommended):
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install Dependencies:
pip install -r requirements.txt pip install PySide6 # If not in requirements.txt -
Run the Application:
python app.py
Upon the first launch, the application will ask you to select a Data Folder. This folder will be used to store:
- All processed videos with overlays.
- The SQLite database containing all records.
- Snapshots taken from the video player.
The project includes several automation scripts in the scripts/ directory to help with building and releasing the application:
-
Build Script (
scripts/build.py): Uses PyInstaller to package the application into a standalone.exe. It handles assets and configuration automatically.python scripts/build.py
-
Release Script (
scripts/release.py): A comprehensive script that:- Updates the version number in
core/settings.py. - Runs the build process.
- Triggers the creation of an installer (requires Inno Setup).
python scripts/release.py --version <new_version>
- Updates the version number in
-
Upload Script (
scripts/upload_release.py): Automates the process of uploading the built installer to GitHub Releases.
- UI Framework: PySide6 (Qt for Python)
- Video Processing: MoviePy & FFmpeg
- Database: SQLite
- Styling: Custom Material 3 CSS for PySide6
- Installer: Inno Setup (for generating
.exeinstallers)