PSA platforma
pro konzultační firmu

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

Interní PSA platforma (Professional Services Automation) 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.

auth · role entries · projects identity · IDs reports · finance Uživatelé employee · lead · admin Interní IS Next.js · Prisma · SQL Server 30 entit · 57 API routes Clockify Time tracking WEBHOOKS · REAL-TIME Entra ID Identity · HR DAILY 3:00 · MS GRAPH Excel Import · Export ON-DEMAND · BATCH
Interní IS jako centrální bod. S Clockify a Entra ID komunikuje obousměrně, Excel používá pro hromadné importy a exporty.

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ěží denně a on-demand při akci admina (vstup na stránku nebo tlačítko).

  • 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.

IS dal konzultační firmě jedno centrální místo pro tři věci, které dřív žily rozházeně: řízení projektů, výkazy a plánování kapacit, sazeb i benefitů.

  • 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.
    Detail projektu: odpovědný vedoucí, tým, časová osa squadů a stavů projektu
  • Sledování výkazů propojené s Clockify. Zaměstnanci si vedou výkazy v Clockify, jak jsou zvyklí, IS je automaticky synchronizuje a používá pro alokace, marže i reporty.
    Přehled výkazů synchronizovaných z Clockify s filtrováním, řazením a exportem
  • 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.
    Detail zaměstnance: historie úvazku, sazeb a benefitů podle data platnosti
  • Ří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 IS.
  • 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.

Jako hlavní vývojářka jsem projekt převzala po dvoutýdenním kickoffu (Next.js scaffolding, CI/CD pipeline a Azure infra postavil kolega) a za pět měsíců sólo vývoje jsem ho dovedla do produkce: schema, backend, frontend, integrace, historizace, plánování, i18n i RBAC.

Vývoj probíhal v úzké spolupráci s klientem. Týdenní schůzky doplňoval vlastní feedback kanál v aplikaci, kde klient hlásil bugy, posílal návrhy změn i screenshoty toho, co nesedí. Z těchto vstupů jsem průběžně iterovala.

Fáze 1 dodána za 5 měsíců od kickoffu, v produkci od dubna 2026. Od té doby v ní každý měsíc přibývá ~1 000 nových výkazů. Další fáze čeká na signál z provozu.

83 aktivních zaměstnanců
174 projektů
58 klientů
60 000+ hodin napojených na sazby a marže
8 000+ Clockify sync eventů
976 verzí kapacit, sazeb a benefitů