# MVP Scope

## Objective

Release a public web application that solves the core planning workflow for `10"` and `19"` racks without waiting for full CAD-grade capabilities.

## MVP features

### 1. Rack editor

- create a rack project
- choose rack type: `10"` or `19"`
- define rack height in `U`
- define depth and optional width variant
- front view editor with occupied `U` grid
- drag-and-drop placement of components
- move and reorder components
- remove and duplicate components

### 2. Component library

- built-in catalog with common rack elements
- categories such as patch panel, switch, server, PDU, shelf, UPS, blank panel
- searchable component picker
- component detail panel with dimensions and metadata

### 3. Validation

- enforce rack width compatibility
- enforce `U` occupancy
- warn on depth overflow
- warn on weight limit overflow if rack limits are defined

### 4. Bill of materials

- aggregate identical parts
- export as `CSV`
- show quantity, part number, manufacturer, description, unit price, total price
- optionally list accessories separately

### 5. Plugin support

- import component packs based on a defined manifest
- metadata-driven components
- 2D visuals via `SVG`
- optional 3D visual asset reference for future use

### 6. Cable planning V1

- define cable links between two ports or two devices
- estimate route length using rack positions
- allow manual slack factor
- include cables in bill of materials

## Deliberately excluded from MVP

- freeform 3D editing
- native browser editing of `STEP` or `DXF`
- multi-rack room layout
- thermal simulation
- live collaboration
- advanced permission and approval workflows
- ERP integration

## Recommended MVP stack

- frontend: `React` + `TypeScript`
- editor rendering: `SVG` or `Canvas` for 2D rack view
- backend: `Node.js` or `PHP` API, depending on preferred team stack
- database: `PostgreSQL`
- storage: object storage for plugin assets and exports

## Success criteria

- a user can build a rack layout in under 10 minutes
- the system prevents invalid `U` placement
- the generated bill of materials is usable for procurement
- plugin packs can be added without code changes in the editor
- cable length estimates are close enough for practical preselection
