Static browser app for quick, local quality control of uploaded activity files.
- Runs Python in WebAssembly through vendored Pyodide files in
vendor/pyodide/. - Reads uploaded files with the browser
FileAPI. - Keeps file bytes in the user's browser; there is no upload endpoint.
- Scans Axivity CWA and gzip-compressed CWA.GZ files for metadata (
MD) and activity (AX) blocks. - Reports decoded timestamp range, duration, rough sample counts by day, data block counts, sample-rate hints, warnings, and a raw header preview.
- Provides archive-level inspection for GT3X and gzip-compressed GT3X.GZ files. Full GT3X sample decoding is not implemented.
The CWA parser is intentionally cursory. It does not decompress every acceleration sample; it extracts QC-friendly fields from block headers so large files can be checked quickly in the browser.
- Commit
index.html,styles.css,qc.py,vendor/pyodide/, and thisREADME.md. - Push to GitHub.
- In the repository settings, enable GitHub Pages from the branch containing these files.
No server-side runtime is required. Pyodide is served from this repository, so the app does not need a CDN at runtime.
Start a local static server from this directory:
python3 -m http.server 8000Then open:
http://localhost:8000/
The app can run offline as long as this repository folder is already present on the computer. The browser loads Pyodide from vendor/pyodide/, then processes selected activity files locally.