ms102-study

Notice on content, licensing and redistribution

Read this before making the repository public.

The code and the content are not the same thing

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.

Where the question content came from

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:

  1. The source PDF’s copyright status is unresolved. Exam-dump compilations of this kind are typically published without the exam owner’s permission, and the compiler generally asserts copyright over their own compilation as well. This project has no licence from either party.
  2. The derived artefacts inherit that status. 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.

What this means in practice

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 trademarks

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.

Accuracy

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.