Перейти до вмісту
BigTree108

Кейс: портал управління компанією

У 2025 році новій компанії з першого дня були потрібні найм, онбординг, договори, облік часу, відпустки, виставлення рахунків і бухгалтерія, а бюджет не дозволяв купувати сім окремих продуктів. Ми створили одну платформу для всього цього і керуємо на ній компанією.

Проблема

Готові інструменти для HR, обліку часу та виставлення рахунків коштували б щомісяця більше, ніж увесь бюджет, і жоден із них не враховував українського законодавства про підрядників, електронного підпису через місцевий банк чи те, як години з трекера часу потрапляють у рахунок клієнту. Альтернативою були електронні таблиці, які перестають працювати вже в той тиждень, коли хтось іде у відпустку.

Ми вирішили побудувати платформу на стеку, який пропонуємо клієнтам, ставитися до неї як до справжнього продукту з тими самими інженерними правилами, що й до клієнтських робіт, і зробити її референсом, про який можуть розпитувати наші клієнти.

Що вона робить

  • Найм

    Публікація вакансій на майданчиках із пошуку роботи, відбір кандидатів через Telegram-бота з бібліотекою запитань, технічні й зовнішні співбесіди із бронюванням часу, відстеження випробувального терміну.

  • Онбординг

    Покроковий сценарій, який збирає документи, що посвідчують особу, перевіряє їх за допомогою хмарних AI-сервісів, підтверджує написання імені, збирає контакти та інформацію про обладнання й створює облікові записи через провайдера ідентифікації.

  • Договори та документи

    Договори про надання послуг і NDA формуються з шаблонів у PDF, надсилаються на електронний підпис і зберігаються як підписаний запис. Угоди з клієнтами та специфікації обсягу робіт проходять тим самим шляхом.

  • Облік часу й відпустки

    Облік годин за кожним призначенням на проєкт: години синхронізуються із зовнішніх трекерів часу, і фахівець може їх редагувати; відпустки та лікарняні з лімітами днів за договором і погодженнями.

  • Винагорода та виставлення рахунків

    Щомісячні рахунки фахівців і рахунки клієнтів, сформовані з тих самих облікованих годин, курси валют центрального банку, перевиставлення разових платежів, архів підписаних рахунків.

  • Бухгалтерія та відповідність вимогам

    Нагадування про податкові декларації та платежі, імпорт банківських виписок, екстрені контакти та модель дозволів із безпекою на рівні рядків і запитами на підвищення прав для доступу до фінансових даних.

  • Сповіщення

    Картки в чаті та месенджері для кожної події, на яку людині потрібно відреагувати, з правилом, що жодне повідомлення не містить фінансових цифр: вони залишаються за входом у систему.

Як вона побудована

  • Бекенд

    .NET 10 на Azure Functions, вертикальні зрізи з CQRS через медіатор, згенерований source-генераторами, валідація на кожній межі, EF Core з версіонованими міграціями.

  • Дані

    Azure SQL із безпекою на рівні рядків для кожного клієнта та стовпцями Always Encrypted для персональних і фінансових даних, ключі зберігаються в керованому сховищі.

  • Фронтенд

    Angular зі standalone-компонентами, сигналами та виявленням змін без zone.js, дизайн-система на Tailwind і API-клієнт, згенерований з документа OpenAPI.

  • Постачання

    GitHub Actions із федеративними обліковими даними, Terraform для всієї інфраструктури, зміни бази даних, що розгортаються міграціями в пайплайні, CodeQL і сканування залежностей.

Правила, що її сформували

  • Пріоритети у фіксованому порядку: вартість, потім безпека, потім сучасність, потім продуктивність, потім відповідність вимогам. Будь-який конфлікт розв'язується на користь вищого пріоритету.
  • Джерелом істини для даних про людей є провайдер ідентифікації; база даних є для них кешем і єдиним місцем зберігання зарплат, даних про найм і прав доступу.
  • Чутливі дані ніколи не потрапляють у звичайний стовпець, навіть ненадовго. Шифрування задається більш ніж в одному місці й перевіряється під час запуску.
  • Кожне виправлення помилки супроводжується тестом на її клас, винесеним на найширший рівень контролю, який здатен її виявити; часто це архітектурний тест, а не модульний.
  • Чат є недовіреним середовищем відображення. Сповіщення називають подію й містять посилання на сторінку, захищену автентифікацією; суми й ставки ніколи не виходять за межі продукту.

Чому це важливо для вас

Ми описуємо не демо. Ця платформа щодня керує справжньою компанією, а отже, ми достатньо довго працюємо з власними архітектурними рішеннями, власними міграціями та власною системою алертів, щоб знати, які з них були правильними. Те саме вміння ухвалювати рішення ми застосовуємо до вашого продукту.

Хочете щось подібне для своєї компанії?

Опишіть процеси, які ви сьогодні ведете в електронних таблицях. Протягом одного робочого дня ви отримаєте письмовий план, пропозицію архітектури та оцінку.