Files
mrp/INSTRUCTIONS.md

67 lines
4.8 KiB
Markdown
Raw Normal View History

2026-03-14 14:44:40 -05:00
# Development Instructions
2026-03-15 09:22:39 -05:00
## Documentation maintenance
- Keep [CHANGELOG.md](D:/CODING/mrp-codex/CHANGELOG.md) updated whenever shipped functionality, architecture expectations, deployment behavior, or user-facing workflows materially change.
- If a change invalidates [README.md](D:/CODING/mrp-codex/README.md), [STRUCTURE.md](D:/CODING/mrp-codex/STRUCTURE.md), [ROADMAP.md](D:/CODING/mrp-codex/ROADMAP.md), or [UNRAID.md](D:/CODING/mrp-codex/UNRAID.md), update those files in the same change set.
2026-03-14 14:44:40 -05:00
## Current milestone
This repository implements the platform foundation milestone:
- workspace scaffolding
- local auth and RBAC
- company settings and branding
- file attachment storage
2026-03-14 22:37:09 -05:00
- CRM foundation through reseller hierarchy, contacts, attachments, and lifecycle metadata
2026-03-14 23:30:53 -05:00
- inventory master data, BOM, warehouse, stock-location, transactions, and item attachments
- sales quotes and sales orders with quick actions and quote conversion
2026-03-15 00:29:41 -05:00
- purchase orders with quick actions and searchable vendor/SKU entry
2026-03-15 00:47:16 -05:00
- purchase orders restricted to inventory items flagged as purchasable
2026-03-15 09:04:18 -05:00
- purchase receiving foundation with inventory posting and receipt history
2026-03-15 09:22:39 -05:00
- branded sales and purchasing PDFs through the shared Puppeteer document pipeline
2026-03-15 11:30:10 -05:00
- purchase-order supporting documents and vendor-side purchasing visibility
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
- projects with customer/commercial/shipment linkage, owners, due dates, notes, attachments, and dashboard visibility
2026-03-15 11:12:58 -05:00
- manufacturing work orders with project linkage, material issue posting, completion posting, attachments, and dashboard visibility
2026-03-14 14:44:40 -05:00
- Dockerized single-container deployment
- Puppeteer PDF pipeline foundation
## Workflow
1. Update the roadmap before starting large features.
2. Keep backend and frontend modules grouped by domain.
3. Add Prisma models and migrations for all persisted schema changes.
4. Keep uploaded files on disk under `/app/data/uploads`; never store blobs in SQLite.
5. Reuse shared DTOs and permission keys from the `shared` package.
2026-03-14 23:07:43 -05:00
6. Any non-filter UI that looks up records or items must use a searchable picker/autocomplete, not a long static dropdown.
2026-03-14 23:30:53 -05:00
7. Inventory items must carry both `defaultCost` and `defaultPrice`; sales documents should default line pricing from the selected item `defaultPrice`.
8. Maintain the denser UI baseline on active screens; avoid reintroducing oversized `px-4 py-3` style controls, tall action bars, or overly loose card spacing without a specific reason.
2026-03-15 00:09:16 -05:00
9. Treat the landing page as `Dashboard`: a metric-oriented, modular command surface that should accumulate reusable operational panels over time.
2026-03-15 00:47:16 -05:00
10. Purchase-order item selection must be restricted to inventory items where `isPurchasable = true`.
2026-03-15 10:13:53 -05:00
11. Treat `Projects` as a first-class cross-module domain tying together CRM, sales, inventory, purchasing, shipping, and planning; do not bury it as a one-off manufacturing subfeature.
2026-03-15 01:05:54 -05:00
12. Keep `Projects`, `Manufacturing`, and `Planning` distinct: projects are long-running program records, manufacturing is execution, and planning is scheduling/visibility.
2026-03-15 01:17:07 -05:00
13. New top-level modules added to the app shell should include a matching SVG icon in navigation so the module list remains visually scannable.
2026-03-14 14:44:40 -05:00
## Operational notes
- Run `npm run prisma:generate` after schema changes.
- Run `npm run prisma:migrate` during development to create versioned migrations.
- Use `npm run prisma:deploy` in production environments.
- Prefer Node 22 locally when running Prisma migration commands to match the Docker runtime.
- Branding defaults live in the frontend theme token layer and are overridden by the persisted company profile.
- Back up the whole `/app/data` volume to capture both the database and attachments.
2026-03-14 23:07:43 -05:00
- Treat searchable lookup as a standing UX requirement for inventory, BOM, sales, purchasing, manufacturing, customer, vendor, and other operational record-picking flows. Filter-only controls can still use dropdowns.
2026-03-14 23:54:42 -05:00
- Extend the existing Puppeteer document pipeline when adding customer-facing or logistics PDFs instead of creating a parallel export mechanism.
2026-03-15 00:09:16 -05:00
- Add future dashboard features as modular metric/action panels instead of one-off hero sections or static marketing-style content.
2026-03-15 01:05:54 -05:00
- When implementing projects, model the relationships explicitly so project records can anchor execution across customer, order, material, schedule, and shipment workflows.
- When implementing manufacturing, keep work orders, routings, labor, and shop-floor execution in their own domain rather than collapsing them into projects.
2026-03-14 14:44:40 -05:00
## Next roadmap candidates
2026-03-15 09:22:39 -05:00
- sales approvals and document revision history
2026-03-15 01:05:54 -05:00
- planning and gantt scheduling with live project/manufacturing data
2026-03-15 10:13:53 -05:00
- inventory transfers, reservations, and deeper stock controls
2026-03-14 23:30:53 -05:00
- broader audit and operations maturity
2026-03-15 11:30:10 -05:00
- code-splitting and bundle-size reduction