techpsc-mcq-toolkit
A dependency-free Node.js validator for English and Nepali multiple-choice question banks. It runs on your computer or in CI — no network calls, accounts or tracking.
Small mistakes break whole quizzes.
TechPSC maintains a large bilingual question library for Nepal's PSC, NEC and NHPC exams. A wrong answer index, a missing option, a duplicate question or a broken Unicode string can make a question unusable. The toolkit started from that maintenance work and is shared so other exam-prep teams don't have to rebuild it.
Structure and consistency
- Valid UTF-8 JSON with a non-empty questions array
- Question text, option count and zero-based answer indexes
- Blank or duplicate options; duplicate questions within and across files
- Unicode NFC, case- and whitespace-normalised duplicate detection (Nepali + English)
- Optional unique IDs, explanations and expected counts
Honest limits
- It does not judge whether an answer is factually correct — human review is still needed
- It never rewrites your files
- Reports show codes and locations, not question text
- Text options only (no images or rich text yet)
Two commands.
Requires Node.js 22 or newer.
git clone https://github.com/nilrebreveneid/techpsc-mcq-toolkit.git
cd techpsc-mcq-toolkit
node --test
node bin/mcq-check.mjs /path/to/question-banks --fail-on-warnings
Format, architecture and CI integration are documented in the repository (FORMAT.md, ARCHITECTURE.md, INTEGRATION.md).
What is open, and what is not.
The MIT licence covers the standalone toolkit only: validator, CLI, tests, docs and synthetic English/Nepali examples. The TechPSC app, its question library, premium material, backend and branding are not part of the repository. The toolkit's examples are original and synthetic; no production data is included.
Contributions are welcome.
Bug reports, new checks and documentation improvements are welcome through GitHub issues and pull requests. Please use synthetic test data only. Security reports: see SECURITY.md in the repository.
