Sledovanie času v audítorskej firme
Sledovanie projektov a hodín zamestnancov pre audítorskú firmu · Vytvorené od nuly, samostatne
Aktualizované
Predtým
Klienti, projekty a hodiny boli na jednom mieste, kde mohli všetci vo firme vidieť a meniť všetko.
Potom
87
políčka oprávnení dokázané voči databáze pred každým nasadením; 30 nerobilo nič a boli skryté.
- 1Človek:Vlastník
Vytvára roly so zaškrtávacími políčkami pre jednotlivé oblasti (klienti, projekty, čas, reporty) na zobrazenie, vytváranie, úpravu a mazanie.
- 2Človek:Zamestnanec
Zapisuje hodiny ku klientovi, projektu a úlohe, alebo si zadá voľno.
Softvér:Webová aplikáciaPripomenie každému, kto má pred termínom stále prázdny výkaz hodín.
- 3Človek:Správca projektu
Schvaľuje alebo zamieta týždenný výkaz hodín svojho projektového tímu.
- 4Softvér:Databáza
Každému ukáže iba to, čo mu rola dovoľuje: zamestnanci vidia svoje hodiny, správcovia projektov svoj tím, vlastníci každého klienta.
- 5Človek:Vlastník
Číta hodiny podľa klienta, projektu a osoby v dashboardoch a reportoch.
Platí vždy
- Predtým mohol každý vo firme otvoriť každého klienta a hodiny všetkých ostatných. Teraz databáza odmietne všetko, čo rola nepovoľuje, aj keď si to vyžiada obrazovka.
- Pred každým pushom sa každá rola testuje na izolovanej kópii databázy.
Problém
Audítorská firma viedla klientov, projekty a hodiny zamestnancov v nástroji, kde mohol každý otvoriť každého klienta aj čas všetkých ostatných.
Diagnóza
Riadenie prístupu zlyháva nenápadne, keď žije na obrazovke, takže každé pravidlo muselo žiť v databáze a byť dokázané testami.
Varianty, ktoré som zvažoval
Každá rola vidí iné dáta. Kde žijú pravidlá prístupu?
Zvolené
Priamo v databáze, testované pre každú rolu pred každým nasadením
Obrazovka nemôže prezradiť to, čo databáza odmietne. Cena: testovací beh na izolovanej kópii pred každým pushom.
Zamietnuté
Iba na obrazovkách
Človek mohol vidieť alebo meniť dáta, ktoré mala obrazovka skryť.
Záznam už nie je potrebný. Zmazať ho alebo ponechať?
Zvolené
Archivovať a anonymizovať
História výkazov hodín zostane neporušená.
Zamietnuté
Zmazať ich
Mazanie kaskádovo odstráni históriu výkazov hodín.
Riešenie
Jednostránková webová aplikácia nad spravovaným Postgresom. Každé pravidlo prístupu žije v databáze a pred každým nasadením ho dokazuje automatická matica rolí.
- Aplikácia
- React
- Vite
- TanStack Router
- TanStack Query
- shadcn/ui
- Chart.js
- Dáta a bezpečnosť
- Supabase
- PostgreSQL row-level security
- Edge Functions (Deno)
- Hosting
- Cloudflare
- Kvalita
- GitHub Actions
- Role-matrix tests
- Vitest
- Property-based tests
- Accessibility tests
Súvisiace služby
Čísla: Automatická kontrola rolí, 2026-09-25