Add Electron desktop shell and clean project docs
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
# Alta Video Player (WebAVP)
|
||||
|
||||
WebAVP is a local player for Alta/Ava Security camera exports. It focuses on core review workflows: importing video exports, synchronizing multiple cameras on one timeline, zooming into footage, and validating export integrity.
|
||||
|
||||
The app can run in two modes:
|
||||
|
||||
## Core Features
|
||||
|
||||
- Drag/drop individual video and metadata files, folders, or ZIP archives
|
||||
- Import unencrypted ZIPs through vendored JSZip
|
||||
- Import AES-encrypted ZIP exports with an in-app password prompt
|
||||
- Synchronize multiple camera segments on a shared timeline
|
||||
- Scrub, zoom, pan, change playback speed, and frame-step footage
|
||||
- Reorder, hide/show, expand, and manually lay out camera tiles
|
||||
- Use region zoom, scroll zoom, and fisheye dewarp tools
|
||||
- Verify signed exports offline and optionally confirm certificates with Alta's cloud verification endpoint
|
||||
- Preserve sessions across refreshes with IndexedDB
|
||||
|
||||
## Standalone desktop app (Electron)
|
||||
|
||||
```bash
|
||||
npm install
|
||||
npm start
|
||||
```
|
||||
|
||||
The Electron shell loads the existing UI through the custom `webavp://app/` protocol, so local assets are served from the packaged app instead of brittle `file://` paths. Certificate verification is bridged through Electron IPC (`window.webavpNative.verifyCertificateOnline`) and performed in the main process.
|
||||
|
||||
Packaging scripts are included:
|
||||
|
||||
```bash
|
||||
npm run dist
|
||||
```
|
||||
|
||||
`electron-builder` is configured for Linux AppImage/deb, macOS dmg, and Windows nsis. Cross-platform packaging still needs to be run on the target OS/build host.
|
||||
|
||||
## Web/Python mode
|
||||
|
||||
```bash
|
||||
python3 app.py
|
||||
# http://0.0.0.0:5152
|
||||
```
|
||||
|
||||
The Python stdlib server serves `/`, `/static/*`, and `/api/verify-cert`. There are no Python package dependencies.
|
||||
|
||||
## Checks
|
||||
|
||||
```bash
|
||||
npm run check
|
||||
xvfb-run -a npm run smoke
|
||||
```
|
||||
|
||||
`check` runs Electron main/preload syntax checks and `py_compile` for the Python server. `smoke` starts Electron, waits for `webavp://app/index.html` to finish loading, then exits automatically. On a desktop session, `npm run smoke` is enough; on headless Linux, use `xvfb-run -a npm run smoke`.
|
||||
Reference in New Issue
Block a user