JarvisFirm SaaS

DEPLOYED Laravel 8.83.29 · PHP 8.3.31 · MariaDB Test environment at https://pbjarvisfirm.vitrano.in

Try it now

Open Admin Console → API health

The Admin Console has a full sidebar with 18 modules — Matters, Clients, Tasks, Deadlines, Documents, Invoices, Time entries, Trust accounts, Marketplace, SaaS plans, Legal modules, AI tools, Webhooks, Form builder, Users, Portal users, Tenant settings, plus a Dashboard.

Firm-side users · POST /api/login

RoleEmailPasswordNotes
owner/adminadmin@demo.compassword123Full access — user_type=owner, role=admin
attorneyattorney1@demo.compassword123Alexandra Chen — Senior Partner (CA-284917)
attorneyattorney2@demo.compassword123Marcus Ramirez — Associate (NY-729388)
paralegalparalegal@demo.compassword123Priya Patel
staffstaff@demo.compassword123Diana Reyes — Office Manager

Client-portal users · POST /api/portal/login

ClientEmailPasswordMatter
Robert Sinclairclient1@demo.compassword123Sinclair Family Trust — Amendment #3
Elena Morozovaclient2@demo.compassword123Morozova v. Delivery Fleet Inc.

Sample data seeded

TenantDemo Law Firm
Migrations run72 0 pending
Firm users5 (1 owner + 2 attorneys + 1 paralegal + 1 staff)
Portal users2
Clients3 (2 individuals + 1 LLC)
Matters4 (3 open + 1 closed) across 4 practice areas
Tasks8 (mix of high/med/low priority)
Deadlines5 (4 pending + 1 missed)
Time entries18
Invoices4 (paid, sent, overdue, draft) + 6 line items
Documents4

API sanity endpoints

GET /api/health
GET /api/plans — 5 SaaS plans
GET /api/modules — 41 legal modules
GET /api/marketplace/listings — 22 listings
Authenticated (bearer token):
/api/pbjarvis/summary
/api/pbjarvis/matters · /clients
/api/pbjarvis/tasks · /deadlines
/api/pbjarvis/invoices · /time-entries
/api/pbjarvis/documents · /users

Log in via API (curl)

curl -X POST https://pbjarvisfirm.vitrano.in/api/login \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -d '{"email":"attorney1@demo.com","password":"password123"}'

Response includes access_token (Sanctum). Pass it as Authorization: Bearer <token> on subsequent requests.