75 lines
2.4 KiB
Markdown
75 lines
2.4 KiB
Markdown
# 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. |