Commit Graph
19 Commits
Author SHA1 Message Date
tiennm99 3ad0104565 feat: refresh data from baotintuc.vn source, fix overflow sheet loss
Dataset update:
- Crawl all 63 .xls province files from baotintuc.vn CDN (original source)
- Old xlsx dataset moved to data-old/ for reference
- Net: +13,719 students (Hà Nội +7,275, HCM +6,445) — the old .xls → xlsx
  conversion silently dropped rows beyond the 65,536 per-sheet cap
- Also removes 1 bogus header row that had leaked into the old DB
- 100% identical scores on the 847,348 SBDs present in both datasets

Build pipeline:
- build-database.js: iterate ALL sheets per workbook (fixes the overflow
  loss) and accept .xls in addition to .xlsx

Audit tooling:
- scripts/crawl-baotintuc.js: idempotent 63-province downloader
- scripts/diff-datasets.js: compares two DBs by SBD set and per-column
  score deltas
2026-04-14 21:42:29 +07:00
tiennm99 c832810b78 feat: live search, student detail card, score tier color coding
- SearchForm: 300ms debounced live search, visible label, aria-live mode
  hint, inline clear (×) button, minimum-length guards (3 digits / 2 chars)
- StudentDetail: rich single-result card with copy-SBD action, subject
  tiles with 5-tier color+icon coding, admission-block totals (A/A1/B/C/
  D1-D4) computed only when the student has all 3 required subject scores
- ScoreTable: per-cell tier color coding with tooltip
- App.jsx: switches to detail card when exactly 1 result; onClear wired
- App.css: semantic token system with light + dark (prefers-color-scheme)
  variants, :focus-visible ring, reduced-motion fallback, desktop-first
  breakpoints; removes hardcoded hex across components
- admission-blocks.js: pure data + calculator, no UI coupling
2026-04-14 21:21:46 +07:00
tiennm99 d968459b9d refactor: rename assets/ to data/ for raw Excel inputs 2026-04-14 21:20:10 +07:00
tiennm99 e165e3c5b6 refactor: flatten data layout to data/, drop update/ overrides
- Move 63 Excel files from data/raw/ to data/ (single flat dir)
- Remove all 53 files in data/raw/update/: verified identical SBD
  coverage to raw/ (847349 rows either way), so they added no new
  students — only potential score corrections that can be reintroduced
  later if source is recovered
- Update build-database.js to read data/ directly
- Add scripts/audit-row-counts.js: compares source row count to DB row
  count to verify zero-loss parsing
- Point check-duplicates.js at new data/ location
2026-04-14 21:02:47 +07:00
tiennm99 c1cd39e535 feat(ui): refresh styling with design tokens, dark mode, and a11y polish
- Add CSS variables and prefers-color-scheme dark theme
- Color-code score cells (high/low/empty) and add zebra rows
- Add ARIA tablist, search clear button, and focus halos
- Card-style loading, results table, and message blocks
2026-04-14 20:50:57 +07:00
tiennm99 641d0ed05a chore: remove duplicate Excel files, add md5 audit script
- Drop 10_LamDong_GNFT (1) and 2.BacKan_YQNX(1): identical row content to
  siblings (Excel metadata differs but file size & sheet rows match)
- Add scripts/check-duplicates.js to detect byte-identical and row-identical
  files across data/raw and data/raw/update
2026-04-14 20:49:41 +07:00
tiennm99 97519b4b78 feat: diacritics-insensitive search and SQL query tab
- Add ho_ten_ascii column + index for accent-folded name search
- Parse Tiếng Pháp/Nga/Trung scores (recovers ~2k students' foreign-language data)
- Loosen score regex to accept integer values (e.g. KHTN: 4)
- App.jsx: 3-mode search (SBD / ASCII / Vietnamese) and Tra cứu/SQL tabs
- New custom-query component: 8 presets adapted to 2017 schema, read-only safety, auto-LIMIT
- ScoreTable: render new foreign-lang columns, hide columns null across all results
2026-04-14 20:44:43 +07:00
tiennm99 f885aeb6cc feat: add diacritics-insensitive name search
Add ho_ten_ascii column with normalized names (no diacritics, lowercase)
so users can search "nguyen van a" to find "NGUYỄN VĂN A".

- ASCII input searches against ho_ten_ascii column
- Vietnamese input searches both ho_ten and ho_ten_ascii
- Indexed for fast lookups
2026-04-14 20:15:20 +07:00
tiennm99 4aa1f5bd2f update README with features, demo link, and dev instructions 2026-04-14 20:07:23 +07:00
tiennm99 372f1e04fb feat: add GitHub Pages app with custom SQL query support
- React + Vite + sql.js frontend with two-tab UI:
  - Quick search by exam ID (alphanumeric) or student name
  - Custom SQL query editor with 7 preset queries
- Build script handles all 5 Excel data formats (varied column
  orders, separate score columns, no-header, .xls/.xlsx)
- Database: 877,461 students with exam center, gender, 12 subjects
  (including 4 foreign languages: French, German, Japanese, Chinese)
- GitHub Actions CI/CD: build DB, gzip compress, deploy to Pages
- Safety: read-only queries only, auto LIMIT 1000, Ctrl+Enter shortcut
2026-04-14 20:05:38 +07:00
tiennm99 d81ed19a2c feat: add exam result data files for THPT QG 2016
Add 115 Excel files containing exam results from various provinces
and universities across Vietnam for the 2016 national high school exam.
2026-04-14 19:06:11 +07:00
tiennm99 2ff1f8b45d Initial commit 2026-04-14 19:02:17 +07:00
tiennm99 b9e16f63f8 refactor: remove Java code, move web app to project root
- Remove Gradle build, Java sources, Hibernate config, old database.sqlite
- Move Excel data files from src/main/resources/raw/ to data/raw/
- Move Vite+React app from web/ to project root
- Merge package.json into single root-level config
- Update build script paths and CI workflow accordingly
2026-04-13 00:06:22 +07:00
tiennm99 00148c2748 feat: add implementation plans and Vite scaffold files 2026-04-13 00:00:43 +07:00
tiennm99 2bed92547b feat: add static score lookup site with Node.js DB builder
- Node script parses 119 Excel files into SQLite (847K students)
- Vite + React frontend with sql.js for client-side querying
- Search by exam ID (số báo danh) or student name
- Gzipped DB (36MB) with download progress bar
- GitHub Actions workflow for GitHub Pages deployment
2026-04-12 23:54:06 +07:00
tiennm99 cee9df9f1a [Add] logics to insert from excel files into sqlite database 2023-11-13 23:22:59 +07:00
tiennm99 2d2850f20f [Add] lib to create database 2023-10-30 07:35:55 +07:00
tiennm99 17e238a76b [Add] init with idea & add Excel sources 2023-10-29 06:55:42 +07:00
Tien Nguyen Minh 9b195d1621 Initial commit 2023-10-29 06:18:07 +07:00