Files
mrp/README.md

403 lines
23 KiB
Markdown
Raw Normal View History

2026-03-16 00:00:04 -05:00
# CODEXIUM
2026-03-14 14:44:40 -05:00
Foundation release for a modular Manufacturing Resource Planning platform built with React, Express, Prisma, SQLite, and a single-container Docker deployment.
2026-03-15 09:22:39 -05:00
## Documentation Maintenance
- Keep [CHANGELOG.md](D:/CODING/mrp-codex/CHANGELOG.md) updated for shipped features, workflow changes, and notable operational updates.
2026-03-15 19:40:35 -05:00
- Keep [README.md](D:/CODING/mrp-codex/README.md), [INSTRUCTIONS.md](D:/CODING/mrp-codex/INSTRUCTIONS.md), [STRUCTURE.md](D:/CODING/mrp-codex/STRUCTURE.md), [ROADMAP.md](D:/CODING/mrp-codex/ROADMAP.md), [SHIPPED.md](D:/CODING/mrp-codex/SHIPPED.md), and [UNRAID.md](D:/CODING/mrp-codex/UNRAID.md) aligned when changes affect their scope.
2026-03-15 09:22:39 -05:00
2026-03-14 18:46:06 -05:00
Current foundation scope includes:
- authentication and RBAC
2026-03-16 00:00:04 -05:00
- company branding and theme settings, including startup brand-theme hydration across refresh
2026-03-14 18:46:06 -05:00
- CRM customers and vendors with create/edit/detail workflows
- CRM search, filtering, status tagging, and reseller hierarchy
- CRM contact history, account contacts, and shared attachments
2026-03-14 23:30:53 -05:00
- inventory item master, BOM, warehouse, stock-location, and stock-transaction flows
2026-03-15 14:00:12 -05:00
- inventory transfers, reservations, and available-stock visibility
2026-03-15 22:17:58 -05:00
- inventory SKU master builder with family-scoped sequence generation and branch-aware taxonomy management
2026-03-16 00:00:04 -05:00
- staged thumbnail image attachment on inventory item create/edit workflows, with detail-page thumbnail display
2026-03-14 23:30:53 -05:00
- sales quotes and sales orders with searchable customer and SKU entry
2026-03-15 21:07:28 -05:00
- sales approvals, approval stamps, automatic revision history, and revision comparison on quotes and sales orders
2026-03-15 00:47:16 -05:00
- purchase orders with searchable vendor and SKU entry, restricted to purchasable inventory items
2026-03-15 21:07:28 -05:00
- purchase-order revision history and revision comparison across commercial and receipt changes
2026-03-15 09:04:18 -05:00
- purchase receiving with warehouse/location posting and receipt history against purchase orders
2026-03-15 09:22:39 -05:00
- branded quote, sales-order, and purchase-order PDFs through the shared backend document pipeline
2026-03-15 11:30:10 -05:00
- purchase-order supporting documents for vendor invoices, acknowledgements, certifications, and backup files
2026-03-15 10:13:53 -05:00
- shipping shipments linked to sales orders with packing slips, shipping labels, bills of lading, and logistics attachments
2026-03-17 07:34:08 -05:00
- projects with customer/commercial/shipment linkage, owners, due dates, milestones, rollups, notes, and attachments
2026-03-15 12:11:46 -05:00
- manufacturing work orders with project linkage, station-based operation templates, material issue posting, completion posting, and work-order attachments
- planning gantt timelines with live project and manufacturing schedule data
2026-03-15 15:45:29 -05:00
- sales-order demand planning with multi-level BOM explosion, stock/open-supply netting, and build/buy recommendations
2026-03-15 16:40:25 -05:00
- planner-assisted conversion of demand-planning recommendations into prefilled work-order and purchase-order drafts
- pegged WO/PO supply tracking back to sales demand with preferred-vendor sourcing on inventory items
- shared shortage and readiness rollups across dashboard, planning, projects, purchasing, and manufacturing
2026-03-15 14:11:21 -05:00
- admin diagnostics with runtime footprint, record counts, and recent audit-trail visibility
2026-03-15 19:40:35 -05:00
- admin user management with account creation, activation, role assignment, role-permission editing, session visibility/revocation, review filtering, and unusual-access cues
- safer destructive-action confirmations and recovery messaging across admin, sales, purchasing, shipping, inventory, manufacturing, projects, warehouse/form editors, and attachment workflows
2026-03-15 14:57:41 -05:00
- CRM and shipping audit coverage plus startup validation surfaced through the admin diagnostics page
2026-03-15 15:21:27 -05:00
- backup/restore guidance, richer startup diagnostics, and exportable support bundles in the admin diagnostics workflow
- backup verification checklist and restore-drill runbook surfaced in admin diagnostics
2026-03-15 21:07:28 -05:00
- support-log viewing, filtering, retention cleanup, and richer support-debug export helpers in admin diagnostics
2026-03-15 14:47:58 -05:00
- route-level code-splitting and vendor chunking for lighter initial client loads
2026-03-14 18:46:06 -05:00
- file storage and PDF rendering
2026-03-14 23:54:42 -05:00
## Product Map
2026-03-15 19:40:35 -05:00
Shipped phase history now lives in [SHIPPED.md](D:/CODING/mrp-codex/SHIPPED.md). [ROADMAP.md](D:/CODING/mrp-codex/ROADMAP.md) now tracks remaining work only.
2026-03-14 23:54:42 -05:00
Current completed foundation areas:
2026-03-15 00:09:16 -05:00
- dashboard foundation
2026-03-14 23:54:42 -05:00
- CRM foundation
- inventory foundation
2026-03-15 00:29:41 -05:00
- sales and purchasing foundation
2026-03-14 23:54:42 -05:00
- shipping foundation
2026-03-15 10:13:53 -05:00
- projects foundation
2026-03-15 11:12:58 -05:00
- manufacturing foundation
2026-03-15 12:11:46 -05:00
- planning foundation
2026-03-15 14:11:21 -05:00
- audit and diagnostics foundation
2026-03-15 14:47:58 -05:00
- user and role administration foundation
2026-03-14 23:54:42 -05:00
- branding, attachments, auth/RBAC, and PDF infrastructure
Near-term priorities:
2026-03-17 07:34:08 -05:00
1. Deeper project-side execution visibility, cost/supply rollups, and project cockpit refinement
2026-03-15 21:07:28 -05:00
2. Manufacturing routing/work-center depth, labor capture, and capacity-aware execution views
2026-03-14 23:54:42 -05:00
Revisit / deferred items:
- local Windows Prisma migration reliability
2026-03-17 07:34:08 -05:00
- deeper project-side execution visibility, cost/supply rollups, and project cockpit refinement
2026-03-14 23:54:42 -05:00
2026-03-15 00:09:16 -05:00
Dashboard direction:
- the landing page is now `Dashboard`, not `Overview`
- it should remain a metric-oriented operational surface rather than a generic welcome page
- new modules should add reusable dashboard cards/panels instead of replacing the whole layout
- future additions should emphasize relevant metrics, next actions, alerts, and workflow shortcuts
2026-03-15 00:29:41 -05:00
- richer recent-activity widgets and exception queues are a planned QOL follow-up, not a separate landing-page redesign
2026-03-15 10:13:53 -05:00
- projects now feed dashboard widgets for active programs, overdue work, and risk
2026-03-15 11:12:58 -05:00
- manufacturing now feeds dashboard widgets for released work, overdue orders, and execution load
2026-03-15 12:11:46 -05:00
- planning now feeds live gantt scheduling from project and manufacturing records
2026-03-15 10:13:53 -05:00
- future project widgets should deepen milestones, shortages, and shipment readiness
2026-03-15 01:05:54 -05:00
2026-03-15 01:17:07 -05:00
Navigation direction:
- module navigation now uses inline SVG icons alongside labels
- new modules should add a clear, domain-appropriate SVG icon when they are added to the shell
- icons should stay lightweight, theme-aware, and dependency-free unless there is a strong reason to introduce a shared icon package
2026-03-15 01:05:54 -05:00
## Projects Direction
2026-03-17 07:34:08 -05:00
Projects are now the long-running program and delivery layer for cross-module execution. The current slice ships project records with customer linkage, owner assignment, priority, due dates, milestones, project-side milestone/work-order rollups, notes, commercial document links, shipment links, attachments, and dashboard visibility.
2026-03-15 01:05:54 -05:00
2026-03-15 10:13:53 -05:00
Current interactions:
2026-03-15 01:05:54 -05:00
- CRM: each project should link to a customer account and relevant contacts
2026-03-15 10:13:53 -05:00
- Sales: quotes and sales orders can already attach to projects
- Shipping: shipments tied to project deliverables are visible from the project record
- Dashboard: projects now contribute status, risk, backlog, and overdue widgets
2026-03-17 07:34:08 -05:00
- Detail/List UX: projects now surface milestone progress and linked execution rollups
2026-03-15 10:13:53 -05:00
Next expansion areas:
2026-03-15 01:05:54 -05:00
- Inventory: projects should reference item/BOM scope and later expose shortages or allocations
- Purchasing: project material demand should be visible to purchasing and receiving workflows
- Manufacturing: work orders should link back to projects without turning projects into the manufacturing module
- Planning: project milestones and execution dates should feed gantt scheduling and dependency views
## Manufacturing Direction
2026-03-15 12:11:46 -05:00
Manufacturing is now a separate execution subsystem rather than being collapsed into Projects. The current slice ships work-order records with build-item linkage, optional project linkage, warehouse/location output posting, BOM-based material requirement visibility, station master data, item-level operation templates, automatic work-order operation plans, material issue posting, completion posting, work-order attachments, and dashboard visibility.
2026-03-15 01:05:54 -05:00
2026-03-15 11:12:58 -05:00
Current interactions:
2026-03-15 01:05:54 -05:00
- Projects: manufacturing orders may belong to a project, but projects remain the higher-level long-running record
2026-03-15 11:12:58 -05:00
- Inventory: manufacturing consumes components and produces stock through real issue/receipt transactions
- Dashboard: manufacturing now contributes released/open/overdue load widgets
Next expansion areas:
2026-03-15 01:05:54 -05:00
- Purchasing: shortages and buyout demand should surface from manufacturing execution
- Shipping: completed manufacturing should feed shipment readiness
- Planning: manufacturing orders, routings, and work centers should drive capacity and schedule views
2026-03-15 00:09:16 -05:00
2026-03-15 12:11:46 -05:00
## Planning Direction
Planning is now the live scheduling and visibility layer over projects and manufacturing instead of a placeholder wrapper. The current slice ships a gantt surface backed by active projects, due-date milestones, linked work orders, standalone manufacturing queue visibility, and exception cards for overdue or at-risk schedule items.
Current interactions:
- Projects: project timelines and due dates anchor the top-level planning rows
- Manufacturing: open work orders feed task rows, sequencing links, and execution progress
- Dashboard: planning now appears as a first-class module with schedule visibility links
Next expansion areas:
- Purchasing: shortages, late receipts, and vendor risk should surface directly in planning
- Manufacturing: routings, work centers, and capacity should deepen the schedule model
- Projects: richer milestones and dependency editing should extend the project-level timeline
2026-03-14 14:44:40 -05:00
## Workspace
- `client`: React, Vite, Tailwind frontend
- `server`: Express API, Prisma, auth/RBAC, file storage, PDF rendering
- `shared`: shared TypeScript contracts and constants
2026-03-14 18:46:06 -05:00
## Local Development
2026-03-14 14:44:40 -05:00
1. Use Node.js 22 for local development if you want Prisma migration commands to behave the same way as Docker.
2. Install dependencies with `npm.cmd install`.
3. Copy [`.env.example`](D:\CODING\mrp-codex\.env.example) to `.env` and adjust values if needed.
4. Generate Prisma client with `npm run prisma:generate`.
5. Apply committed migrations with `npm run prisma:deploy`.
6. Start the workspace with `npm run dev`.
The frontend runs through Vite in development and is served statically by the API in production.
Seeded admin credentials for first login:
- email: `admin@mrp.local`
- password: `ChangeMe123!`
## Docker
Build and run:
```bash
docker build -t mrp-codex .
docker run -p 3000:3000 -v mrp_data:/app/data mrp-codex
```
2026-03-14 15:02:17 -05:00
Command-line build notes:
- The Dockerfile is intended to be built directly from the repo root with `docker build`
- `puppeteer` browser download is disabled during image build because the runtime image installs system Chromium
- You can override the Node base image version if needed:
```bash
docker build --build-arg NODE_VERSION=22 -t mrp-codex .
```
2026-03-15 18:59:37 -05:00
The container startup script runs the server workspace Prisma binary directly:
```bash
/app/server/node_modules/.bin/prisma migrate deploy --schema /app/server/prisma/schema.prisma
```
2026-03-14 14:44:40 -05:00
2026-03-14 21:10:35 -05:00
This Docker path is currently the most reliable way to ensure the database schema matches the latest CRM and inventory migrations on Windows.
2026-03-14 18:46:06 -05:00
## Persistence And Backup
2026-03-14 14:44:40 -05:00
- SQLite database path: `/app/data/prisma/app.db`
- Uploaded files: `/app/data/uploads`
- Backup the entire mounted `/app/data` volume to preserve both records and attachments.
2026-03-14 18:46:06 -05:00
## CRM
The current CRM foundation supports:
- customer and vendor list, detail, create, and edit flows
- search by text plus status and state/province filters
- customer reseller flag, reseller discount, and parent-child hierarchy
- contact-history timeline entries for notes, calls, emails, and meetings
- multiple account contacts with role and primary-contact tracking
- shared file attachments on customer and vendor records
- commercial terms fields including payment terms, currency, tax exempt, and credit hold
2026-03-14 23:54:42 -05:00
QOL direction:
- saved filters and quick views
- cleaner hierarchy navigation for reseller/customer trees
- richer downstream rollups once purchasing and shipping grow further
2026-03-14 18:46:06 -05:00
Recent CRM features depend on the committed Prisma migrations being applied. If you update the code and do not run migrations, the UI may render fields that are not yet present in the database.
2026-03-14 21:10:35 -05:00
## Inventory
The current inventory foundation supports:
- protected item master list, detail, create, and edit flows
2026-03-14 23:30:53 -05:00
- SKU, description, type, status, unit-of-measure, sellable/purchasable, default cost, default price, and notes fields
2026-03-14 21:10:35 -05:00
- BOM header and BOM line editing directly on the item form
2026-03-14 21:31:40 -05:00
- searchable component lookup for BOM lines, designed for large item catalogs
2026-03-14 22:37:09 -05:00
- SKU-first searchable component lookup for BOM lines, with SKU shown in the picker and description kept separate in the selected row
2026-03-14 21:10:35 -05:00
- BOM detail display with component SKU, name, quantity, unit, notes, and position
2026-03-14 21:23:22 -05:00
- protected warehouse list, detail, create, and edit flows
- nested stock-location management inside each warehouse record
2026-03-14 23:30:53 -05:00
- inventory transaction posting for receipts, issues, and adjustments
2026-03-15 14:00:12 -05:00
- inventory transfers with paired source/destination movement posting
- manual reservations plus automatic work-order component reservations
2026-03-14 23:30:53 -05:00
- item on-hand quantity, stock-by-location balances, and recent stock history
2026-03-15 14:00:12 -05:00
- reserved and available quantity visibility by location
2026-03-14 23:30:53 -05:00
- item-level file attachments for drawings and support documents
2026-03-15 21:26:08 -05:00
- fresh bootstrap starts inventory and warehouse data empty so first-run environments do not include demo operational records
2026-03-14 21:10:35 -05:00
2026-03-14 23:54:42 -05:00
QOL direction:
- clearer warehouse dashboards and shortage views
- BOM revisions and where-used visibility
2026-03-14 21:10:35 -05:00
This module introduces `inventory.read` and `inventory.write` permissions. After updating the code, restart the server against the migrated database so bootstrap can upsert the new permissions onto the default administrator role.
2026-03-14 23:30:53 -05:00
`defaultPrice` now flows from inventory items into quote and sales-order line entry when a SKU is selected. Users can still override the line price after selection.
## Sales
The current sales foundation supports:
- quote and sales-order list, detail, create, and edit flows
- searchable customer lookup instead of static customer dropdowns
- SKU-searchable line entry for quote and order lines
2026-03-14 23:54:42 -05:00
- document-level discount, tax, freight, subtotal, and total calculations
- reseller discount defaulting from customer records into sales documents
2026-03-14 23:30:53 -05:00
- status quick actions directly from quote and order detail pages
- quote conversion into a sales order
- line-level unit prices populated from the selected inventory item default price
2026-03-15 09:22:39 -05:00
- branded quote and sales-order PDFs through the shared document pipeline
2026-03-15 11:44:14 -05:00
- approval stamps and revision history directly on quote and sales-order detail pages
- revision-reason capture when editing customer-facing sales documents
2026-03-14 23:30:53 -05:00
2026-03-14 23:54:42 -05:00
QOL direction:
- line duplication and faster keyboard-heavy line editing
2026-03-15 11:44:14 -05:00
- revision comparison view and restore-style workflows
2026-03-14 23:54:42 -05:00
- richer PDF output for quotes and sales orders
2026-03-14 23:30:53 -05:00
This module introduces `sales.read` and `sales.write` permissions. After updating the code, restart the server against the migrated database so bootstrap can upsert the new permissions onto the default administrator role.
2026-03-15 00:29:41 -05:00
## Purchasing
The current purchasing foundation supports:
- purchase-order list, detail, create, and edit flows
- searchable vendor lookup instead of a static vendor dropdown
- SKU-searchable line entry for purchase-order lines
2026-03-15 00:47:16 -05:00
- purchase-order item lookup restricted to inventory items flagged as purchasable
2026-03-15 09:04:18 -05:00
- receiving workflow tied to purchase orders, with receipt history and inventory posting
2026-03-15 00:29:41 -05:00
- document-level tax, freight, subtotal, and total calculations
- quick status actions directly from purchase-order detail pages
- vendor payment terms and currency surfaced on purchase-order forms and details
2026-03-15 09:22:39 -05:00
- branded purchase-order PDFs through the shared document pipeline
2026-03-15 00:29:41 -05:00
QOL direction:
- richer dashboard widgets for vendor queues and inbound material exceptions
2026-03-15 11:30:10 -05:00
- vendor-side exception tracking around acknowledgements, invoice matching, and receipt discrepancies
2026-03-15 00:29:41 -05:00
This module introduces `purchasing.read` and `purchasing.write` permissions. After updating the code, restart the server against the migrated database so bootstrap can upsert the new permissions onto the default administrator role.
2026-03-14 23:54:42 -05:00
## Shipping
The current shipping foundation supports:
- shipment list, detail, create, and edit flows
- searchable sales-order lookup instead of a static order dropdown
- shipment records linked directly to sales orders
- carrier, service level, tracking number, package count, notes, and ship date fields
- shipment quick status actions from the shipment detail page
- related-shipment visibility from the sales-order detail page
- branded packing-slip PDF rendering from shipment detail pages
2026-03-15 10:13:53 -05:00
- branded shipping-label and bill-of-lading PDF rendering from shipment detail pages
- logistics attachments directly on shipment records
2026-03-14 23:54:42 -05:00
QOL direction:
2026-03-15 10:13:53 -05:00
- reprint/history actions for generated logistics PDFs
2026-03-14 23:54:42 -05:00
- partial-shipment and split-shipment UX
This module introduces `shipping.read` and `shipping.write` permissions. After updating the code, restart the server against the migrated database so bootstrap can upsert the new permissions onto the default administrator role.
2026-03-14 23:07:43 -05:00
Moving forward, any UI that requires searching for records or items should use a searchable picker/autocomplete rather than a static dropdown. Filter controls can remain dropdowns, but non-filter lookup fields such as SKU pickers, customer selectors, vendor selectors, and similar operational search inputs should not be implemented as long static selects.
2026-03-14 21:31:40 -05:00
2026-03-14 22:37:09 -05:00
## UI Density
The active client screens have been normalized toward a denser workspace layout:
- form controls and action bars use tighter padding
- CRM, inventory, warehouse, settings, dashboard, and login screens use reduced card spacing
- headings, metric cards, empty states, and long-text blocks were tightened for better data density
This denser layout is now the baseline for future screens. New pages should avoid reverting to oversized card padding, tall action bars, or long static dropdowns for operational datasets.
2026-03-14 14:44:40 -05:00
## Branding
Brand colors and typography are configured through the Company Settings page and the frontend theme token layer. Update runtime branding in-app, or adjust defaults in the theme config if you need a new baseline brand.
2026-03-14 18:46:06 -05:00
Logo uploads are stored through the authenticated file pipeline and are rendered back into the settings UI through an authenticated blob fetch, so image preview works after save and refresh.
2026-03-14 14:44:40 -05:00
## Migrations
- Create a local migration: `npm run prisma:migrate`
- Apply committed migrations in production: `npm run prisma:deploy`
- If Prisma migration commands fail on a local Node 24 Windows environment, use Node 22 or Docker for migration execution. The committed migration files in `server/prisma/migrations` remain the source of truth.
2026-03-15 18:59:37 -05:00
As of March 15, 2026, the latest committed domain migrations include:
2026-03-14 18:46:06 -05:00
- CRM status and list filters
- CRM contact-history timeline
- reseller hierarchy and reseller discount support
- CRM commercial terms and account contacts
2026-03-14 21:10:35 -05:00
- CRM lifecycle stages and operational metadata
- inventory item master and BOM foundation
2026-03-14 21:23:22 -05:00
- warehouse and stock-location foundation
2026-03-14 23:30:53 -05:00
- inventory transactions and on-hand tracking
- sales quote and sales-order foundation
2026-03-15 00:29:41 -05:00
- purchase-order foundation
2026-03-15 09:04:18 -05:00
- purchase receiving foundation
2026-03-15 09:22:39 -05:00
- branded sales and purchasing PDF templates
2026-03-15 11:44:14 -05:00
- sales approvals and document revision history
2026-03-14 23:30:53 -05:00
- inventory default price support
2026-03-14 23:54:42 -05:00
- sales totals and commercial fields
- shipping foundation
2026-03-15 10:13:53 -05:00
- projects foundation
2026-03-15 11:12:58 -05:00
- manufacturing foundation
2026-03-15 18:59:37 -05:00
- manufacturing stations and operation templates
- inventory transfers and reservations
- audit trail and diagnostics foundation
- auth-session visibility and revocation
2026-03-15 19:40:35 -05:00
- session review filters, unusual-access cues, and startup pruning of stale expired/revoked session records
2026-03-15 18:59:37 -05:00
- supply pegging and preferred-vendor sourcing
2026-03-14 23:54:42 -05:00
2026-03-15 00:47:16 -05:00
Recent roadmap-driving migrations should always be applied before validating new CRM, inventory, sales, shipping, or purchasing features in a running environment.
2026-03-14 18:46:06 -05:00
2026-03-15 14:11:21 -05:00
## Audit And Diagnostics
The current admin operations slice supports:
- persisted audit events for core settings, inventory, purchasing, sales, project, and manufacturing write actions
- an admin diagnostics page for runtime footprint, data/storage path visibility, key record counts, and recent audit activity
2026-03-15 15:45:29 -05:00
- a sales-order demand-planning view with multi-level BOM netting and build/buy recommendations
2026-03-15 16:40:25 -05:00
- prefilled work-order and purchase-order draft launch paths from sales-order demand-planning recommendations
- shared shortage/readiness rollups across planning, project, purchasing, dashboard, and manufacturing views
2026-03-15 18:59:37 -05:00
- a dedicated user-management page for account creation, activation, role assignment, password reset-style updates, role-permission administration, and session visibility/revocation
2026-03-15 19:40:35 -05:00
- session review filters and flagged cues for stale activity, multi-session overlap, and multi-IP access patterns
2026-03-15 14:57:41 -05:00
- CRM customer/vendor changes and shipping mutations now flow into the shared audit trail
2026-03-15 15:21:27 -05:00
- startup validation now checks storage paths, writable storage readiness, database connectivity, client bundle readiness, Chromium availability, and risky production defaults during server boot
2026-03-15 19:40:35 -05:00
- startup now prunes stale expired or revoked auth-session records before serving requests
2026-03-15 15:21:27 -05:00
- backup and restore guidance now surfaces directly in diagnostics, along with exportable support bundles for support handoff
- support logs now capture startup warnings, HTTP failures, and server errors for admin-side debugging review
2026-03-15 21:07:28 -05:00
- support logs now support admin-side filtering by severity, source, search text, and retention window, and exports include summary metadata
2026-03-15 15:21:27 -05:00
- backup verification items and restore-drill expected outcomes now live in the admin runbook surface
2026-03-15 14:11:21 -05:00
- operator-facing review of recent high-impact changes without direct database access
Current follow-up direction:
2026-03-15 19:40:35 -05:00
- revision comparison UX for changed sales and purchasing documents
2026-03-17 07:34:08 -05:00
- deeper project-side execution visibility, cost/supply rollups, and project cockpit refinement
2026-03-15 14:11:21 -05:00
2026-03-14 18:46:06 -05:00
## UI Notes
- Dark mode persistence is handled through the frontend theme provider and should remain stable across page navigation.
2026-03-15 18:59:37 -05:00
- The shell layout is tuned for wider desktop use than the original foundation build, and now exposes Dashboard, CRM, inventory, sales, purchasing, shipping, projects, manufacturing, settings, and planning modules from the same app shell.
2026-03-14 22:37:09 -05:00
- The active module screens now follow a tighter density baseline for forms, tables, and detail cards.
2026-03-15 11:12:58 -05:00
- The dashboard should continue evolving as a modular metric board for future purchasing, shipping, planning, and audit data.
2026-03-15 14:47:58 -05:00
- The client now ships with route-level lazy loading and vendor chunking, so future frontend work should preserve that split instead of re-centralizing module imports in `main.tsx`.
2026-03-14 18:46:06 -05:00
## PDF Generation
2026-03-14 14:44:40 -05:00
2026-03-15 10:13:53 -05:00
Puppeteer is used by the backend to render HTML templates into professional PDFs. The current PDF surface includes the branded company-profile preview, sales quotes, sales orders, purchase orders, shipment packing slips, shipping labels, and bills of lading. The Docker image includes Chromium runtime dependencies required for headless execution.
2026-03-16 00:00:04 -05:00