A client-side web application that inspects .elp and .elpx (ZIP) packages exported from eXeLearning and highlights common structural issues before publishing.
- Drag-and-drop interface for
.elp,.elpx, or.ziparchives. - In-browser decompression using JSZip.
- Sequential checklist that validates:
- Archive integrity and presence of the manifest (
content.xmlor legacycontentv3.xml). - Recommended resource directories (
content/,custom/).
- Archive integrity and presence of the manifest (
- XML well-formedness and root
<ode>element. - Navigation structure, page presence, and mandatory node fields.
- Referenced resources inside
htmlViewandjsonPropertiesblocks. - A package details panel that surfaces title, author, language, license, and other metadata from modern and legacy manifests.
- No server required — all processing happens locally in the browser.
- Open
index.htmlin a modern browser. No build step is required. - Drop an
.elp,.elpx, or.zipfile onto the drop zone or click it to choose a file. - Review the validation checklist to understand any warnings or errors.
Install dependencies and run the Jest test suite:
npm install
npm testTests focus on the reusable validation helpers that power the UI.
You can serve the static files with a tiny built-in dev server for easier debugging (auto MIME types, no caching):
npm run startBy default it listens on http://localhost:8081.
Then open the printed URL in your browser and drag an .elp, .elpx, or .zip file onto the page.
index.html # Application shell
styles.css # Styling for the UI
js/validator.js # Shared validation helpers (browser + Jest)
js/app.js # UI glue code
tests/ # Jest unit tests