tiennm99
|
f82542f764
|
feat: build 3 parallel site variants, one per dataset
Sites:
/thptqg2017/ → data/ 861,068 students (baotintuc.vn .xls)
/thptqg2017/old/ → data-old/ 847,348 students (original xlsx)
/thptqg2017/old2/ → data-old2/ 679,764 students (update/ overrides)
Build pipeline:
- scripts/build-lib.js: shared schema, score regex, toAscii, insert
builder — keeps the 3 DBs drop-in compatible for the same frontend
- scripts/build-database.js: multi-sheet walk for baotintuc .xls (HN/HCM
overflow past the 65k-per-sheet .xls cap)
- scripts/build-database-old.js: single-sheet xlsx + strict numeric SBD
guard (rejects the header-row leak present in data-old)
- scripts/build-database-old2.js: multi-sheet + blank-row pre-filter for
the 54 update files (HCM overflow present, HN not in this subset)
- Each build prints a source-vs-DB audit; verified 0 parse errors and
exact row-count match across all 3 datasets
Frontend plumbing:
- vite.config.js: VARIANT env selects base path, publicDir, outDir
- package.json: build:db:*, build:db:all, build:old, build:old2,
build:all
- .github/workflows/deploy.yml: CI builds all 3 DBs + sites
- .gitignore: cover public-old/ and public-old2/ outputs
- eslint.config.js: add Node globals for config/script files
|
2026-04-14 22:12:25 +07:00 |
|