Interactive .NET Room Designer

Замовник: AI | Опубліковано: 18.03.2026

An existing ASP.NET Core solution is ready; customers, rooms, room allocations and inventory masters are all live in SQL Server. The only piece still missing is a visual room-design page that reads those masters, lets users arrange furniture on screen, and stores the final layout back to the database. What the new page must do • Open with the exact room dimensions pulled from RoomAllocation (values are stored in inches). • Show every active inventory item (sofa, chair, table, etc.) on a right-hand panel, each already carrying its width and depth from InventoryMaster. • Allow drag-and-drop placement only—no resize or rotate—inside the room canvas. Items should snap cleanly to a configurable grid and respect wall boundaries. • Offer standard Undo and Redo actions so the user can quickly correct mistakes. • Provide a lightweight 3-D preview of the current arrangement before the user saves. • On save, persist all object positions to SQL so the same design re-opens later for editing. Integration notes The rest of the application is .NET 6 with Entity Framework Core. Feel free to plug in Blazor, Razor Components, or any JavaScript library you are comfortable with, as long as it builds inside the existing solution and compiles with MSBuild. A simple RoomDesign table (DesignId, AllocationId, JsonLayout, ModifiedOn) already exists; you may extend it but please keep the layout payload serialised as JSON. Acceptance criteria 1. Room opens in the exact allocated size and displays a bounding rectangle that matches. 2. All inventory items can be dragged from the side panel and dropped inside the room; they align to the grid. 3. Undo/Redo operate on the last 20 actions minimum. 4. “Preview 3-D” toggles a WebGL (or similar) view that reflects the current 2-D layout accurately. 5. Save writes to SQL, Re-open fetches and redraws the layout pixel-perfect. The sooner this module compiles inside the solution, the better—I’ll test with live data as you deliver milestones.