Commit Graph

6 Commits

Author SHA1 Message Date
Askarova A
218c93df25 feat: what-if simulator (no data changes)
Adds a "Симулятор" block that recomputes KPIs against a virtual scenario
without modifying the source data:

- optimization slider: reduce every function's time by 0–80%
- exclude top-N longest functions slider
- exclude an entire auto-stage (dropdown)
- recruiters (FTE) slider: 1–10
- vacancies-per-month slider: 0–50

Output is a side-by-side table (Было / Стало / Δ%) for cycle time,
days, weeks, monthly load, FTE %, capacity, overload, recruiters needed,
and cost. Color-codes improvements green, regressions red.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 14:02:29 +05:00
Askarova A
3006833705 feat: dashboard analytics pack — Pareto, histogram, treemap, duration, auto-stages, FTE scenario, recruiters needed, sortable table, bottleneck highlight
Adds analyses that don't require new data:

- Pareto cumulative chart (which N functions = 80% of time).
- Duration histogram (bucketed counts).
- Function length donut (short / medium / long).
- Auto-stage classifier by keywords in the function name
  (Привлечение / Скрининг / Интервью / Оффер / Адаптация /
  Документы-СПП / Коммуникация / Прочее) + horizontal bar.
- Treemap: group -> function, area = minutes.
- "FTE scenario" bar chart: 0..30 vacancies/month with color buckets
  (green ≤100%, amber ≤150%, red >150%) and a dashed 100% norm line.
- "Recruiters needed" card: ceil(monthlyDays / 21).
- Sortable table columns + Этап column.
- Top-3 bottleneck rows highlighted (red tint + 🔥).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 13:57:47 +05:00
Askarova A
95fe078387 feat: workload analysis in days/weeks
Adds a "Нагрузка на сотрудника" block: days per cycle, weeks per cycle,
total days/weeks per month at the current vacancy plan, and an
overload/buffer card vs 21 working days a month.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 13:43:03 +05:00
Askarova A
f4ce3c97a2 fix: robust xlsx column parsing via header:'A'
Switched sheet_to_json from array (header:1) to column-letter objects
(header:'A'), so the parser reads B/C/D directly. Previous array
destructuring broke when the sheet's range did not start at column A.
Also added debug logging and a script-tag cache buster.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 13:37:16 +05:00
Askarova A
da623a388c feat: auto-load default xlsx on page open
Dashboard fetches "Функции и вес рекрутинг 2026 (2).xlsx" from the same
directory on load, so opening the page renders the MVP immediately
without requiring a manual upload. Manual upload still works as override.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 13:14:13 +05:00
Askarova A
f97af2b749 feat: дашборд функций рекрутинга (MVP)
- index.html / styles.css / app.js — клиентский SPA на SheetJS + Plotly
- Парсит .xlsx в браузере, без бэкенда
- Базовые KPI: сумма времени, кол-во функций, среднее, самая долгая
- Стратегические KPI: цикл, FTE-загрузка, capacity, bottleneck, стоимость
- Топ-10 функций, распределение по группам, таблица с фильтрами
- Тёмная/светлая тема, кириллический парсер времени
- assets/logo.svg — плейсхолдер логотипа telecom.quest
- PRD.md / TRD.md обновлены под Gitea Pages деплой

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 11:35:51 +05:00