End-to-end walkthrough of JurisYantra: schema design, RBAC, time clocks, billing hierarchies, and structured logging.
Matters, proceedings, parties, hearings, work_logs, and billing_entries β with team_id isolation on every table, soft deletes everywhere, and audit trails builtβ¦
Five roles (super_admin, admin, lawyer, staff, client), team isolation at the repository layer, feature gating via a capability matrix, and the 404-not-403 ruleβ¦
Start/stop timer with server-side drift correction, work log approval workflow (draft β pending_review β approved β applied), and the deduplication check that pβ¦
5-level rate resolution: proceeding+lawyer β proceeding β matter+lawyer β matter β user default. First-non-null cascade with date-range effective configs.
Billing entry β invoice pipeline with discount types (percentage, fixed, write-off), retainer deduction logic, and PDF generation.
JSONL structured logging with correlation IDs, the production allowlist that keeps PII out of app logs, rolling rotation, and the separation between audit logs β¦
Unified workspace for legal teams: all item types in one view, assignment workflow with team validation, cron-driven reminder dispatch, and voice note linkage fβ¦