Getting started
Everything you need before opening any specific module: how to sign in, how to read any console screen, and how your role decides what you can see and do.
Signing in
The HO console lives at the /staff path of the portal (for example https://portal.airindia-reporter.example/staff — your administrator will give you the exact address). It is a private, staff-only web application, separate from anything customers or field executives use.
- Open the console address
Browse to /staff. If you are not signed in you are taken to the login screen automatically.
- Enter your e-mail address and password
Sign-in is by e-mail only. The address you type must be one that has been recorded against your user account and verified. A phone number will not work here, even though the field app accepts one.
- Select Sign in
On success you land on the Dashboard. On failure you see a single neutral message — "These credentials do not match our records." — that deliberately does not reveal whether the e-mail or the password was wrong.
/staff login screen — e-mail field, password field, "Remember me" toggle and the Sign in button.The login form limits you to 5 attempts in quick succession. Exceed that and it pauses further attempts for a short cool-down and shows a "too many attempts" message. Wait a moment and try again, or ask an administrator to reset your password if you have forgotten it.
This HO console uses a classic session login (the form above). The field app and public API use a different, token-based sign-in that accepts e-mail or phone. If a colleague can log into the field app but not this console, the likely cause is that their e-mail contact is missing or unverified, or their role does not permit console access.
The anatomy of a screen
Every page in the console shares the same layout. Learn it once and every module feels familiar.
① The top bar
Always visible. It carries the AIR brand (select it to return to the Dashboard), a global search, and your user menu in the top-right corner — open it to see your name and to Sign out.
② The navigation
Down the left, links are organised into the same groups this guide uses — Access Control, Administration, Billing, Customers, Despatch, Geography, Inventory, Sales, Warehouses. You only see the groups and links your permissions allow. If a whole group is missing, your role simply does not include anything in it — that is normal, not a fault.
③ The main content area
Most pages open on a list (a table of records). Lists share a common toolkit:
| Control | What it does |
|---|---|
| Search | Free-text search across the columns marked searchable on that list (for example a voucher number or a customer name). |
| Filters | Opens a panel of drop-downs — most often a State filter — to narrow the list. Filters combine with search. |
| Columns / sort | Some columns can be sorted by selecting their header; some columns are hidden by default and can be switched on from the column toggle. |
| Row actions | Buttons at the right end of each row (Approve, Cancel, Seal…). Which ones appear depends on the record's current state and your permissions — see below. |
Doing something: actions, forms & confirmations
Work in the console happens through actions — the buttons on a row. They behave consistently:
- Select the action on the record's row
For example Approve on a payment voucher, or Print labels on a picking wave.
- Complete the form, if one opens
Some actions ask for details first — a cancellation reason, a cheque number, a resolution choice. Required fields are marked; the action will not proceed until they are filled.
- Confirm
Most actions show a confirmation dialog ("Are you sure?"). This is your last chance to step back. Select the confirming button to proceed.
- Read the result notification
A green notification (top-right) confirms success. A red one explains why the action was refused — for example the record moved to a state where that action no longer applies.
Actions are tied to a record's state. Once you Approve a voucher it becomes Approved, and the Approve button vanishes because there is nothing left to approve. This is by design — the console only ever offers the steps that are valid right now. Each module page shows the state diagram so you always know what comes next.
Roles & permissions — what you can see and do
Access is entirely role-based. You are granted one or more roles; each role carries a set of permissions; and your effective access is the combined total of all permissions from your active roles. There are no permissions granted directly to a person — always through a role.
- Super administrators (a role literally named
super_admin) bypass every check and see everything. Most of the setup modules — Users, Roles, Geography, Warehouses, Carriers, Customer Categories — are currently super-admin only. - Everyone else sees a page only if they hold the permission that gates it. Throughout this guide, each action lists the exact permission it needs, shown like this: payment.approve.
- Roles can expire. An administrator may grant you a role with an expiry date; once it lapses, its permissions drop out of your total automatically.
Signing in only requires that your account is allowed into the console at all. Whether you then see a given module depends on your permissions. If a link is missing, ask an administrator to add the relevant permission to one of your roles — the Roles & Permissions page explains how they do it, and the Reference lists every permission.
Safety net: you cannot break the sequence
Behind every button, the system re-checks the rules before making a change. Even if a record's state changed in another browser tab a moment ago, an out-of-turn action is refused cleanly with an explanatory message rather than corrupting data. You can explore confidently: the console will stop you from doing something that is no longer valid.
Switching light / dark theme
This guide (and the console) respect your device's light or dark preference. Use the sun/moon button in the top bar of this guide to override it; your choice is saved on this device.
Loading demo data
For a client demo or a local walkthrough, a single command loads a realistic sample dataset on top of a fresh database — customers, products, a full sale-order pipeline, payments (including bounced-cheque recoveries) and a few charges, enough for the Dashboard, the four reports, and every major list to show meaningful data. It also wires the despatch source/customer locations, so Release for despatch works out of the box.
php artisan migrate:fresh --seed --seeder="Database\Seeders\DemoSeeder"
Sign in with admin@airportal.test / password at /staff once it finishes.
migrate:fresh drops every table before re-creating it. Only run this against a scratch or demo database — never against a database with real data you need to keep.