# Documentation Coverage Matrix This matrix compares the current codebase surface area with the feature specs in `docs/`. Status legend: - `Covered` - behavior is described by a reviewed spec. - `Draft-covered` - behavior is described in `docs/reviewing/` and still needs review sign-off. - `Partial` - behavior is mentioned, but important routes, events, or edge cases are missing. - `Missing` - no product/spec coverage was found. - `Internal` - infrastructure or shared code that is not a user-facing feature by itself. ## Summary | Area | Code surface | Coverage | |---|---:|---| | App PHP pages/routes | 108 | Mostly draft-covered | | App API endpoints | 192 | Mostly draft-covered | | Reviewed specs | 6 | Cross-cutting behavior only | | Reviewing specs | 10 | Main feature families plus runtime/setup/helper coverage | The docs cover the main product domains, but the full feature set is not all reviewed. The main business specs remain in `docs/reviewing/`. ## Specification Map | Spec | Status | Primary coverage | |---|---|---| | `docs/reviewing/wms.md` | Draft-covered | WMS dashboard, stock overview, stock in/out/transfer, labels, sales orders/returns/invoices, purchase orders/supplier returns/purchase invoices, stock reports | | `docs/reviewing/accounting.md` | Draft-covered | Accounting dashboard, revenue/expense documents, finance, chart of accounts, departments, formulas, product account mapping, manual journals, GL posting, financial reports | | `docs/reviewing/master-data.md` | Draft-covered | Products, categories, warehouses/storage, contacts, chart of accounts, departments, formulas, posting window | | `docs/reviewing/system-settings.md` | Draft-covered | Authentication, sessions/security, users, profile/password, company settings, SMTP, branch switching, shared JS, locks, ETL maintenance, file uploads | | `docs/reviewing/document-lifecycle.md` | Draft-covered | Document statuses, void strategy, soft delete strategy, GL versioning | | `docs/reviewing/transaction-limits.md` | Draft-covered | Package tiers, quota counting, report/dashboard gating | | `docs/reviewing/invited-onboarding.md` | Draft-covered | Invited user activation flow | | `docs/reviewed/role-guards.md` | Covered | Role access matrix | | `docs/reviewed/soft-delete.md` | Covered | Soft delete and downstream deletion guards | | `docs/reviewed/session-concurrency.md` | Covered | Single-session login enforcement and heartbeat | | `docs/reviewed/live-dashboard.md` | Covered | Socket.IO dashboard event behavior | | `docs/reviewed/running-number.md` | Covered | Document numbering configuration and generation | | `docs/reviewing/runtime-architecture.md` | Draft-covered | App shell, config, database connections, Node.js realtime server, cron scheduler, setup script | | `docs/reviewing/setup-landing.md` | Draft-covered | Root redirect, landing page, legal pages, CLI setup behavior | | `docs/reviewing/helper-endpoints.md` | Draft-covered | Helper/search/retrieve/stats endpoint contracts | ## Page Coverage | Code area | Pages | Coverage | Spec | |---|---|---|---| | WMS dashboard | `app/dashboard/index.php`, `app/dashboard/low_stock_products.php` | Draft-covered | `docs/reviewing/wms.md`, `docs/reviewed/live-dashboard.md` | | Stock operations | `app/ics/stock_in.php`, `app/ics/manage_stock_in.php`, `app/ics/stock_out.php`, `app/ics/manage_stock_out.php`, `app/ics/stock_transfer.php`, `app/ics/manage_stock_transfer.php`, `app/ics/stock_overview.php` | Draft-covered | `docs/reviewing/wms.md`, `docs/reviewing/document-lifecycle.md` | | Barcode labels | `app/ics/sku_barcode_label.php`, `app/ics/location_barcode_label.php` | Draft-covered | `docs/reviewing/wms.md` | | Inventory master data | `app/inventory/product.php`, `app/inventory/manage_product.php`, `app/inventory/warehouse.php`, `app/inventory/manage_warehouse.php`, `app/inventory/manage_category.php`, `app/inventory/manage_storage.php` | Draft-covered | `docs/reviewing/master-data.md` | | Contacts | `app/contact/contact.php`, `app/contact/manage_contact.php`, `app/contact/manage_contact_type.php` | Draft-covered | `docs/reviewing/master-data.md` | | WMS sales | `app/order/order.php`, `app/order/manage_order.php`, `app/order/confirm_order.php`, `app/order/return.php`, `app/order/manage_return.php`, `app/order/invoice.php`, `app/order/manage_invoice.php`, `app/order/print_invoice.php` | Draft-covered | `docs/reviewing/wms.md`, `docs/reviewing/document-lifecycle.md` | | WMS purchase | `app/po/po.php`, `app/po/manage_po.php`, `app/po/supplier_returns.php`, `app/po/manage_supplier_return.php`, `app/po/invoice.php`, `app/po/manage_purchase_invoice.php` | Draft-covered | `docs/reviewing/wms.md`, `docs/reviewing/document-lifecycle.md` | | Revenue documents | `app/revenue/quotation.php`, `app/revenue/manage_quotation.php`, `app/revenue/order.php`, `app/revenue/manage_order.php`, `app/revenue/invoice.php`, `app/revenue/manage_invoice.php`, `app/revenue/manage_credit_note.php`, `app/revenue/view_invoice.php`, `app/revenue/receipt.php` | Draft-covered | `docs/reviewing/accounting.md` | | Expense documents | `app/expense/purchase_request.php`, `app/expense/manage_purchase_request.php`, `app/expense/purchase_order.php`, `app/expense/manage_purchase_order.php`, `app/expense/purchase_invoice.php`, `app/expense/manage_purchase_invoice.php`, `app/expense/manage_supplier_credit_note.php`, `app/expense/payment.php` | Draft-covered | `docs/reviewing/accounting.md` | | Finance | `app/finance/receipt_billing.php`, `app/finance/manage_receipt_billing.php`, `app/finance/receipt.php`, `app/finance/manage_receipt.php`, `app/finance/payment_billing.php`, `app/finance/manage_payment_billing.php`, `app/finance/payment.php`, `app/finance/manage_payment.php` | Draft-covered | `docs/reviewing/accounting.md` | | Accounting dashboard | `app/ac_dashboard/index.php` | Draft-covered | `docs/reviewing/accounting.md`, `docs/reviewed/live-dashboard.md` | | Accounting setup | `app/accounting/chart_of_accounts.php`, `app/accounting/manage_account.php`, `app/accounting/departments.php`, `app/accounting/manage_department.php`, `app/accounting/account_formulas.php`, `app/accounting/posting_window.php` | Draft-covered | `docs/reviewing/accounting.md`, `docs/reviewing/master-data.md` | | Accounting journals and reports | `app/accounting/gl_entries.php`, `app/accounting/journal_listing.php`, `app/journal/index.php`, `app/journal/new.php`, `app/accounting/trial_balance.php`, `app/accounting/pl_statement.php`, `app/accounting/balance_sheet.php`, `app/accounting/gl_movement.php`, `app/accounting/vat_report.php` | Draft-covered | `docs/reviewing/accounting.md` | | WMS reports | `app/reports/stock_movement.php`, `app/reports/expired_stock.php`, `app/reports/occupy_rack.php`, `app/reports/product_lot.php` | Draft-covered | `docs/reviewing/wms.md`, `docs/reviewing/transaction-limits.md` | | Authentication | `app/login/index.php`, `app/login/register.php`, `app/login/verify.php`, `app/login/forgot_password.php`, `app/login/onboarding.php`, `app/login/invited_onboarding.php` | Draft-covered | `docs/reviewing/system-settings.md`, `docs/reviewing/invited-onboarding.md`, `docs/reviewed/session-concurrency.md` | | Settings | `app/setting/users.php`, `app/setting/profile.php`, `app/setting/company.php`, `app/setting/system_config.php`, `app/setting/smtp.php`, `app/setting/document_types.php`, `app/setting/gl_maintenance.php`, `app/setting/stock_maintenance.php` | Draft-covered | `docs/reviewing/system-settings.md`, `docs/reviewed/running-number.md` | | Cron | `app/cron/etl_gl_maintenance.php`, `app/cron/etl_stock_maintenance.php` | Draft-covered | `docs/reviewing/system-settings.md` | | Shared app shell | `app/index.php`, `app/session.php`, `app/preset.php`, `app/dbconn.php`, `app/config.php`, `app/config.example.php`, `app/include_*.php` | Draft-covered | `docs/reviewing/system-settings.md`, `docs/reviewing/runtime-architecture.md` | | Landing/setup | `index.php`, `setup.php`, `landing/index.php`, `landing/privacy.php`, `landing/terms.php`, `SESSION.php` | Draft-covered | `docs/reviewing/setup-landing.md`, `docs/reviewing/runtime-architecture.md` | ## API Coverage By Module | Module | Endpoints | Coverage | Notes | |---|---:|---|---| | `ac_dashboard/api/engine` | 6 | Draft-covered | Dashboard APIs are `by_source`, `journals`, `pl`, `posting_window`, `recent`, `trend` | | `accounting/api/engine` | 25 | Draft-covered | CRUD, journal, posting, report, lock, and batch-log APIs are described by accounting/system specs | | `contact/api/engine` | 9 | Draft-covered | Contact and type CRUD plus stats are covered at feature level | | `dashboard/api/engine_report` | 2 | Draft-covered | WMS dashboard stats and low-stock APIs | | `expense/api/engine` | 6 | Draft-covered | Purchase request and supplier credit note APIs; purchase invoice behavior is shared through invoice managers/routes | | `finance/api/engine` | 8 | Draft-covered | Receipt/payment billing and receipt/payment CRUD/delete APIs | | `ics/api/engine` | 27 | Draft-covered | Core stock and label flows are covered by WMS; helper lookup endpoints are covered by `helper-endpoints.md` | | `ics/api/engine_report` | 7 | Draft-covered | Stock overview and activity/report APIs | | `inventory/api/engine` | 17 | Draft-covered | Product/category/warehouse/storage CRUD and stats | | `login/api/engine` | 9 | Draft-covered | Login, OTP, registration, onboarding, password reset, logout | | `order/api/engine` | 18 | Draft-covered | Sales order, return, invoice lifecycle | | `po/api/engine` | 17 | Draft-covered | PO, receive, supplier return, purchase invoice/credit note lifecycle | | `reports/api/engine_report` | 7 | Draft-covered | Stock reports and quota gating | | `revenue/api/engine` | 10 | Draft-covered | Quotation, revenue order, invoice conversion, credit note APIs | | `setting/api/engine` | 18 | Draft-covered | Users, company/profile/SMTP/system settings, document types, ETL maintenance, branch switching | ## API Helper Endpoint Coverage These endpoints are implemented and used by forms. They are now covered at contract level by `docs/reviewing/helper-endpoints.md`: - `app/ics/api/engine/contact_search.php` - `app/ics/api/engine/product_search.php` - `app/ics/api/engine/retrieve_active_lot.php` - `app/ics/api/engine/retrieve_active_serial.php` - `app/ics/api/engine/retrieve_aisle.php` - `app/ics/api/engine/retrieve_lot.php` - `app/ics/api/engine/retrieve_rack.php` - `app/ics/api/engine/retrieve_warehouse.php` - `app/ics/api/engine/retrieve_zone.php` - `app/ics/api/engine/validate_scan_location.php` - `app/inventory/api/engine/manager.php` - `app/accounting/api/engine/account_stats.php` - `app/accounting/api/engine/department_stats.php` - `app/contact/api/engine/contact_stats.php` - `app/inventory/api/engine/product_stats.php` - `app/inventory/api/engine/warehouse_stats.php` ## Cross-Cutting Coverage | Behavior | Coverage | Spec | |---|---|---| | Role authorization | Covered | `docs/reviewed/role-guards.md` | | Soft delete and deletion order | Covered | `docs/reviewed/soft-delete.md` | | Running numbers | Covered | `docs/reviewed/running-number.md` | | Session concurrency | Covered | `docs/reviewed/session-concurrency.md` | | Dashboard socket events | Covered | `docs/reviewed/live-dashboard.md` | | Transaction quotas | Draft-covered | `docs/reviewing/transaction-limits.md` | | Posting window | Draft-covered | `docs/reviewing/accounting.md`, `docs/reviewing/master-data.md` | | Document statuses | Draft-covered | `docs/reviewing/document-lifecycle.md` | | Operation locks | Draft-covered | `docs/reviewing/system-settings.md`, `docs/reviewing/accounting.md` | | ETL maintenance | Draft-covered | `docs/reviewing/system-settings.md` | | File uploads | Draft-covered | `docs/reviewing/system-settings.md` | | Node.js server and cron runtime | Draft-covered | `docs/reviewed/live-dashboard.md`, `docs/reviewing/system-settings.md`, `docs/reviewing/runtime-architecture.md` | | Installation/setup and landing site | Draft-covered | `docs/reviewing/setup-landing.md`, `docs/reviewing/runtime-architecture.md` | ## Known Stale Or Corrected References - `docs/reviewed/README.md` previously linked reviewing specs as if they lived in `docs/reviewed/`. - `docs/reviewed/README.md` previously referenced `docs/architecture.md`, which is not present. - `docs/reviewing/accounting.md` previously referenced `app/ac_dashboard/api/engine/stats.php`; the actual accounting dashboard endpoints are split by section. - `docs/reviewing/system-settings.md` previously referenced `migrations/*.sql`; schema setup wording now reflects this repository snapshot. ## Remaining Documentation Work 1. Promote or revise the `docs/reviewing/` specs after review. 2. Add exact request/response payload tables for helper endpoints where frontend code depends on field-level contracts. 3. Reconcile `schema_migrations` usage with the absence of a `migrations/` directory if file-based migrations are reintroduced.