Read this before making the repository public.
This repository contains two very different kinds of material:
| Origin | Covered by LICENSE? |
|
|---|---|---|
| Application source, build pipeline, tests | Written for this project | Yes |
| Extracted questions, answer keys, exhibit images | Derived from a third-party PDF | No |
LICENSE applies to the source code only. It deliberately does not grant any rights over the
question content, because this project never held those rights to give.
The question bank is machine-extracted from MS-102_Questions_Answers.pdf, an exam-dump compilation
obtained from a third party. The PDF is not included in this repository and is excluded by
.gitignore.
Two things follow from that:
src/data/question-bank.json, the pipeline
intermediates under data/, and the 404 PNGs under public/exhibits/ are all derivatives of
that PDF. Extracting, reformatting and annotating content does not create a new licence for it.A private repository is the low-risk option. Personal study material, kept to yourself, is a very different proposition from republishing someone else’s exam compilation to the public internet.
If you intend to make this repository public, the safe configuration is to publish the tooling and
withhold the derived content. The pipeline intermediates and the generated report are already
git-ignored; withholding the rest means adding these lines to .gitignore before the first commit:
# Derived from third-party copyrighted material — not redistributed.
src/data/question-bank.json
data/exhibits.json
public/exhibits/
Both CI workflows already handle their absence: the content scans and the E2E suite skip themselves when the bank is not committed, and the Pages deployment fails with an explanatory message rather than publishing an empty site.
The pipeline then reproduces everything locally from your own copy of the PDF:
npm run data:build
What remains public is genuinely useful and unambiguously yours to share: the extraction and classification pipeline, the terminology-modernisation map, the verification overlay format, the application, and the tests. Someone with their own source material could use all of it.
data/taxonomy.json and data/terminology.json are a separate case. They record Microsoft’s own
published exam objectives and product renames, fetched from
Microsoft Learn and cited in place. They are facts about Microsoft’s
documentation rather than extracts from the PDF, though Microsoft’s documentation is itself
copyrighted and only short factual references are used.
Microsoft, Microsoft 365, Microsoft Entra, Microsoft Purview, Microsoft Defender and MS-102 are trademarks of Microsoft Corporation. This project is not affiliated with, endorsed by, or sponsored by Microsoft. It uses no Microsoft artwork, logos or proprietary design assets; the visual language is an independent implementation using system fonts and generic shapes.
Exam MS-102 retires in October 2026.
The answers in this bank are not authoritative. Most have never been checked against Microsoft
documentation, and the ones that have are cited individually in the app. The source compilation has
already been shown to contain outright errors — see the source-answer conflicts described in
README.md. Do not treat this as a reference.