尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證A public platform making South African data accessible through interactive visualizations, transparent methodologies and educational insights.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗South Africa's official numbers, explained where you live, with every figure traced to its source.
Live at sadatahub.tech. Independent and not affiliated with any government department. MIT licensed.
| Home | Municipality | Release explainer |
|---|---|---|
Official South African statistics are published as PDFs, Excel workbooks and portals that assume you already know where to look. SA Data Hub takes the same figures from Stats SA, the South African Reserve Bank (SARB), the South African Police Service (SAPS) and the Department of Basic Education (DBE), and puts them in plain English next to the place or release people are asking about.
Search Console for the three months to 23 October 2026 shows who uses it: 92% of clicks came from South Africa and about 80% landed on municipality pages. The product follows that. Municipality pages get the most care, and each monthly or quarterly release gets an explainer.
/updates, a platform changelog, and an RSS feed. Datasets carry schema.org Dataset markup. Every page has a "Report an error" link.Every figure shows three things: its source, the date the source released it, and the date it was last checked on SA Data Hub. The build fails if a displayed statistic is missing any of them (assertSiteSourced() in src/lib/sourcing.ts), so an unsourced number cannot ship by accident.
Other rules the project follows:
automation/ and the PostgreSQL migration in db/ are paused.The full set of rules is in docs/PRODUCT_DIRECTION.md, and what is built, paused and still missing is in docs/CURRENT_STATE.md. The visual system (light by default, serif headings, one accent colour, no gradients) is in docs/DESIGN.md. A draft write-up of the October 2026 redesign, with before and after screenshots, is in docs/case-study/.
| Source | Used for |
|---|---|
| Statistics South Africa | Census 2022 (Provinces at a glance, Municipal fact sheet), Quarterly Labour Force Survey, CPI, GDP, mid-year population estimates |
| South African Reserve Bank | Repo and prime rates |
| South African Police Service | Crime statistics |
| Department of Basic Education | Matric results |
| Department of Higher Education and Training | Higher education enrolment |
Definitions, release schedules and known limits are on the methodology page. Source files used for entry are kept in sources/ (PDFs are not committed).
Next.js 15 (App Router), TypeScript, Tailwind CSS, Recharts, Vitest, ESLint. Source Serif 4 and Inter for type. Deployed on Vercel from main.
Data lives in JSON files in src/data/datasets/ and is read at build time, so almost every page is static. Setting DATA_SOURCE=database with a DATABASE_URL switches the data layer to PostgreSQL on Neon, which is paused and not used in production.
git clone https://github.com/ubayd-hattas/SA_DataHub.git
cd SA_DataHub
npm install
npm run dev # http://localhost:3000
No environment variables are needed for the default JSON data layer.
npm test # Vitest
npm run lint
npm run build # also runs the sourcing check
On the last full run of main, type-checking was clean and Vitest reported 455 passed and 27 skipped (the skipped ones need a database).
sources/releases/.src/data/datasets/, keeping the source, release date and checked date for each figure.src/data/update-history.ts so it appears on /updates.npm test and npm run build. The sourcing check will name any figure that is missing a field.Per-dataset steps (what to download, which files, the explainer and the 2-working-day target) are in docs/RUNBOOK.md.
src/app/ Pages: home, municipalities, provinces, category, explainers,
answers, insights, tools, methodology, updates, downloads
src/components/ editorial/ (shared page pieces), charts/, explainers/, home/, layout/
src/data/ datasets/*.json, answers.ts, explainers/, stories.ts, update-history.ts
src/lib/ sourcing.ts, search*.ts, compare.ts, money-value.ts, citation.ts, seo.ts
tests/ unit/ and equivalence/
docs/ Product direction, design system, case study, architecture notes
automation/, db/ Paused: scheduled data checks and the PostgreSQL migration
The most useful contribution is a correction. If a figure looks wrong, open an issue with the page, the figure and where you saw the right one, or use the "Report an error" link on any page. Suggestions for questions the Answers section should cover are also welcome. Please open an issue before a large pull request.
Built and maintained by Ubayd Hattas, a Computer Science, Statistics and Data Science student at the University of Cape Town. More on the About page.
MIT. The underlying data remains subject to the terms of the original publishers.