Skip to content

Add configurable roof overhang#119

Merged
toddaheath merged 1 commit intomainfrom
feature/roof-overhang
Mar 2, 2026
Merged

Add configurable roof overhang#119
toddaheath merged 1 commit intomainfrom
feature/roof-overhang

Conversation

@toddaheath
Copy link
Owner

Summary

  • Add RoofOverhangInches field (default 12", range 0-36") to Design model, DesignVersion, and all DTOs
  • Extend BOM calculator to account for overhang in rafter length, sheathing area, and ridge board length
  • Extend STL exporter roof geometry past walls by overhang amount
  • Add "Roof Overhang" row to PDF report dimensions table
  • Add "Roof Overhang (in)" input to DesignPanel UI and wire overhang into 3D roof rendering
  • Add backend tests for overhang BOM impact and integration round-trip tests
  • Add frontend test for overhang input onChange

Test plan

  • dotnet build ShedBuilder.sln compiles cleanly
  • dotnet test — 192 backend tests pass (includes 6 new overhang tests)
  • npm test — 139 frontend tests pass (includes 1 new overhang test)
  • Manual: verify overhang input appears in DesignPanel with default 12
  • Manual: set overhang to 0 → roof flush with walls in 3D
  • Manual: set overhang to 24 → roof extends 2 ft past walls
  • Manual: download PDF → "Roof Overhang: 12"" in dimensions

🤖 Generated with Claude Code

Add a RoofOverhangInches field (default 12") throughout the full stack:
database models, API DTOs, BOM calculator, STL exporter, PDF report,
3D viewer, and design panel UI. The overhang extends the roof past
walls on all edges and is configurable from 0-36 inches.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@toddaheath toddaheath merged commit ce3f452 into main Mar 2, 2026
17 checks passed
@toddaheath toddaheath deleted the feature/roof-overhang branch March 2, 2026 18:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant