# Question Sources

This file records what is in the bank, where it came from, and where official answers or worked solutions should be pulled from later.

## MAT

- Count: 230 MCQs in the bank.
- Source: Oxford Mathematics Admissions Test past papers and official solutions.
- Main page: https://www.maths.ox.ac.uk/study-here/undergraduate-study/maths-admissions-test
- Local data: `data/questions_text.jsonl`, `crops/`, `compare/`, `pages/`.
- Answers: official answer choices are already ingested.

## TMUA

- Count: 360 crop questions in the bank.
- Coverage: 2016-2023 Paper 1 and Paper 2, plus early specimen papers.
- Source: UAT-UK / ESAT-TMUA preparation materials.
- Main page: https://esat-tmua.ac.uk/tmua-preparation-materials/
- Local data: `data/tmua.jsonl`, `tmua_crops/`.
- Answers: answer-key PDF links are stored per record, but answer choices are not parsed into the bank yet.

## Gaokao

- Count: 66 selected items in the bank.
- Translated LaTeX items: 16 questions from 2026 National Paper I and 2026 Shanghai.
- Translated crop items: 50 hard-tail questions from Jiangsu, Zhejiang, New Curriculum I, and National I Science papers. These now have English text records plus rendered English question-body images.
- Diagram crops: 4 translated crop items have separate extracted diagram images in `gk_graph_crops/`, embedded directly into the card/detail/drill views.
- Local archive source: `~/Documents/Inbox/Gaokao-math-byprovince 2008-2025/`.
- Web paper archive: `archives/gaokao_paper_archive.html`, generated from the matching Word documents so each selected `GK-Qxx` can link to the broader original paper context.
- Translation source: `data/gaokao_crop_translations_en.jsonl`, selected from the user's two supplied English translation JSONL files because it had more consistent English/MathJax style and more useful translator notes.
- Local data: `data/gaokao.jsonl`, `data/gaokao_crops.jsonl`, `data/gaokao_crop_translations_en.jsonl`, `gaokao/`, `gk_crops/`, `gk_graph_crops/`, `gk_rendered_questions/`.
- Answers: use the matching `解析卷` files in the local archive.
- Display note: because this is a selected subset, cards use bank IDs like `GK-Q11`; original paper and original question number are shown in the detail modal. Detail/drill views use rendered images when available, while external card text remains searchable and can be compared with image preview via the developer toggle.

## Site Packaging

- `index.html` is intentionally small; per-source data lazy-loads from hash-named `site_data/*.js` only when a tab is opened.
- Cards mount progressively (24 at a time via IntersectionObserver infinite scroll); card DOM is created on demand, so switching to TMUA does not build or fetch 360 images at once.
- Question-image assets (`tmua_crops/`, `gk_crops/`, `gk_rendered_questions/`, `gk_graph_crops/`, `engaa_crops/`) use content-hash filenames (`tools/hash_assets.py`): URLs are non-enumerable and any regenerated image busts caches automatically. Data records keep plain names; `tools/build_site.py` resolves them at build time.
- MathJax is vendored at `vendor/mathjax/tex-svg.js`, loaded only if a detail view needs typesetting.
- A static site cannot fully prevent direct downloads of public assets; this packaging removes one-shot delivery and guessable asset URLs, which is the practical ceiling without a server.

## ENGAA

- Count: 9 selected maths items in the bank.
- Source file: `~/Documents/Inbox/ENGAA 2022 Section 1.pdf`.
- Coverage: selected Part B maths questions only.
- Local data: `data/engaa.jsonl`, `engaa_crops/`.
- Answers: official ENGAA answer keys should be used in the answer-ingestion phase.
- Display note: because this is a selected subset, cards use bank IDs like `ENGAA-Q03`; original paper and original question number are shown in the detail modal.

## AMC12

- Count: 60 cropped items in the bank.
- Coverage: 2025 AMC 12A Q1-Q15, 2025 AMC 12B Q1-Q15, 2024 AMC 12A Q1-Q15, and 2024 AMC 12B Q1-Q15.
- Source: AoPS Wiki AMC problem pages and answer-key pages.
- Archive page: https://artofproblemsolving.com/wiki/index.php/AMC_Problems_and_Solutions
- Local data: `data/amc12.jsonl`, `data/amc12_search.jsonl`, `amc_crops/`.
- Local source files: user-supplied PDFs in `/Users/GaryS/Downloads/amc-archive-21-25/`.
- Crop workflow: `tools/amc_crop_pdfs.py` renders the PDFs, OCRs question starts, and crops Q1-Q15 for each selected contest.
- Search workflow: `tools/amc_extract_text.py` OCRs the final crop images into `data/amc12_search.jsonl` and writes searchable text back into `data/amc12.jsonl`.
- Answers: correct answer choices are ingested for the 60 selected records, with answer-key links still stored per record.
- Display note: detail pages show the local crop and keep the original AoPS problem page as the solution/source link.
- Tagging note: this is a first-pass TMUA triage set selected from recent AMC 12 contests, intended for filtering and review before any deeper answer/solution ingestion.

## Vetted Backlog

- UKMT Senior Maths Challenge tail questions.
- ESAT Maths 2.
- Hong Kong/Macau/Taiwan joint entrance and AST maths, pending reliable sources and answer keys.

Rejected or low-priority sources so far: SAT Math, ACT Math, standard A-level papers, AMC 10 early items, Chinese liberal-arts Gaokao papers, and most provincial Gaokao papers outside the selected hard-tail sets.
