TechPSCPrepare with direction
Open source · MIT

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.

GitHub repository →Contributing guideReport an issue

Why we built it

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.

What it checks

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
What it does not do

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)
Try it

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).

Scope

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.

Get involved

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.

Star or fork on GitHub →Back to TechPSC