Welcome to Merconiq. This guide is for the people who will actually use the application day-to-day to track items, stock levels, suppliers, locations, and purchase orders. It is written in plain language and assumes no technical background.
If you are a developer looking for installation, API, or architecture information, please see the README on GitHub instead.
The Merconiq is a web application that helps you keep an accurate, real-time picture of:
The app runs in any modern browser on a desktop, tablet, or phone, and uses a clean Material-style interface.
http://localhost:8080 or your company’s domain).Administrator provisioning: An operator must provision the first administrator with the explicit production bootstrap command. No default credentials are committed.
If you forget your password, contact your administrator — they can reset it for you.
After logging in, you land on the Dashboard. It gives you a quick snapshot of the business:
| Card | What it shows |
|---|---|
| Total Items | The number of distinct items in your catalog. |
| Purchase Orders | The total number of POs that have been created. |
| Units in Stock | The total quantity of all items, summed across every location. |
The dashboard also has two shortcut panels:
The left-hand (or top, on mobile) menu is your main way to move around the app:
On small screens the menu collapses into a hamburger button in the top-left corner.
Suppliers are the vendors you purchase items from. Each item can be linked to one supplier so that you always know who to reorder from.
Open Suppliers, then use the Edit or Delete button next to the row you want to change. Deleting a supplier is permanent and may be blocked if items are still linked to it.
Use the Search box at the top-right of the table to filter by name, contact person, or email.
Locations are the physical places where you store stock. Examples: Main Warehouse, Store #1 — Downtown, Van A, Returns Cage.
You can also Edit or Delete any existing location from the list. You will not be able to delete a location that still has stock or appears in any transaction history.
An item is a distinct product (or material) you track in inventory. Each item has a code, a description, a rate (price), and an optional supplier.
WIDGET-001. Must be unique.Blue widget, 10mm.From the Items list, use the row buttons:
Click Export to CSV in the top-right of the items list to download a spreadsheet of all your items. This is useful for reporting, audits, or bulk editing in Excel.
Stock is the quantity of an item currently held at a particular location. Every change to stock — receiving from a supplier, moving between locations, or selling to a customer — is recorded as a stock transaction.
Use Receive Stock when new stock arrives from a supplier — typically as the result of a purchase order that has been delivered.
The quantity on hand for that item at that location will increase, and a Receive transaction will be added to the history.
Use Transfer Stock when you move existing stock from one location to another (e.g. restocking a store from the warehouse).
The transfer will be blocked if the source location does not have enough quantity. Check the View Stock screen first.
Use Sell Stock to record a sale or outbound issue. This reduces the quantity on hand at a location.
The system will block the sale if there is not enough stock at that location.
Every receive, transfer, and sale is recorded.
The transaction log is the audit trail for all stock movement in the system.
A purchase order (PO) is a document you create to buy items from a supplier. POs move through a simple lifecycle:
Pending → Approved → Received
↘
Cancelled
PO-2026-0042. Must be unique.The PO is saved with status Pending.
Approve or Cancel PO.Mark as Received.Pending; the former approved commercial version remains recorded and cannot be restored by changing only the status.This slice preserves existing PO line identities and does not support adding or removing lines. Company assignment is not yet available in the current PO workflow; the approval snapshot records a null company until ownership mapping is delivered. Receiving and stock posting remain separate workflows.
Important: Marking a PO as
Receiveddoes not automatically add stock to a location. You still need to go to Stock → Receive Stock to record the actual quantities received. This is by design, so partial deliveries are supported.
The system includes an optional AI module (powered by ML.NET) that runs entirely on the server — no data is sent to the cloud. It exposes two features:
Demand forecasting uses the explicitly configured managed-moving-average implementation
in the production multi-architecture Docker image. It is deterministic and has no native
runtime dependency. ML.NET SSA is available only as an explicit deployment choice with
Forecasting__Implementation=ssa; if its native dependencies are missing, the request
fails and is logged instead of silently changing models. See
docs/FORECASTING.md for deployment details.
These are exposed as a headless API (and the system pre-trains its models in the background every few hours). If your administrator has enabled them, you can ask for forecasts and anomaly reports via the API. Swagger documentation is available at /swagger in the development environment.
The web UI surfaces high-level metrics on the dashboard; the detailed per-item forecasts and anomalies are currently consumed via the API and built-in reports. Speak to your administrator about integration into other dashboards.
The application can generate professional PDF reports and CSV exports of your data:
/api/v1/...; contact your administrator for the exact endpoints and authentication.CSV files open directly in Excel, Google Sheets, or any spreadsheet program.
The system uses role-based access control (RBAC) with three built-in roles. Your administrator decides which role you have.
| Role | Can do |
|---|---|
| Admin | Everything: manage users, suppliers, locations, items, stock, and POs. |
| Manager | Approve/cancel POs, receive/transfer/sell stock, manage items, suppliers, locations. |
| Staff | Day-to-day operations: view stock, receive/transfer/sell stock, create POs, view reports. |
All areas of the app currently require authentication. If you try to access a feature you don’t have permission for, you’ll be redirected to a friendly Access Denied page. Speak to your admin if you believe you should have access.
Q: I received stock but the dashboard still shows the old count. A: The dashboard counts all units across all locations. Use Stock → View Stock to verify, and check that the location you received into is the one you expect.
Q: I can’t delete an item/supplier/location. A: The system blocks deletion when there is still stock, transactions, or other records linked to the entity. Remove or reassign those first.
Q: The transfer failed because of insufficient stock. A: Go to Stock → View Stock and confirm the source location actually has the quantity you are trying to move. You may have already transferred or sold it.
Q: I marked a PO as received — why isn’t the stock updated? A: The PO lifecycle is intentionally separate from stock movements, to support partial deliveries. After marking a PO as received, go to Stock → Receive Stock and record the quantities that actually arrived.
Q: My forecast numbers look off. A: Forecasting needs at least a few weeks of clean transaction history. The background service retrains models periodically — give it time, and ensure every receive/transfer/sell is recorded with accurate quantities and dates.
| Message | What it means | What to do |
|---|---|---|
| “Please select an item / location” | You didn’t pick from the dropdown. | Pick a value in the dropdown. |
| “Insufficient stock at source location” | Trying to transfer or sell more than is available. | Check View Stock and adjust the quantity. |
| “Source and destination locations must be different” | You picked the same location twice in a transfer. | Pick two different locations. |
| “A purchase order must have at least one line item” | You tried to remove the last line. | At least one line item is required. |
| “Item Code must be unique” | The code you entered is already used by another item. | Use a different code. |
| “Account locked. Try again later.” | Too many failed login attempts. | Wait a few minutes or ask an admin to unlock your account. |
If something is broken, unexpected, or unclear:
| Term | Meaning |
|---|---|
| Item | A distinct product (e.g. WIDGET-001 — Blue widget, 10mm). |
| Stock on hand | The number of units of an item currently at a specific location. |
| Location | A physical place where stock is stored (warehouse, store, van, etc.). |
| Supplier | A company you purchase items from. |
| Purchase Order (PO) | A document ordering items from a supplier. |
| Receive | Adding new stock to a location (typically from a supplier). |
| Transfer | Moving stock from one location to another. |
| Sell | Removing stock from a location due to a sale or issue. |
| Transaction | A single record of a receive, transfer, or sell. |
| Forecast | A predicted future quantity needed for an item, based on history. |
| Anomaly | An unusual stock movement flagged by the system as worth reviewing. |
This guide covers the user-facing functionality of Merconiq. For installation, configuration, and developer documentation, see the README on GitHub.