mirror of
https://github.com/tiennm99/thptqg.git
synced 2026-10-05 18:14:38 +00:00
6ff2ed99ece57de7a868baa34da7bb148ad289ae
The repo held two near-duplicate projects. 2016/ and 2017/ each carried their
own React frontend, their own copy of the same Rust crate, and their own
package manager setup. 2016/tools/sync-from-thptqg2017.sh existed purely to
copy the parser source between them.
New layout:
index.html + src/ the 2017 frontend, now the only one
data/<id>/ 2016, 2017, 2017-old, 2017-old2
parser/ the single Rust crate, configs renamed to <id>.toml
docs/ both projects' docs, 2016 copies suffixed -2016-legacy
pending the merge pass
<id> is now one identifier end to end: data/<id>/ feeds parser/configs/<id>.toml
and produces db/<id>.db.gz.
pnpm gives way to npm. pnpm-workspace.yaml existed only to whitelist
better-sqlite3's native build, which npm permits by default, so it has no
equivalent and is simply gone. Lockfiles cannot be converted; package-lock.json
is generated fresh. The migration direction is safe — pnpm's strict layout
forbids phantom dependencies, so anything that resolved under pnpm resolves
under npm's flat tree.
Adds parser/scripts/build-db.js and src/datasets.js: the four dataset IDs are
declared once and read by both the build tooling and (from the next phase) the
frontend.
Follow-on fixes the move made necessary:
- eslint's Node-globals override pointed at scripts/, now parser/scripts/
- crawl-baotintuc.js wrote to <root>/data, now data/2017
- golden tests loaded configs by their old thptqg*-data.toml names
Drops the #[ignore]d Rust-vs-Node golden test. It shelled out to pnpm to run
scripts/build-database.js, a file removed when the parser was ported to Rust,
so it could never pass. check-duplicates.js and diff-datasets.js were already
broken before this change and are annotated as such rather than half-fixed.
63 Rust tests pass and clippy is clean from the new location.
thptqg
Tra cứu điểm thi THPT Quốc gia — exam-score lookup for Vietnam's national high
school graduation exam. Client-side SQL (sql.js) over a SQLite database built
from the ministry's raw .xls score files by the Rust xlsxread CLI.
Served as one site at tiennm99.github.io/thptqg.
| Directory | Year | Size | Site |
|---|---|---|---|
2016/ |
THPT QG 2016 — 877,461 candidates | ~50 MB raw data | /2016/ |
2017/ |
THPT QG 2017 — ~861,000 candidates | ~117 MB raw data | /2017/ (+ old, old2 generations) |
Each year was a standalone repository (thptqg2016, thptqg2017), merged here
with full history. Each keeps its own tools/xlsxread copy because the raw
data formats differ per year.
The Deploy to GitHub Pages workflow builds both years' databases and site
bundles and publishes them behind a root index.
Description
Tra cứu điểm thi THPT Quốc gia 2016–2017 — 1,7 triệu thí sinh · Truy vấn SQL client-side với sql.js
Readme
Apache-2.0
165 MiB
0 Stars
1 Watchers
0 Forks
Languages
Go
67.1%
JavaScript
18.9%
Svelte
11.6%
CSS
2.2%
HTML
0.2%