User guide Open Admin

Running Kova Design

You are the only person who signs in. The same account manages stock and approves requests โ€” there is no separate approver role.

Signing in

Open /admin.html and sign in with your email and password. Regular users never sign in; they only type their name on the request form.

๐Ÿ”‘
If a yellow banner appears at the top of every screen, the initial password is still in use. Change it in Settings before the system goes into real use.

If the password change fails, the message says so explicitly โ€” the old password stays in use until you see the green confirmation. An expired session is the usual cause; sign out, sign in again, and retry.

Dashboard

Five counters across the top: products, inventory items, pending requests, low stock, out of stock.

Needs attention lists every item at or below its minimum level, lowest first.

Product availability shows how many units of each product can be issued right now, and names the item holding it back. That limiting item is the one to restock.

โšก
Every screen updates live. If you have the dashboard open on one device and approve something on another, the numbers change on both without a refresh.

Reviewing requests

The Requests page shows pending requests by default; the sidebar carries a count badge. Click Review to open one.

The review screen lists each item the request needs, how many are required, how many you have, and whether that item is sufficient.

ButtonWhat happens
Approve Deducts every item at once, writes one audit row per item, and marks the request approved.
Reject Only changes the status. Nothing is deducted. A reason is required.
โ›”
Approve turns itself off when any item is short. This is not just a screen rule โ€” the database refuses the approval too, so it cannot be forced through by any means. Restock the short item first, then approve.

The numbers on the review screen come from the database, not from the browser. They are the same numbers the approval itself uses, so what you see is what will happen.

Inventory

Items are the physical things in the store. They are the only things that carry a stock number.

Adding an item

Give it a code, a name, a minimum level, and optionally an image. If you enter an opening stock, it is recorded as a Stock In transaction rather than written straight into the stock column โ€” so the audit trail is complete from the very first unit.

Stock In and Stock Out

Use ๐Ÿ“ฅ In when stock arrives and ๐Ÿ“ค Out when something leaves outside a request โ€” damaged, lost, or issued by hand. A reason is compulsory; you can pick a common one and add a note.

๐Ÿ“ค
Stock Out cannot take more than you have. The database rejects it outright rather than letting the balance go negative.

Minimum level

The minimum level is what turns an item yellow and raises an alert. Set it to the point where you would want to start reordering, not to zero.

Products & recipes

A product is a recipe, not a stock item. It lists which items it uses and how many of each. Products never carry a stock number of their own.

When you edit a recipe, you replace the whole list โ€” add rows, change quantities, remove rows, then save.

๐Ÿงฎ
Availability is calculated, never typed. The system divides each item's stock by the quantity the recipe uses, and takes the smallest result. A package needing 2 pens with 5 pens in stock can be issued twice.

This is why one empty item makes a whole package unavailable, even when everything else is full.

Stock alerts

A banner appears at the top of every admin screen when items need attention. Alerts are raised by the database itself the moment stock crosses a threshold:

EventResult
Stock falls to or below the minimum levelLow stock alert raised
Stock reaches zeroOut of stock alert raised
Stock restored above the minimumAlert closes by itself
You press Mark handledAlert closes and stops showing

Unlike the coloured badges, an alert stays until it is closed โ€” so a drop that happened overnight is still waiting for you in the morning. Each item can only hold one open alert per level, so an item hovering around its minimum will not flood the list.

Audit trail

Every stock movement is recorded: time, item, direction, quantity, resulting balance, reason, and who did it. Approvals write one row per item automatically.

๐Ÿงพ
Rows can never be edited or deleted. If something was recorded wrongly, add a correcting movement with a reason explaining it. The mistake and the correction both stay visible, which is what makes the history trustworthy.

Because one person both manages stock and approves requests here, this record is the only independent account of what happened. It is worth keeping the reasons meaningful.

Deleting things

Both products and items have a delete button, and both check first whether deleting would destroy history. When it would, you are offered Deactivate instead โ€” the thing disappears from the catalogue and from new recipes, while past records stay readable.

Products

SituationWhat you can do
Never requestedDeleted for real, along with its recipe and image. Items and their stock are untouched.
Has any request, everCannot be deleted. Deactivate instead.

Items

Items are stricter โ€” three different things can hold them:

  • used by a product recipe
  • has stock movements in the audit trail
  • appears in the snapshot of an approved request

The app tells you which one is blocking, and names the products using the item. In practice almost every item that was ever given opening stock falls into the Deactivate path, because that opening stock is itself an audit row.

๐Ÿ“ฆ
Deactivating an item does not remove its stock from the books. If the stock has really left the store, record a Stock Out first.

Settings

Change your password here โ€” at least 8 characters, entered twice. The system information panel shows the counts held in the database and whether the initial password has been replaced.

๐Ÿ”
The key in the page source is the public key, and it is meant to be visible. What protects your data is the server-side policy: with that key alone, nobody can list requests, read the audit trail, or change a single stock number.

Rules worth knowing

Requests do not reserve stock

Stock only moves on approval. If two requests need the last unit, the first one approved gets it and the second can no longer be approved. Approve in the order you want people served.

Approval uses the recipe as it is right now

If you change a product's recipe while a request for it is still pending, the approval follows the new recipe. The audit trail records what was actually issued, so nothing is hidden โ€” but the person may receive something different from what they asked for. Decide the recipe before approving.

Deleting a request does not put stock back

Stock that has already been issued stays issued. If items come back, record a Stock In with a reason such as "User return".

All or nothing

An approval either deducts every item or none of them. There is no partial approval, so stock can never be left half-consumed by a failed operation.