DHA Exam Prep Hub

DHA Exam Prep Hub · Build dossier

A pass over the project’s own repository: what is implemented, what is partial, what stayed on paper.

A single-page browser app with no build step: one HTML file holding inline JavaScript and the question bank; it runs offline and keeps state in localStorage. There is no server side.

3 implemented · 1 partial · 1 not implemented · 1 on roadmap

Concept illustration: DHA Exam Prep Hub. Not a product screenshot

What the code says

  • The 664-question bank is held inline in the file as objects with id, question, options, correct, block and difficulty fields

    Source index.html

  • By difficulty: 284 hard, 243 medium and 137 easy, summing to the full bank size

    Source index.html

  • 26 topic blocks; the largest: product knowledge 128, procedures 92, regulations 75, anatomy 61

    Source index.html

  • A trial draws 50 shuffled questions, and the options are re-shuffled with the correct-answer index recomputed

    Source index.html

  • Progress and flagged questions persist in localStorage under keys prefixed with dha_

    Source index.html

  • One inline script, and the only outbound links are the regulator address and a return to moonsugar.space; the source pulls its font from a third-party CDN while the published build serves it locally

    Source index.html

Module state

  1. implemented

    The question bank and trial delivery

    664 questions are served with option shuffling, and a trial draws 50 from the pool.

    Source index.html

  2. implemented

    Answer checking and a filter for malformed items

    The correct answer is matched against the options array; normalizeQuestion and validateQuestion drop items whose answer is not among the options, logging to the console.

    Source index.html

  3. implemented

    Offline state

    The progress screen and the flagged-question list live in localStorage under dha_ keys.

    Source index.html

  4. partial

    The timer and the modes

    Timer code and a 50-question draw exist, but distinct modes such as flashcards or a labelled mock exam were not found in the file.

    Source index.html

  5. not implemented

    Build, tests and CI

    The hub has no build pipeline, test files or workflow: under .github only an instructions file exists, and regressions are not blocked.

    Source .github

  6. on roadmap

    Aligning the bank with the current syllabus

    Keeping the 664 questions aligned with the current licensing programme is manual work; the file has no automated reconciliation with the regulator source.

    Source README.md

How this was checked

  • The 664 count is verifiable by counting bank entries

    The file holds 664 objects of the id-plus-question shape, and the blocks and difficulty counts sum to the same 664.

    Source index.html

  • The difficulty split accounts for the whole bank

    284 hard, 243 medium and 137 easy add up to exactly 664.

    Source index.html

  • The published page loads nothing from outside itself

    In the built artifact the font reference is rewritten to a local path, and no link, script or img tag carrying an http address exists in the source or the build.

    Source index.html

Limits of these claims

  • The questions are author-prepared; this is not the official regulator exam and does not guarantee alignment with the current syllabus.
  • No verification against the current licensing programme is documented in the repository.
  • No build, tests or CI: the file is edited by hand and behavioural regressions are not blocked.
  • Beyond practice and progress, no further modes such as flashcards or a labelled mock exam were found in the file.
  • State is local only: progress does not sync across devices and is lost when localStorage is cleared.
  • The question content is English; no separate RU or AR localisation layer was found inside the app.

Live build

Live builddha-exam.moonsugar.space ↗

Revision
1ca3ca8
Build directory
.

The subdomain serves exactly that one file from the repository: the 664-question bank is inlined, nothing reaches out to third parties and the font is served locally, so once loaded the page keeps working offline. It is independent practice, not an official DHA trainer, and flagged questions stay in the browser only.

The page itself does not confirm availability: the host is checked when the build is published.

Back to the project overview ↗