Purpose-built for the Officers Mess

One system for the entire mess.

Ration, bar, guest rooms, parties and billing — every figure traced to a versioned rate, every change on the audit log, and every appointment scoped to its own duty.

Invitation-only · unit-scoped access

What you get
Every mess function
  • Ration & messingAvailable

    Versioned scales and self-reconciling monthly bills

  • Bar & cigarAvailable

    Per-officer consumption posted against verified rates

  • Guest roomsLive

    Room inventory, bookings and incidentals in one view

  • PartiesAvailable

    Plan dining-ins and apportion charges to attendees

  • BillingAvailable

    Draft, finalise and publish bills with a full audit trail

  • ReportsAvailable

    Unit and cross-unit reporting on the same source data

One foundation beneath every module — access control, audit, unit scoping.

Accountable by construction

Isolation, audit and access control are enforced in the database — not the interface.

  • Row-level security
  • Audit trail on every change
  • Capability-scoped RBAC
  • Multi-unit isolation
  • Versioned REST API

Capabilities

Every mess function, one source of truth.

Each module draws on the same access control, audit trail and unit scoping — no parallel spreadsheets, nothing left to reconcile by hand.

Ration & messing
The monthly mess bill reconciles itself against versioned scales — no manual tallying, no rate disputes at month-end.
Bar & cigar
Per-officer consumption posts straight to the bar bill at verified rates, so the bill is right the first time.
Guest rooms
Inventory, bookings and incidentals sit in one view, so occupancy and outstanding charges are clear at handover.
Parties
Plan dining-ins and formal nights, record who attended, and apportion the charges without a separate spreadsheet.
Fine-grained roles
Every appointment — Bar NCO, Mess Havildar, Quartermaster — sees only its own duty, so handovers are clean and mistakes stay contained.
One backend, any client
A versioned REST API exposes the same data and rules to the web app today and a mobile client tomorrow — nothing is re-implemented.

How access works

Controlled access, by design.

  1. 01

    An admin invites you

    Access is invitation-only. Your unit admin creates the account and assigns your home unit.

  2. 02

    Capabilities scoped to your unit

    You receive a capability template — Bar NCO, Mess Havildar, Quartermaster — bound to that unit only.

  3. 03

    Operate your module

    Sign in and work the screens your duty unlocks. Every change is audit-logged automatically.

Governance

Trust you can audit.

Four guarantees that hold whether a bill is raised today or reviewed years from now.

Versioned masters
Rates and master items are SCD-2 versioned — historical bills always reflect the rate that applied then.
Audit trail
Every change to masters, profiles, units and capabilities is written to an immutable audit log.
Row-level security
Postgres RLS enforces unit isolation at the database, not just the UI — defence in depth.
Versioned REST API
A stable /api/v1 surface with bearer auth and idempotency keys means a mobile client can be added without rebuilding the backend.

Roles

Built around your appointments.

Each member holds a capability template bound to their unit — they see and act on exactly what their appointment requires, and nothing beyond it.

Mess Secretary / PMC
Run the whole mess: invite members, manage units and master rates, finalise bills, and read every report for the unit.
Mess Havildar
Handle day-to-day operations in the unit — record attendance, issue rations, and keep messing accounts moving.
Bar NCO
Log alcohol and cigar consumption per officer and finalise the bar bill — and nothing outside the bar.
Quartermaster
Maintain ration scales and master items, then issue and adjust rations against the versioned rates.
Guest Room Clerk
Make and edit room bookings, record incidentals, and keep occupancy current for handover.
Party Coordinator
Plan dining-ins, farewells and formal nights, record attendance, and apportion the charges.

FAQ

Questions, answered plainly.

How access, units, data and the API actually work.

Is Officers Mess self-service or invitation-only?
It is invitation-only. There is no public sign-up. A unit admin creates each account and assigns the member's home unit before they can sign in.
Does it support multiple units?
Yes. It is multi-tenant by design. Each unit's data is isolated at the database level with Postgres row-level security, so members only ever see their own unit. Admins can operate across units.
Is there an API or a mobile app?
There is a stable, versioned REST API at /api/v1 with bearer authentication and idempotency keys. The web app and any future mobile client share the same backend, rules, and data.
How is access controlled?
Access is capability-scoped. Each appointment receives a capability template — for example Bar NCO, Mess Havildar, or Quartermaster — bound to a single unit. Members only see and act on the modules their duty requires.
Where is the data stored and is it audited?
Data is stored in a managed Postgres database (Supabase). Every change to master lists, profiles, units, and capabilities is written to an immutable audit log, so every figure on a bill is traceable.
How are rates and bills kept accurate over time?
Master items and rates are version-tracked (SCD-2). A bill always reflects the rate that applied at the time, so historical bills never change when a current rate is updated.

Bring the entire mess onto one system.

Invitation-only, unit-scoped, and audit-logged from the first sign-in.