Client Portal Specification

v1
Mar 9, 2026 · 3.1 KB · 2 min read · by Deepak Iyer

Client Portal Specification v1

Client Portal Specification

Overview

TomlTech has been asked to build a "simple client portal" for a law firm. The law firm's definition of "simple" and our definition of "simple" have not been reconciled.

Requirements (as stated by client)

  1. Clients log in and see their cases
  2. Lawyers upload documents to cases
  3. Clients download documents
  4. "Make it look modern"
  5. "Like the Apple website but for law"
  6. It should work on phones
  7. "Can we add AI?"

Requirements (as interpreted by engineering)

  1. Authentication system with role-based access (client, lawyer, admin, paralegal, "of counsel" which is apparently a thing)
  2. Document management with upload, download, versioning, and access control per case
  3. Case management with status tracking, assignment, and notes
  4. Responsive design
  5. Clean UI that does not resemble the Apple website because that is a product showcase and this is a document portal
  6. Mobile-responsive (already covered by #4 but the client listed it separately so we're listing it separately)
  7. No

Technical Stack

  • Rails 7.1 (we learn from our mistakes, see Rails 3 upgrade)
  • PostgreSQL 16
  • Hotwire (Turbo + Stimulus)
  • Tailwind CSS
  • Active Storage for documents
  • Devise for authentication
  • No AI

System Architecture

flowchart TD
    subgraph Roles
        A[Admin]
        L[Lawyer]
        P[Paralegal]
        OC[Of Counsel]
        C[Client]
    end

    subgraph Actions
        Upload[Upload Document]
        View[View Case]
        Download[Download Document]
        Fax[Send via eFax]
        Manage[Manage Users & Cases]
    end

    A --> Manage
    A --> Upload
    L --> Upload
    L --> View
    P --> Upload
    P --> View
    OC --> View
    C --> View
    C --> Download
    Upload --> Fax

Open Questions

  • The client has asked for "track changes like Word." We have explained that this is a web application, not Microsoft Word. The client has asked again. We have explained again. This cycle has repeated 4 times.
  • The client wants to send documents via the portal AND email AND fax. We have confirmed that they said fax. They confirmed. It is 2026 and they want fax.
  • One of the partners has asked if the portal can "integrate with our existing system." Their existing system is a shared folder on a Windows XP machine in the basement. The Windows XP machine is named YOURPC.

Timeline

PhaseDurationNotes
Design2 weeksClient has requested 3 rounds of revisions. We have budgeted for 7.
Core build4 weeksAuthentication, case management, document upload
Client feedback2 weeksThis is where the fax discussion will resurface
Revisions2 weeksBased on historical data, this will actually be 4 weeks
Launch1 weekPlus 1 week of "just one more thing"

Budget

Client has asked for a fixed price quote. We have provided a range. Client has asked for the low end of the range as a fixed price. We have said no. Client has asked for a discount. We have said no. Client has asked if Gary is available. Gary is not available. Gary is never available.