Initial commit with inital CMS

This commit is contained in:
2026-06-15 17:00:16 +02:00
commit 95d986790e
132 changed files with 7624 additions and 0 deletions
@@ -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