Files
wms-app/docs/reviewed/coverage-matrix.md
T

139 lines
13 KiB
Markdown

# 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.