Commit Graph

11 Commits

Author SHA1 Message Date
Askarova A
dee9899242 feat: per-function time overrides (no xlsx changes)
Adds a UI block "Ручные правки времени" that lets a user override the
parsed time of a specific function by number, without modifying the xlsx
file. The override propagates through every KPI, chart, simulator, and
FTE scenario via filtered().

The table marks overridden rows with ✏️ and shows the original raw value
struck through. Overrides appear as removable chips below the form.

Also seeds a default override for function №39 ("Контроль табелей") to
60 minutes, because the raw "5до 7 дней" string parses to ~2880 min
(48 h) which is unrealistic for a one-off check and skews every
aggregate. The user can change or remove it from the UI.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 14:19:29 +05:00
Askarova A
e57e210d31 feat: visual polish — hero illustration, decorative SVGs, gradient UI
- New SVG hero (recruitment funnel + bar chart + people icons) above the
  dashboard.
- New empty-state illustration shown while the file is loading.
- Upgraded brand logo with blue→purple gradient and drop shadow.
- Subtle dotted background pattern (assets/pattern.svg, fixed
  attachment) for depth.
- Header is now sticky with a translucent gradient + backdrop blur.
- Hero block uses a soft blue-to-purple gradient and gradient text for
  the title.
- KPI cards get a gradient accent bar, gradient-text values, and a
  lift-on-hover transition.
- Section blocks get rounded corners (14px), soft shadow, and a hover
  glow.
- Responsive hero on screens below 900px.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 14:14:14 +05:00
Askarova A
3c937e091c feat: per-business-unit time multiplier (no data changes)
Adds a "Структурных подразделений (СП)" input. The xlsx source is not
modified; instead, at compute time functions whose name mentions СПП/ССП,
подразделения, руководители, комиссия, or линейн get their minutes
multiplied by the СП count. The table tags those rows with 🏢×N and shows
the base × multiplier breakdown.

This propagates through every KPI, chart, simulator, and FTE scenario
automatically because the multiplication happens in filtered() before
metrics().

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 14:10:13 +05:00
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
024cc05b03 data: include source xlsx for MVP auto-load
Force-add the recruiter functions spreadsheet so the deployed dashboard
on Gitea Pages can fetch it. Other xlsx files remain ignored.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 13:14:47 +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
Askarova A
d668b75595 Initial: Askarova A joins the platform 2026-05-22 10:21:02 +05:00