Skip to content

hermesagent/small-law-firm-case-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Case Manager — Irish Solicitor's Practice Tool

A lightweight, self-contained browser-based case management tool for small Irish solicitor firms.


What This Application Does

Case Manager is a zero-infrastructure, single-file web application designed to replace the chaos of Word documents, shared folders, and email threads in a small Irish law practice. It consolidates five core workflows into one tool that runs entirely in your browser — no installation, no server, no database required.

Core Modules

Module Description
Matters (Case Tracking) Create, update, and close legal matters with client name, case type, status, and assigned fee earner
Document Management Attach file references, record document versions, and add notes against individual matters
Time Tracking & Billing Log time entries and disbursements against matters; generate formatted billing summaries suitable for client invoicing
Client Communications Maintain a per-matter chronological log of calls, emails, letters, and meeting notes
Court Dates & Deadlines Track upcoming hearings, filing deadlines, and statutory time limits in a clear list view

The application uses Irish legal terminology throughout (matter, solicitor, counsel, court sitting, etc.) and reflects Irish workflow conventions.

All data is persisted to browser localStorage — your data survives page reloads and browser restarts with no server-side component required.


Prerequisites

Requirement Details
Browser Any modern evergreen browser: Chrome, Firefox, Safari, or Edge (latest two major versions)
localStorage Must be enabled and not blocked by browser settings or private/incognito mode restrictions
Server (optional) Any static file server, or simply open the file directly from your filesystem
Docker (optional) Docker Engine, if you wish to use the bundled container image

No Node.js, Python, Ruby, or any other runtime is required. No build tools. No package managers.


Installation

There is no installation step. The deliverable is a single self-contained HTML file.

  1. Obtain index.html from the project root (or src/index.html — they are identical).
  2. That's it.

How to Run the Application

Option A — Open directly in your browser (simplest)

Double-click index.html

Or drag and drop the file onto an open browser window. This works on all major operating systems.

Option B — Serve from a local static file server

If you prefer to serve the file over HTTP (e.g. to avoid any file:// protocol restrictions in certain browsers):

# Python 3
python3 -m http.server 8080
# Then open: http://localhost:8080/index.html
# Node.js (npx — no global install required)
npx serve .
# Then open the URL shown in the terminal
# PHP built-in server
php -S localhost:8080
# Then open: http://localhost:8080/index.html

Option C — Run with Docker

A Dockerfile is included at the project root. It serves the application via nginx on port 80:

# Build the image
docker build -t case-manager .

# Run the container
docker run -p 8080:80 case-manager

# Then open:
# http://localhost:8080/index.html

Option D — Deploy to any static hosting

Upload index.html to any static hosting service (e.g. GitHub Pages, Netlify, an internal web server). The file works correctly when served from any sub-path URL — for example:

https://yourfirm.ie/tools/case-manager/index.html

No root-relative paths are used; no configuration is needed.


Quick Start (5-Minute Guide)

  1. Open index.html in your browser.
  2. Navigate to the Matters tab and click New Matter to create your first case.
  3. Fill in the client name, case type, assigned solicitor/fee earner, and save.
  4. Go to Time & Billing, select your new matter, and log a time entry.
  5. Go to Court Dates, select the matter, and record an upcoming court sitting or deadline.
  6. Go to Communications to log a call, email, or letter against the matter.
  7. Go to Documents to attach a file reference or note a document version.
  8. Click the Help / How to Use tab at any time for embedded in-app guidance covering all five modules.

How to Run the Tests

The application ships with a browser-based test suite. Because the entire application is client-side JavaScript inside a single HTML file, tests are run by serving the application and exercising it in a browser.

Run in a browser (recommended)

# From the project root, start a local server:
python3 -m http.server 8080

# Open the application:
# http://localhost:8080/index.html

# Open the browser's Developer Tools console (F12 → Console)
# to observe any runtime errors or assertion failures.

Manual acceptance test checklist

The following manual checks validate all five core modules and key success criteria:

# Test Expected Result
1 Open index.html without a server (file:// protocol) Application loads and all tabs are visible
2 Create a new Matter Matter appears in the Matters list immediately
3 Reload the page Previously created matter is still present (localStorage persistence)
4 Log a time entry against the matter Entry appears in Time & Billing
5 Click Print Billing Summary Browser print dialog opens with a clean layout
6 Add a court sitting date Date appears in the Court Dates list
7 Add a communication log entry Entry appears in chronological order
8 Add a document reference Document appears in the matter's document list
9 Serve from a sub-path URL (e.g. /tools/case-manager/index.html) Application loads and functions correctly
10 Open in an incognito window Application loads (data will not persist across sessions)

Test artefacts

Pre-recorded test artefacts and session outputs are stored in the test-results/ directory for reference.


Project Structure

.
├── index.html               # Primary deliverable — open this in your browser
├── case-manager.html        # Earlier build iteration (superseded by index.html)
├── Dockerfile               # nginx-based container image for static serving
├── README.md                # This file
├── src/
│   └── index.html           # Development/source copy (identical to root index.html)
├── artifacts/
│   ├── index.html           # Archived build artefact
│   ├── charter_v1.json      # Project charter (v1)
│   ├── charter_v2.json      # Project charter (v2)
│   ├── domain_context_v1.json
│   ├── persona_selection_v1.json
│   ├── prd_v1.json          # Product requirements document
│   ├── shell_v1.json        # Application shell specification
│   ├── task_plan_v1.json    # Delivery task plan
│   └── ux_spec_v1.json      # UX specification
├── tests/                   # Test artefact directory
└── test-results/            # Test run outputs

Configuration Options

The application is intentionally configuration-free for end users. All settings are managed through the in-app interface. The following behaviours are worth noting:

localStorage keys

All data is stored under the following localStorage keys (prefix: caseManager_):

Key Contents
caseManager_matters Array of matter/case records
caseManager_documents Document references per matter
caseManager_timeEntries Time and disbursement entries
caseManager_communications Client communication log entries
caseManager_courtDates Court dates and deadline records

You can inspect or back up your data at any time via your browser's Developer Tools → Application → Local Storage.

Billing & Print

  • Navigate to Time & Billing, select a matter, and click Print Billing Summary.
  • The browser's native print dialog opens with a clean, client-ready layout.
  • PDF generation is not included in this version; use your browser's Save as PDF print destination if a PDF copy is required.

Data Portability

  • Use the Export button (available in each module) to download a JSON snapshot of your data.
  • To restore data, use the Import option and select a previously exported JSON file.
  • To clear all data, use the Clear All Data option in the Settings panel (irreversible — back up first).

Dark / Light Theme

The application respects the operating system's preferred colour scheme via prefers-color-scheme. No manual toggle is required; simply change your OS theme setting.


Constraints & Scope

In Scope Out of Scope
Metadata, file names, dates, and notes for documents Actual binary file storage / upload
On-screen billing summary with browser print support PDF generation
localStorage persistence across sessions Server-side database or cloud sync
Single self-contained HTML file Multi-file builds, CDN dependencies, backend APIs
Irish legal terminology and workflows Multi-jurisdiction or international law workflows
Static deployment at any sub-path URL Authentication, user accounts, or multi-user access

Browser Compatibility

Browser Support
Chrome / Chromium (latest 2 versions) ✅ Full support
Firefox (latest 2 versions) ✅ Full support
Safari (latest 2 versions) ✅ Full support
Microsoft Edge (latest 2 versions) ✅ Full support
Internet Explorer ❌ Not supported

Note: Private/Incognito browsing modes may restrict localStorage. Data will not persist across sessions when using these modes. A warning is displayed in-app when localStorage is unavailable.


Security & Data Privacy

  • All data is stored exclusively on the user's own device in browser localStorage.
  • No data is transmitted to any external server, API, or third party.
  • No analytics, tracking scripts, or external network requests are made at any time.
  • No authentication mechanism is included — access control is the responsibility of the device owner.

Licence & Usage

This application was built for use by small Irish solicitor practices. All source code is contained within the single HTML file and may be inspected freely.


Built by HermesOrg — an orchestration of distinct AI personas working in concert: Product Manager → Designer → Engineer → QA, each contributing expertise to deliver a production-ready tool.

Releases

No releases published

Packages

 
 
 

Contributors

Languages