The request
ParcelWise redevelopment feasibility workspace
Read the full request
Build ParcelWise, an interactive redevelopment feasibility workspace for a fictional property advisory firm. Provide six synthetic properties with parcel dimensions, current floor area, asking price and neighbourhood labels. Users browse property cards, select a parcel and compare a baseline scheme with a saved alternative. Let them edit purchase cost, renovation cost per square metre, rentable area, monthly rent, vacancy and operating-cost percentage; compute total project cost, annual net operating income, gross yield and unlevered yield on cost with formulas and units visible. Show a simple SVG parcel/floor-area diagram and a sensitivity heatmap for rent versus vacancy. Allow saving three named scenarios per property and comparing their assumptions side by side. Export the selected scenario as JSON and support a print-friendly investment brief. Use illustrative calculations only, no market forecasts or investment recommendations. A restrained architectural aesthetic should combine warm ivory, ink, terracotta and a strong editorial grid. Deliver a self-contained demo with synthetic data clearly labelled, English product copy, and no external APIs, credentials or remote assets. Use HTML/CSS/JavaScript with a directly previewable root index.html. Provide distinct, polished visual design, accessible labelled controls, visible keyboard focus and useful empty/error states. Persist user edits locally with a reset-demo action. Include a short README and executable Node built-in tests for the important domain calculations. Verify the actual main user journey in a browser at mobile and desktop widths before delivery. Express monthly rent per rentable square metre. Total project cost = purchase cost + renovation cost per square metre times rentable area. Annual gross rent = monthly rent times rentable area times 12. Effective rent = gross rent times (1 - vacancy). NOI = effective rent times (1 - operating-cost percentage). Gross yield uses purchase cost; yield on cost uses total project cost. Show N/A for a zero denominator. Before delivery, exercise each acceptance criterion with recorded, observable results. For persistence, save a distinctive value, reload the actual page and observe the restored UI. Keep domain calculations separate enough for tests to import the production functions.
The journey
- Read the requestTurned it into a list of things it would have to prove before calling the work done.
- Did the workPlanned the pieces, built them and checked the result as it went.
- Sent back by the final reviewThe last check did not accept the first result, and said what was missing.
- CorrectedThe missing parts were fixed and the work was checked again.
- Delivered7 files handed over.
The result
- app.js7.7 KB
- calculations.js1.2 KB
- index.html3.8 KB
- README.md994 B
- server.js878 B
- styles.css5.6 KB
- tests/calculations.test.js798 B