PanoReady is a browser-based tool with two workflows for preparing Ontario school enrolment data in STIX XML format. All record processing happens on your device; files are not uploaded to a server.
Built by Wellington-Dufferin-Guelph Public Health.
| Workflow | Description |
|---|---|
| Validate & Fix | Preview workbook imports, apply optional cleaning mappings, validate metadata and records, review fixes, revalidate, and download XML, audit files, formatted XML, and reports. |
| Compare Files | Compare previous and current STIX snapshots; review record, field, school, and transfer changes; and export the reviewed current XML and comparison logs. |
PanoReady accepts STIX XML and Excel macro-enabled workbook (.xlsm) inputs. Validated and compared XML can optionally be downloaded in an AES-256 password-protected ZIP archive.
Validate & Fix shows six stages: Prepare & clean → Assess quality → Automatic fixes → Manual fixes → Recheck → Download. After import, optional cleaning mappings replace known whole-field values before validation or autofix. Matching ignores case unless “Match case” is enabled; the first matching mapping wins. Cleaning does not support regex.
Select a saved profile inside preparation: profiles contain validation rules and optional cleaning mappings. Automatic fixes start unselected. Apply individual selections, the current sorted page, or all matching fixes across pages; each action updates and rechecks the file. Manual fixes shows unresolved issues, including unaccepted automatic suggestions. Skipping cleaning leaves validation and autofix available.
Requirements: Node.js 22 or 24 (24 is the default in .nvmrc) and npm.
git clone https://github.com/WDGPH/PanoReady.git
cd PanoReady
npm ci
npm run devOpen http://localhost:3000.
npm run dev # Start the development server
npm run lint # Run ESLint
npm run typecheck # Check TypeScript
npm test # Run the Vitest suite
npm run build # Create a production build
npm run start # Serve the production build
npm run check # Run application checksThe application is published at https://wdgph.github.io/PanoReady/. The documentation is published from the same Pages deployment at https://wdgph.github.io/PanoReady/docs/ and is maintained in the docs directory.
To preview the documentation locally:
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
python -m pip install -r requirements-docs.txt
mkdocs serveThen open http://127.0.0.1:8000.
The synthetic validation demo exercises representative metadata, postal-code, and phone-number findings without using operational records.
See deployment for hosting and the release checklist for repository settings and release checks.
Export the built-in rules from the Validation ruleset menu, edit the JSON, and import it back into PanoReady. Custom rulesets remain in the browser's local storage and can be shared as files. See the ruleset reference for every available field.
PanoReady performs file parsing, validation, cleaning, comparison, and output generation in the browser. Do not attach real student data or other sensitive information to public issues. Please report vulnerabilities according to the security policy.
Contributions are welcome. Read CONTRIBUTING.md, follow the Code of Conduct, and use the issue templates before opening a pull request.
See CHANGELOG.md for unreleased changes.
PanoReady's original code and documentation are available under the MIT License. Panorama, STIX, and related third-party systems, standards, names, specifications, schemas, templates, and documentation remain the property of their respective owners. References identify intended compatibility only and do not imply affiliation or endorsement.
On Import readiness, exclude schools or issue types from correction review for the current file. Exclusions are reversible and do not change validation totals, blocking errors, or exported records.