Initial commit with inital CMS
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
# Application Design Plan — SlpModularCms.Api
|
||||
|
||||
## Stap 1: Analyse & Voorbereiding
|
||||
- [x] Requirements en User Stories analyseren op component-grenzen.
|
||||
- [x] Architecturale stijl (Clean Architecture) vertalen naar componenten.
|
||||
|
||||
## Stap 2: Ontwerp van Componenten & Verantwoordelijkheden
|
||||
- [x] **Core Framework Component**: Verantwoordelijk voor module-registratie, gedeelde interfaces en cross-cutting concerns.
|
||||
- [x] **Identity Module**: Gebruikersbeheer, authenticatie en de hiërarchische RBAC logica.
|
||||
- [x] **Availability Module**: De stub implementatie voor beschikbaarheidscontrole.
|
||||
- [x] **Web API Shell**: Het startpunt dat alles samenbrengt en Swagger host.
|
||||
- [x] Genereer `aidlc-docs/inception/application-design/components.md`.
|
||||
|
||||
## Stap 3: Interface & Method Design
|
||||
- [x] Definieer `IModule` contract voor module-initialisatie.
|
||||
- [x] Definieer `IAvailabilityService` contract.
|
||||
- [x] Definieer Identity services (bijv. `IUserService`, `IAuthService`).
|
||||
- [x] Genereer `aidlc-docs/inception/application-design/component-methods.md`.
|
||||
|
||||
## Stap 4: Service Orchestratie & Dependency Mapping
|
||||
- [x] Ontwerp het mechanisme voor het laden van modules (Dependency Injection patronen).
|
||||
- [x] Map de afhankelijkheden tussen Core, Modules en de API Shell.
|
||||
- [x] Genereer `aidlc-docs/inception/application-design/services.md`.
|
||||
- [x] Genereer `aidlc-docs/inception/application-design/component-dependency.md`.
|
||||
|
||||
## Stap 5: Consolidatie
|
||||
- [x] Genereer `aidlc-docs/inception/application-design/application-design.md`.
|
||||
- [x] Valideer op consistentie met de hiërarchische rollen (RBAC) en modulaire eisen.
|
||||
|
||||
---
|
||||
|
||||
## Vragen voor Application Design
|
||||
|
||||
Beantwoord de volgende vragen om het ontwerp te verfijnen. Vul je keuze in na de `[Answer]:` tag.
|
||||
|
||||
### Vraag 1: Module Loading Strategie
|
||||
Hoe moeten modules technisch geladen worden door het raamwerk?
|
||||
A) Statische referentie: Modules zijn project-referenties in de API Shell (.csproj references).
|
||||
B) Dynamisch laden: Modules worden als DLL's uit een folder geladen bij opstarten.
|
||||
C) Hybride: Statische referentie voor core modules, dynamisch voor optionele modules.
|
||||
X) Anders: ...
|
||||
|
||||
[Answer]: C
|
||||
|
||||
### Vraag 2: Identity Locatie
|
||||
Wordt Identity gezien als een kernonderdeel van het framework of als een uitwisselbare module?
|
||||
A) Kernonderdeel (Core): Altijd aanwezig, diep geïntegreerd.
|
||||
B) Module: Een aparte .csproj die optioneel/vervangbaar is.
|
||||
X) Anders: ...
|
||||
|
||||
[Answer]: A
|
||||
|
||||
### Vraag 3: Clean Architecture Diepte
|
||||
Welke project-structuur heeft de voorkeur voor de modules?
|
||||
A) Eenvoudig: Eén project per module met interne folderstructuur (API, Logic, Data).
|
||||
B) Volledige Clean Architecture: Meerdere projecten per module (bijv. Identity.Domain, Identity.Application, Identity.Infrastructure).
|
||||
C) API-First: Modules bevatten alleen Controllers en Application logica, maken gebruik van gedeelde Core Data laag.
|
||||
X) Anders: ...
|
||||
|
||||
[Answer]: A
|
||||
|
||||
### Vraag 4: RBAC Implementatie
|
||||
Hoe moet de hiërarchische RBAC (Owner > Admin > User) technisch worden afgedwongen?
|
||||
A) ASP.NET Core Policies: Gebruik maken van `AuthorizationPolicy` die de hiërarchie controleert.
|
||||
B) Custom Middleware: Een interceptor die bij elk request de rollen en hiërarchie valideert.
|
||||
C) Service-level checks: De logica wordt handmatig in de services aangeroepen voor elke actie.
|
||||
X) Anders: ...
|
||||
|
||||
[Answer]: A
|
||||
Reference in New Issue
Block a user