Replace synthetic port with relabeled BUS220 source (Ukrainian, brigade logistics framing)

This commit is contained in:
2026-05-09 02:40:53 +03:00
parent 10be37e01b
commit abeb164fae
8 changed files with 445 additions and 9533 deletions
+23 -22
View File
@@ -1,34 +1,35 @@
# BI Detective
# BI-детектив: Розслідування дашборду
Standalone static-site exercise for a data-literacy lecture (ХАРТІЯ × KSE GBS, 9 травня 2026).
Статичний навчальний дашборд українською мовою для лекції з дата-грамотності (ХАРТІЯ × KSE GBS).
VP message says brigade efficiency went 62% → 71% over a month. Player has 4 dashboard tabs and 9 multiple-choice quizzes to figure out *why* — and whether the headline number actually means what it looks like (mission-mix-shift / Simpson's paradox).
Командир логістики бачить, що рейсів стало приблизно на 30% менше за місяць (жовтень → листопад) і просить пояснити це до завтрашнього брифінгу. Гравець має 4 вкладки дашборду й 9 питань, щоб з'ясувати, *що насправді сталося* — і чи проблема справжня (відповідь: ні; це сезонність + парадокс Сімпсона через зсув композиції замовників).
Synthetic dataset of 8 540 ops; UI in Ukrainian; no backend.
> **Дані синтетичні й абстрактні.** Завдання — шукати закономірності у самих даних, а не виводити їх із реального світу. Тут працюють лише докази на основі цифр.
## Run locally
9 питань тестують специфічні рефлекси читання даних:
Serve the directory with any static HTTP server, e.g.:
1. «Порівняно з чим?» — рік до року
2. Календарні артефакти (4 vs 5 днів тижня)
3. Зсув обсягу vs зсув патерну (погодинно)
4. Чи розходяться значення в розрізі (клас техніки)
5. Кошики тривалості — провідна підказка
6. Системний vs локальний (логістичні вузли)
7. Композиція замовників — провідна стежка
8. Зсув композиції впливає на середнє
9. Парадокс Сімпсона — фінал
## Запуск локально
```
python3 -m http.server 8000
```
Then open `http://localhost:8000`.
Далі відкрий `http://localhost:8000` у браузері.
## Regenerate the dataset
## Файли
```
python3 generate_data.py
```
Rewrites `game_data.js` (and `raw_facts.csv`). Headline calibrates to ≈ 62% → 71%; per-category success rates rock-stable across runs.
## Files
- `index.html` — main UI
- `game.js` — game logic
- `game_data.js` — pre-baked synthetic dataset (8 540 ops)
- `quizzes.js` — 9 Ukrainian-language quizzes
- `generate_data.py` — dataset generator (regenerates `game_data.js` + `raw_facts.csv`)
- `raw_facts.csv` — intermediate flat data, kept for inspection
- `index.html` — UI
- `game.js` — логіка гри
- `game_data.js` — JSON-структуровані дані, виведені з реального датасету Divvy (Chicago bikeshare) і перейменовані в логістичну термінологію
- `quizzes.js` — 9 питань-кейсів
- `styles.css` — стилі