Produkcijsko orodje za sledenje težavam v slogu Jira — demonstrira razširljivo Next.js arhitekturo s Supabase, RBAC in vzorci iz resničnega sveta.
Vključuje E2E teste, produkcijsko pripravljene vzorce in pravo Supabase zaledje.
01Inženirski poudarki
Ops Tracker je full-stack aplikacija za upravljanje projektov in sledenje težavam, ki demonstrira produkcijsko frontend arhitekturo, podprto z resnično bazo Supabase (PostgreSQL). Pokriva avtentikacijo, nadzor dostopa na osnovi vlog, Kanban table, projektno usmerjene težave, popolne revizijske dnevnike, transakcijska e-poštna sporočila in internacionalizacijo v treh jezikih — vse, kar pravi B2B SaaS zahteva.
- 01Next.js 16 App Router
Strežniške komponente, strežniške akcije in proxy posrednik poganjajo tako avtentikacijo kot i18n od konca do konca.
- 02Row Level Security v bazi
Supabase RLS uveljavlja vsako branje in pisanje na ravni baze podatkov — privzeto brez zaupanja.
- 03Tristopenjski RBAC
Vloge Uporabnik, Admin in Super Admin so shranjene kot tipizirani Postgres app_role enum in preverjene na strežniku.
- 04Virtualizirana tabela težav
TanStack Table v8 v paru z @tanstack/react-virtual ohranja velike sezname težav gladke pri kateremkoli številu vrstic.
- 05Playwright E2E pokritost
Kritične poti avtentikacije in upravljanja težav varujejo end-to-end Playwright testi.
02Arhitekturni pregled
- 01Moduli na osnovi funkcij
Vsaka domena živi v src/features/<domena>/ s svojimi komponentami, hooks, akcijami, storitvijo in Zod shemami na enem mestu.
- 02Strežniško usmerjena pridobitev podatkov
Strežniške komponente poskrbijo za prvi prikaz; TanStack Query nato prevzame na odjemalcu za sezname, filtre in optimistične mutacije.
- 03Obramba v globino
Supabase RLS in preverjanje vlog v strežniških akcijah uveljavljata pravice dvakrat — odjemalec nikoli ne dobi avtorizacijskega zaupanja.
- 04Samo-pripenjajoči revizijski dnevnik
Vsaka mutacija se zapiše v PostgreSQL audit_logs s tipiziranimi ključi akcij, akterjem, entiteto in metapodatki.
03Izzivi & odločitve
Ključni arhitekturni izzivi, kompromisi in odločitve, sprejete pri gradnji projekta Ops Tracker.
Strežniške komponente prinesejo hiter, SEO-prijazen prvi prikaz, a seznami, filtri in urejanje na mestu potrebujejo pravo interaktivnost.
Hibridni model: strežniške komponente vnaprej naložijo podatke in jih dehidrirajo v HydrationBoundary, nato TanStack Query prevzame na odjemalcu za filtriranje, sortiranje in optimistične posodobitve.
Dve podatkovni plasti zvišata miselni preskok — vsaka funkcija mora premisliti, kje živijo njeni podatki — a prvi prikaz ostane hiter in vmesnik nikoli ni statičen.
B2B SaaS potrebuje popolno sledljivost: kdo je kaj naredil, kdaj in nad katero entiteto — brez sklapljanja te evidence s funkcijsko kodo.
Samo-pripenjajoča PostgreSQL audit_logs tabela se piše iz ene same, tipizirane revizijske storitve. Ključi akcij so literalna unija, zato mora vsaka mutacija svoj namen napovedati na ravni tipov.
Pomnoževanje pisanj in rast pomnilnika sta resnična, a revizijski dnevnik je vir resnice za skladnost, razhroščevanje in časovnice aktivnosti v aplikaciji.
Plosko src/components + src/hooks ogrodje se zruši pod lastno težo, ko ima projekt več domen.
Koda je organizirana po funkcijah (src/features/<domena>/), s komponentami, hooks, strežniškimi akcijami, storitvami in shemami zraven domene, ki ji pripadajo.
Ponovna uporaba med funkcijami zahteva premišljeno povišanje v shared/, a lastništvo je očitno in refaktor ene domene redko poseže izven svoje mape.
04Tech Stack
05Ključne funkcije
- Kanban tabla z vlečenjem in spuščanjem
Projektna Kanban tabla z @dnd-kit s stolpci, ki jih poganjajo nastavljivi statusi delovnega toka.
- Nadzor dostopa na osnovi vlog
Tristopenjski RBAC — Uporabnik, Admin, Super Admin — uveljavljen na ravni baze prek Supabase RLS.
- Virtualizirana tabela težav
Veliki seznami težav z TanStack Table v8 in @tanstack/react-virtual za gladko delovanje pri velikih podatkovnih nizih.
- Popolni revizijski dnevnik
Vsaka sprememba je zabeležena v PostgreSQL audit_logs z barvno kodiranimi znački in smiselnimi povzetki.
- Internacionalizacija
Celotna i18n prek next-intl za angleščino, nemščino in slovenščino, vključno z vsemi sporočili o napakah.
- Administratorska nadzorna plošča
Namensko področje /admin za upravljanje vlog, CRUD statusov težav, globalni revizijski dnevnik in nastavitve super-admina.