redmanmale

if-goto

Визуализация стажа сотрудников (Project WorkLife)

[ powershell | frontend | llm ]

Abstract

Делаем визуализатор стажа сотрудников компании на основе доступных данных. Минимум ручного труда, максимум вайбкодинга.

Introduction

Несколько лет назад я наткнулся на BugLife — визуализацию жизни багов для GitHub, ещё какое-то время спустя придумал свою идею. Но во фронтенде я не слишком разбираюсь, и поправить реализацию руки так и не дошли.

А недавно взял Cursor и за пару вечеров навайбкодил. Почти всё получалось с первого раза, кроме лоадера, который пришлось переделывать раз пять.

Methods

Проект состоит из двух частей. Первый — для получения данных, второй — для их визуализации.

Источник данных

Источник может быть любым — Битрикс, 1С, БД, да хоть руками json пиши — главное, чтобы на выходе был список людей с датой приёма и увольнения. В относительно больших конторах таким источником обычно выступает Active Directory, я написал скрипт для неё, для остальных несложно сделать тоже самое.

.\Export-From-AD.ps1 "OU=Users1,DC=Company,DC=Com","OU=Users2,DC=Company,DC=Com"

По умолчанию файл — ad-data.json. Имя файла с данными задаётся в config.json, чтобы можно было подставить свой без правки кода.

Для каждого объекта в AD сохраняются имя, отдел, должность, дата создания учётки, признак активности и последний логон. Отключённые пользователи определяются по disabled в Distinguished Name — грубо, но эффективно.

Визуализация

Визуальную часть я почти не трогал, слегка подправив в соответствии с новой схемой данных.

Сайт статический, можно раздавать любым веб-сервер, например так:

python -m http.server 8000

Results

Примеры на синтетических данных.
По отделам: demo-01

По сотрудникам: demo-02

Интересные чиселки: demo-03

Проект лежит здесь, локальный, офлайновый, статический, никаких облаков и серверов. Если добавите свои коннекторы, PRs are welcome.