Skip to content

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://erp.nasaemkhair.org/
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.