NKO ERP — Technical Documentation¶
Welcome to the technical documentation for the Nasaem Khair Organization (NKO) ERP system — an internal enterprise resource planning platform covering Human Resources, Procurement, Grant, Payroll, Recruitment, Training, Logistics, and Administration.
This documentation is written for developers, DevOps engineers, and technical maintainers who need to understand, deploy, operate, and extend the system — including teams working on it without access to the original developers.
System at a glance¶
| Property | Value |
|---|---|
| Platform | ASP.NET Core MVC (.NET 6) |
| ORM / Database | Entity Framework Core 6 · Microsoft SQL Server |
| Databases | NKO_DB (core/HR) · NKO_DB_Warehouse (warehouse) |
| Architecture | Layered — MVC (web) → BAL (business) → DataAccess (EF) |
| Authentication | ASP.NET Core Identity (cookie), with a custom permission system — a JWT scheme is registered but nothing issues or accepts a token |
| Background jobs | Quartz (in-memory) · Hangfire · one hosted service |
| Storage | AWS S3 (SNS is registered but unused) |
| Email / real-time | MailKit (SMTP) · SignalR |
| Deployment | IIS on Windows Server — https:/ |
| Scale | 44 controllers · 947 actions · 44 business classes · 161 entities · 23 migrations (18 core + 5 warehouse) |
How this documentation is organized¶
The docs are grouped into sections that mirror the system and match the roles that consume them:
- Architecture — the big picture: layers, projects, request pipeline, security, and the external services the system depends on.
- Database — the data model: conventions, a high-level context ER diagram, and per-module ER diagrams with a full data dictionary for every entity.
- API — every controller and action, grouped by business module, with routes, parameters, authorization, and responses.
- Deployment — how to stand the system up on a server and configure it safely.
- Installation — prerequisites and the step-by-step first setup for a developer machine.
- User Flows — how key business processes move through the system, with diagrams and screenshots.
- Modules — a functional description of each business module.
- Source Code — the solution/project layout and the core classes, services, and conventions.
- Troubleshooting — symptoms you will actually meet, their verified causes, and what to check.
- Recommendations — the register of problems found in the ERP while writing these docs, with priorities. Advisory only; no application code was changed.
- Glossary — the abbreviations and key terms (PR, GRN, SOD, LOE, permission key, ungated …), each with a pointer to where it is explained.
Reading & building this documentation¶
The documentation is a MkDocs site using the Material for MkDocs theme. Diagrams are written in Mermaid and render natively in the browser.
To build and preview the site locally (from the repository root, where mkdocs.yml lives):
# One-time: create an isolated environment and install the pinned dependency.
# (A virtual environment avoids "externally-managed-environment" errors on modern Linux.)
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements-docs.txt # installs mkdocs-material (+ MkDocs, pymdown-extensions)
# Then:
mkdocs serve # live-reload preview at http://127.0.0.1:8000
mkdocs build # render the static site into ./site
Scope & conventions
- All content is derived from the source code. The database schema is documented from the EF Core code-first model and migrations.
- Secrets (connection strings, keys, passwords) are redacted throughout — this documentation describes the shape of configuration, never live credentials.
- Every section has been checked against the source. Where the code and an older description disagreed, the page follows the code.