From b54b05140554105aa4c605c2d4202d62a3fc6a55 Mon Sep 17 00:00:00 2001 From: thePR0M3TH3AN <53631862+PR0M3TH3AN@users.noreply.github.com> Date: Thu, 19 Jun 2025 13:04:11 -0400 Subject: [PATCH] Add Electron GUI and packaging scripts --- .github/workflows/release.yml | 6 ++++ README.md | 16 ++++++++++ gui/README.md | 16 ++++++++++ gui/electron/index.html | 16 ++++++++++ gui/electron/main.js | 28 +++++++++++++++++ gui/electron/package.json | 11 +++++++ gui/electron/preload.js | 5 ++++ packaging/build_appimage.sh | 30 +++++++++++++++++++ .../chocolatey/tools/chocolateyInstall.ps1 | 12 ++++++++ packaging/chocolatey/voxvera.nuspec | 12 ++++++++ packaging/homebrew/voxvera.rb | 15 ++++++++++ 11 files changed, 167 insertions(+) create mode 100644 gui/README.md create mode 100644 gui/electron/index.html create mode 100644 gui/electron/main.js create mode 100644 gui/electron/package.json create mode 100644 gui/electron/preload.js create mode 100755 packaging/build_appimage.sh create mode 100644 packaging/chocolatey/tools/chocolateyInstall.ps1 create mode 100644 packaging/chocolatey/voxvera.nuspec create mode 100644 packaging/homebrew/voxvera.rb diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b38cd6c..e9fcf15 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,6 +21,11 @@ jobs: run: python -m build --wheel --sdist - name: Build binary run: pyinstaller --onefile -n voxvera voxvera/cli.py + - name: Create AppImage + run: | + sudo apt-get update + sudo apt-get install -y wget + bash packaging/build_appimage.sh - name: Build Docker image run: docker build -t ghcr.io/${{ github.repository_owner }}/voxvera:${{ github.ref_name }} . - name: Login to GHCR @@ -42,3 +47,4 @@ jobs: dist/*.whl dist/*.tar.gz dist/voxvera + dist/VoxVera.AppImage diff --git a/README.md b/README.md index f45ef35..b392fe2 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,16 @@ See [docs/usage.md](docs/usage.md) for detailed usage instructions. Run the installer to set up all dependencies and the `voxvera` CLI in one step. +### GUI +An Electron wrapper is provided under `gui/electron` for users that prefer a graphical interface. +Run it with: + +```bash +cd gui/electron +npm install +npm start +``` + ### Linux/macOS ```bash @@ -116,5 +126,11 @@ Additional documentation is available in the `src/` directory; see [src/README.m Additional documentation, including step-by-step instructions and hosting guides, lives under the [docs](docs/) directory. +## Packages +Prebuilt binaries are published on the releases page. Linux users can run the +`packaging/build_appimage.sh` script after a PyInstaller build to create a +portable AppImage. Homebrew and Chocolatey formulas are provided under +`packaging/` for easy upgrades on macOS and Windows. + This project is licensed under the [MIT License](./LICENSE). diff --git a/gui/README.md b/gui/README.md new file mode 100644 index 0000000..81e66cd --- /dev/null +++ b/gui/README.md @@ -0,0 +1,16 @@ +# VoxVera GUI + +This directory contains a minimal Electron wrapper around the `voxvera` CLI. +It exposes a simple "Quickstart" button so non-technical users can generate +flyers without touching the command line. + +## Development + +``` +cd gui/electron +npm install +npm start +``` + +The Electron app invokes the `voxvera` binary from your `PATH`. +Make sure it is installed before launching the GUI. diff --git a/gui/electron/index.html b/gui/electron/index.html new file mode 100644 index 0000000..b47e298 --- /dev/null +++ b/gui/electron/index.html @@ -0,0 +1,16 @@ + + +
+ +