One matter, several views
I structured the product around a shared legal matter, then adapted its information and actions to each role and permission level.
Belgian legal work involves consultations, proceedings, hearings, written opinions, submissions, decisions, documents, fees, payments and legal aid. These activities are closely connected, but they are not viewed or handled in the same way by everyone involved.
I used the legal matter as the central organising unit. Conversations, dates, documents, financial actions and professional work all connect back to it, while permissions determine what each person can see and do.
I structured the product around a shared legal matter, then adapted its information and actions to each role and permission level.
The intake starts with a life situation or a description in the client’s own words, rather than requiring legal terminology.
Statuses, deadlines and pending actions make long legal processes easier to scan without flattening their complexity.
Delegation is attached to a specific opinion, hearing or submission, preserving both confidentiality and traceability.
Vue 3, TypeScript, Pinia, PrimeVue, Vue I18n, FullCalendar and Socket.IO.
Node.js, Express, PostgreSQL, Drizzle and shared domain rules used by the frontend and backend.
Matter-level access control, runtime validation, MFA flows, file validation, antivirus scanning, monitoring and automated tests.
Structured states, scheduling rules, real-time updates and generated documents support matters as they progress over time.