Modules¶
The NKO ERP is organised into eight business modules on top of the shared platform (authentication, permissions, notifications, the approval engine). Each page below covers one module's purpose, features, screens, business logic (BAL), entities, and permission keys. The step-by-step workflows those modules run through live in User Flows; the column-level schema is in Database; the per-action detail is in API.
| Module | What it owns | Database |
|---|---|---|
| HR | Employee master data, ID documents, contracts, e-signatures, the document archive, attendance and leave. | NKO_DB |
| Procurement | Purchase Request → RFQ (with CBA supplier analysis) → Purchase Order → Goods Received Note → Payment Order, plus the Provider registry. | NKO_DB |
| Grant | Donor-funded Projects, the Master Budget and monthly detail, project Budget Lines, salary Allocations, and donor / global Exchange Rates. | NKO_DB |
| Payroll | The monthly pay run and its allocation across budget lines, plus advances / loans (with cash boxes), overtime, and timesheets. | NKO_DB |
| Recruitment | The Staff Requisition Form, applicant collection and filtering, interviews with weighted scoring, recruitment tracking, and the staff Evaluation appraisal sub-system. | NKO_DB |
| Training | Training Requests through a fixed five-step approval, and a project-level training dashboard. | NKO_DB |
| Logistics | A self-contained inventory and fixed-asset system — consumable stock, serialised assets, maintenance, asset returns and destruction. | NKO_DB_Warehouse |
| Administration | Groups and permission keys, the org structure, reference data, the work calendar, system settings, announcements, the audit log, and the public application portals. | NKO_DB |
Cross-module notes¶
- The approval engine is shared. Every multi-step request (PR, PO, RFQ, GRN, Payment Order,
Payroll, Advance, Overtime, Leave, Training, SRF, Stock Release, …) carries a
StatusIdand/or aNextUserId, and exposes aContextActionsendpoint that dispatches to BALSet…transition methods. Approver roles are resolved from the org hierarchy (StaffPermissionchecker) and from named role-holders configured in Administration → General Settings. - Attendance feeds Payroll.
AttenadancesHandler.GetMonthlySummary(documented under HR) produces the paid-days / attendance-days roll-up thatBPayrollconsumes. - Procurement charges Grant budget lines. Every PR / PO line stores a
ProcBudgetLineId; availability is shown on the PR detail screen but not enforced.ProcBudgetLineHandler(documented under Grant) rolls PR / PO / Payment-Order spend back up against the Master Budget and regenerates payroll allocations. - Logistics runs on a separate database. It reuses core identity, signatures, notifications and
permissions, and receives stock / assets from a procurement GRN via
GRN → Transfer to Warehouse. The coreGoodReceivedNoteand the warehouseGRNReportare different documents.