← Back

Moya Dashboard

Multi-user legal case management system for an Argentine law firm, in daily use by lawyers and administrative staff. It replaced a manual process run on spreadsheets and email. I am the sole developer: I designed it, and I develop, test, and maintain it.

Role
Sole developer (design, development, testing, support)
Status
Private, available on request
Stack
React + Vite, TypeScript, Tailwind, shadcn/ui, Supabase (PostgreSQL + Auth + Edge Functions), TipTap, jsPDF

Screenshots

Click any image to view fullscreen.

Technical highlights

  • Permissions enforced in the database

    Control over which cases each user can see is implemented with row-level policies in PostgreSQL, rather than validated screen by screen. If the application code misses a check, access is denied by default.

  • Rules-based routing instead of a model

    Incoming email from courts and clients is assigned to cases with explicit rules, because the firm has to be able to justify why a given message was assigned to a given case.

  • Reproducible calculations

    Settlements and interest updates work with decimal precision and rates tied to their effective date, so the same calculation over the same data always returns the same result.

  • Testing before each release

    I verify the critical flows in an environment separate from production, with boundary data and error cases, and keep automated tests over the calculations and the routing rules.

  • User support and releases

    I reproduce the reported incident and isolate it with SQL queries, log reading, and the browser network panel. I determine whether it is a configuration or permissions problem or a system error, resolve or escalate it, and confirm the outcome with the user. Releases are incremental and ship with release notes and usage instructions.

  • Email handled inside the system

    Each firm works from a shared inbox, with per-user OAuth tokens kept separate so every lawyer sends from their own identity and no message has to be copied into a case by hand.

  • Documents generated without a separate service

    Legal documents are produced in the browser from the firm's own templates, so there is no document service to operate and no server round-trip.

Access

The repository and a live walkthrough are available on request at contact@franquiroga.dev.