Interní
PSA platforma

Klientský projekt · Hlavní vývojářka
Dashboard PSA platformy v MacBook Air mockupu s ukázkovými daty

Interní informační systém pro konzultační firmu. Sjednocuje klienty, projekty a zaměstnance včetně jejich kapacit a výkazů rozházené mezi Clockify, Entra ID a Excelem. Sync s Clockify a Entra ID je obousměrný.

Zaměstnanec eviduje výkazy, squad leader s delivery managerem plánuje alokace a sleduje marži, administrace spravuje entity a exportuje reporty. Změny se ukládají do historie, takže marži projektu jde spočítat ke kterémukoli datu.

Role Hlavní vývojářka · Full-stack
Typ Interní systém · klientský projekt
Období Od listopadu 2025 · v produkci od dubna 2026
Technologie
Next.js · React · TypeScript Prisma · SQL Server NextAuth · Microsoft Entra ID Microsoft Graph API Clockify API Azure Container Apps Azure Key Vault · Blob Storage Radix UI · Tailwind next-intl (CS/EN)

Pro účely portfolia je název klienta anonymizovaný a data ve screenshotech jsou ilustrativní.

Konzultační firma stojí na třech otázkách: kdo dělá na čem, kolik to stojí a kolik si za to účtujeme. Odpovědi žily rozházené mezi několika systémy a Excel tabulkami. Každý s jiným formátem, žádný neuchovával historii.

Bez sjednoceného pohledu nešlo jednoduše zjistit aktuální vytížení týmu, spočítat marži projektu ke konkrétnímu datu ani auditovat, kdy a proč se změnila alokace, sazba nebo status projektu. Změny přepisovaly předchozí hodnoty, takže zpětné finanční rekonstrukce byly pracné až nemožné.

Systém propojuje tři světy: organizační strukturu z Microsoft Entra ID, výkazy hodin z Clockify a vlastní data (klienti, projekty, kapacity, sazby, marže) v SQL Serveru.

Přihlašování jde přes Entra ID, secrets jsou v Azure Key Vault. Deploy pipeline používá Workload Identity Federation, takže v CI nejsou žádné dlouhodobé secrety.

vidí data edituje entries · projekty identity · employeeId kapacity reporty Uživatelé 3 persony Interní IS PSA platform Clockify time tracking Entra ID identity · HR Excel import · export webhooky · real-time denně 3:00 UTC
Interní IS jako centrální bod komunikuje se všemi systémy obousměrně.

Synchronizace s Clockify

Uživatelé, projekty a výkazy hodin se automaticky drží konzistentní mezi IS a Clockify.

  • Webhooky pro real-time synchronizaci. Když se v Clockify změní výkaz, IS se to dozví okamžitě, bez čekání na plánovanou synchronizaci.
  • Odolnost proti rate limitům. Automatické opakování s postupně rostoucí prodlevou, respektuje pokyny z API.
  • Ochrana proti souběhu a audit. Systém zabrání souběhu dvou plných synchronizací zároveň, každá synchronizace generuje záznam pro dohledatelnost.

Sladění zaměstnanců s Entra ID

IS potřebuje aktuální seznam zaměstnanců pro kapacitní plánování, sazby i pohledy na výkazy. Synchronizace běží průběžně a sladí seznam zaměstnanců mezi Entra ID a IS.

  • Filtr firemních účtů. Vyřadí účty, které nepatří konkrétnímu zaměstnanci: schůzkové boty, tiskárny, helpdesk, service účty.
  • Automatické přiřazení ID. Když zaměstnanec nemá své ID, systém mu ho v IS vygeneruje a zároveň propíše do Entra ID.

Klíčové technické výzvy

  • Sladění tří systémů. Zaměstnanec žije v Entra ID, Clockify i IS, ale žádný z nich není zdroj pravdy pro všechno. Průběžné automatické sladění doplňuje chybějící identifikátory a přidává nové účty.
  • Uchování historie všeho, co se mění v čase. Kapacity, sazby, benefity i statusy projektů se ukládají s časovým rozsahem, takže reporting jde spočítat ke konkrétnímu datu a historie se nikdy neztrácí.
  • XLSX pro hromadné operace a reporting. IS má vlastní UI pro plánování, ale podporuje i práci přes Excel. Hromadný import kapacit s validací a export sazeb, alokací a historie projektů pro finanční reporty.

Funkce v aplikaci pokrývají klíčové scénáře konzultační firmy: sledování projektů, správu výkazů, plánování kapacit a sazeb.

  • Sledování projektů. Na jednom místě je odpovědný vedoucí, tým, aktuální stav i odpracované hodiny. Vedoucí projektu vidí, jak projekt jede, bez skoku mezi systémy.
  • Sledování výkazů propojené s Clockify. Zaměstnanci si vedou výkazy v Clockify, jak jsou zvyklí, IS je automaticky synchronizuje a nabízí je ve vlastních pohledech pro alokace, marže i reporty.
  • Plánování kapacit, sazeb a benefitů s historií. Alokace lidí na týmy, hodinové sazby (fakturovatelné i interní) i benefity se ukládají s datem platnosti. Marži projektu jde spočítat ke kterémukoli datu v minulosti.
  • Řízení oprávnění na úrovni uživatele i skupiny. Role se přiřazují buď konkrétnímu mailu, nebo přímo skupině v Entra ID. Přístup se tak dá měnit centrálně z HR bez zásahu do aplikace.
  • Vlastní pohledy na výkazy. Každý uživatel si může uložit oblíbenou kombinaci filtrů, řazení a zobrazených sloupců. Přepínání mezi svými pohledy jedním klikem.
  • Podpora dvou jazyků: čeština a angličtina. UI je plně přeloženo, uživatel si přepíná jazyk podle preference. Přeložit jde vše od tlačítek po systémové hlášky.
Přehled výkazů s filtrováním, řazením a exportem
Výkazy — kde vzniká čas
Personální přehled — kapacity, statusy, sazby napříč týmem
Personální přehled — team overview
Detail zaměstnance — Kariéra tab s historií úvazku, squadu, mzdy a statusu ve validFrom/validTo rozsazích
Kariéra zaměstnance — versioning úvazku, mzdy, statusu
Detail projektu — časová osa squadů + Historie squadů, DM a stavů projektu
Detail projektu — audit trail squadu, DM a stavů

Fáze 1 dodána a v produkci od dubna 2026, po zhruba pěti měsících vývoje (listopad 2025 až březen 2026). Systém aktivně používají uživatelé u klienta, další fáze čeká na jejich signál.

Aplikace má vlastní kanál pro zpětnou vazbu, přes který uživatelé nahlašují chyby a posílají návrhy na další funkce. Aktivně se používá a příspěvky přímo řídí prioritizaci dalšího vývoje.

Snapshot repozitáře

~44 700 řádků TS/TSX
241 souborů (TS/TSX)
30+ Prisma entit
10 DB migrací
49 API routes
~3 100 řádků Clockify sync engine
961 × 2 překladové klíče (CS/EN)
87 git commitů