| # | Document | Description |
|---|---|---|
| 01 | Architecture Overview | Tech stack, project structure, multi-tenancy, backend/frontend architecture, financial architecture, integration architecture, key decisions |
| 02 | Database Schema | Complete SQL DDL for all tables: operations (parts, BOMs, purchasing, inventory, sales, jobs), finance (GL, AP, AR, tax, banking), and platform (custom fields, webhooks, integrations) |
| 03 | API Reference | All REST endpoints organized by module — operations, finance, integrations |
| 04 | Implementation Phases | 13 phased build plan (Phase 0-12) with detailed checklists |
| 05 | Domain Concepts | ECM domain explanation, entity examples, financial flow walkthrough, integration examples, key workflows |
| 06 | App Structure | Frontend application structure — sidebar navigation, dashboard, every page/form/button for all modules, status workflows, Angular route configuration |
| 07 | Improvement Plan | Current-phase improvements: bug fixes, kitting system, auto-GL with reversals, dashboard enhancements, UX improvements, international tax strategy |
| 08 | Future Phases | Deferred capabilities: corporate theme, part data enrichment, MES integration, 2FA/security, EDI, advanced analytics, shipping, quality management |
| 09 | Event Dispatcher | Queue-swappable event architecture: how all side-effects (GL, planning, webhooks, notifications) flow through a single dispatch function. Handler rules, planning cascade design, how to add new handlers |
Stack: Node.js + Express + TypeScript | Angular 19+ | PostgreSQL 16 | Knex.js | Event Dispatcher (queue-swappable)
Operations: Parts/BOMs, PLM/ECOs, Vendor/Purchasing, Inventory (serialized), Kitting (multi-job, backflush/front-flush/kanban), Sales, Jobs/Work Orders, MRP Planning
Finance: General Ledger (auto-posting with cancellation reversals), Accounts Payable, Accounts Receivable, Tax (international — Canada + Thailand), Banking/Reconciliation
Platform: Custom Fields (Form Builder), Webhooks, API Keys, Integration Connectors, Tenant Settings
Multi-tenancy: Schema-per-tenant (knex.withSchema())
Auth: JWT + API keys (deferred — stubbed during initial development)
Integration: Event-driven webhooks, scoped API keys for external systems (MES, shipping, distributors)