Skip to content

Alhuda ERP Docs

The internal knowledge base for the Alhuda Travel ERP — for ops staff and the people who build the system. Not for customers or partners.

What this app is

Alhuda Travel ERP runs the day-to-day business of a Hajj and Umrah tour operator in India: leads and quotations, bookings and passengers, travel groups, airline block and hotel inventory, visas and tickets, partner and customer portals, duty of care, and the finance function — receipts, refunds, vouchers, invoices, GST and TDS, supplier ledgers and reports.

React + TypeScript + Vite in the browser; Supabase (Postgres, Auth, Storage, Edge Functions) behind it. There is no application server, so the database is the security boundary — see Architecture overview.

How these docs are organised

Four layers. Each answers a different question, and the first one wins when they disagree.

Read this To answer
Rules How does the business work? Lifecycle, pricing, inventory, finance, access, audit. The single source of truth.
Operations How do we ship, run and recover it?
Architecture, Features, API How does the software behave today?
Audits and History What was wrong, what did we decide, what did we used to think?

Across all four sits PERMISSIONS.md — the canonical roles, permissions and page-by-page gates, kept honest by a drift test.

If a feature page disagrees with a rule, the rule is right

Feature and API pages describe the software. Rule files describe the business the software has to implement. A rule that the code does not match is a bug in the code; a feature page that does not match a rule is a bug in the page.

Start here

New to the codebase?

Read Architecture overview, then Access control (ACC), then the rule file for whatever you are about to touch. Do not start with a feature page.

Contributing to these docs

See docs/README.md in the repository for the layer model, the authoring conventions and the local preview.

python3 -m venv .venv-docs
.venv-docs/bin/pip install -r docs/requirements.txt
.venv-docs/bin/mkdocs serve

Then open http://127.0.0.1:8000.