Sprint 7: add section engine
This commit is contained in:
75
docs/Section-Engine-Report.md
Normal file
75
docs/Section-Engine-Report.md
Normal file
@@ -0,0 +1,75 @@
|
||||
# Section Engine Report
|
||||
|
||||
## Scope
|
||||
|
||||
Sprint 7 introduced the generic section engine used by the homepage runtime path. The implementation stays within the frozen frontend architecture and does not change backend APIs, auth, payment, or bootstrap contracts.
|
||||
|
||||
The section engine now treats the homepage as a section collection rendered through the existing dynamic page layout pipeline:
|
||||
|
||||
- page config -> section engine -> section renderer -> widget host -> registered widget components
|
||||
|
||||
## Implemented Changes
|
||||
|
||||
### Section Metadata
|
||||
|
||||
- `src/app/shared/models/config/section.model.ts`
|
||||
|
||||
Added explicit section metadata for:
|
||||
|
||||
- layout strategy
|
||||
- layout columns/gap/alignment
|
||||
- desktop/tablet/mobile visibility flags
|
||||
|
||||
### Render Nodes
|
||||
|
||||
- `src/app/dynamic-renderer/section-renderer/section-renderer.model.ts`
|
||||
- `src/app/dynamic-renderer/section-renderer/section-renderer.service.ts`
|
||||
|
||||
Section render nodes now carry layout and visibility metadata forward from the shared section config.
|
||||
|
||||
### Section Engine
|
||||
|
||||
- `src/app/dynamic-renderer/section-engine/section-engine.service.ts`
|
||||
|
||||
Added the section engine orchestration service to build ordered page render models from section definitions.
|
||||
|
||||
### Page Renderer
|
||||
|
||||
- `src/app/dynamic-renderer/page-renderer/page-renderer.service.ts`
|
||||
|
||||
Delegates page model assembly to the section engine.
|
||||
|
||||
### Dynamic Layout
|
||||
|
||||
- `src/app/layouts/containers/dynamic-page-layout.component.ts`
|
||||
|
||||
The layout container now reads section layout strategy and visibility metadata when rendering sections.
|
||||
|
||||
### Homepage Migration
|
||||
|
||||
- `src/app/pages/home/home.component.ts`
|
||||
- `src/app/pages/home/home.component.html`
|
||||
- `src/assets/mock/bootstrap/homepage.json`
|
||||
|
||||
The homepage now loads the runtime page model and renders its section collection instead of hardcoding the hero and product carousel blocks directly in the template.
|
||||
|
||||
The existing category area remains on the homepage and still uses the category domain/facade path.
|
||||
|
||||
## Validation
|
||||
|
||||
Completed checks:
|
||||
|
||||
- Section layout and visibility metadata compile cleanly.
|
||||
- Page renderer delegates through the new section engine service.
|
||||
- Homepage composes the runtime page model through `DynamicPageLayoutComponent`.
|
||||
- The workspace build passes.
|
||||
|
||||
Build validation:
|
||||
|
||||
```bash
|
||||
npm run build
|
||||
```
|
||||
|
||||
## Stop Point
|
||||
|
||||
Sprint 7 section-engine groundwork is complete for the current homepage flow. Stop here and wait for approval before extending the section system to additional website pages or adding new widget/data resolvers.
|
||||
Reference in New Issue
Block a user