Updated documentation

This commit is contained in:
2026-10-28 09:28:06 +02:00
parent b8c3201c58
commit 6114d8f457
4 changed files with 260 additions and 23 deletions
+23 -10
View File
@@ -41,6 +41,16 @@ The application follows a modular, hierarchical architecture where high-level fu
### **5. Notifications & Platform Services**
* Multi-channel delivery engine (`NotificationPlatform`) tracking candidate invitations, reminders, and status updates (`NotificationStatus`) across Email, SMS, WhatsApp, In-App, and Webhooks.
### **6. Background Processing & Distributed Jobs Engine**
* **`PostFundManagement.Jobs`**: Dedicated background execution host powered by **Quartz.NET (v4.6+)** with a PostgreSQL clustered JobStore (`pfm-scheduler`).
* **Decoupled Architecture**: `PostFundManagement.Api` serves strictly as a scheduler client (`ZeroSizeThreadPool`), dispatching events into the cluster while leaving execution exclusively to `PostFundManagement.Jobs` (`MaxConcurrency = 5`).
* **Event-Driven Execution**: Domain events implementing `IEvent : INotification` are mediated and serialized into `MediatorJob<TNotification>`.
* **Core Automated Operations**:
- **Automated Project Monitoring & Reminders**: Tracks milestones, evaluates planned vs actual deadlines, flags overdue statuses, and emits reminders to Grantees/Partners.
- **Risk Monitoring & Automated Notifications**: Evaluates risk registers, tracks Key Risk Indicators (KRIs), flags score creep, and escalates overdue mitigation actions.
- **Email Processing**: Asynchronously processes `NotificationPlatform.Email` records via MailKit/MimeKit SMTP.
- **Recurring & Cascading Jobs**: `JobsWorker` registers recurring cron schedules on startup and can trigger isolated one-time jobs when sub-activities cannot be executed directly by another job.
---
## 🧩 Key System Enums
@@ -68,6 +78,7 @@ The application follows a modular, hierarchical architecture where high-level fu
* **Object Storage**: S3-compatible storage (Garage S3 / AWS S3)
* **Caching & OutputCache Invalidation**: Redis StackExchange + ASP.NET Core `OutputCaching` (2-minute base policy) coupled with TanStack Query v5 and Axios client-side mutation versioning (`_v` parameter) for instantaneous reads and guaranteed zero-staleness on mutations
* **Telemetry**: OpenTelemetry Metrics, Traces & Logs with Aspire / OTLP
* **Distributed Background Jobs**: Quartz.NET 4.6+ with clustered PostgreSQL JobStore (`pfm-scheduler`), separating the API (Scheduler Client with `ZeroSizeThreadPool`) from `PostFundManagement.Jobs` (Worker Execution Daemon with `MaxConcurrency = 5`)
---
@@ -105,16 +116,18 @@ For in-depth architectural and operational specifications, see:
```text
PostFundManagement/
├── PostFundManagement.Domain/ # Core Domain Entities, Enums & Interfaces
├── PostFundManagement.Infrastructure/ # EF Core 10, PostgreSQL, Skoruba STS, Migrations
├── PostFundManagement.Application/ # CQRS Handlers, DTOs, Business Rules & Validations
├── PostFundManagement.Api/ # REST Endpoints, Middleware, Auth & Swagger/Scalar
├── PostFundManagement.Tests/ # Unit & Integration Test Suite
├── PostFundManagement.ConsoleUI/ # Internal Staff & Admin Web Portal (React 19 + Vite)
├── PostFundManagement.PartnerUI/ # External Grantee / Recipient Portal (React 19 + Vite)
├── Architecture.md # System Architecture, RBAC & Maker-Checker Spec
├── Processes.md # Operational Grant Lifecycle & Process Flows
└── docker-compose.yml # Container orchestration
├── PostFundManagement.Domain/ # Core Domain Entities, Enums, Value Objects & Abstractions (IEvent)
├── PostFundManagement.Infrastructure/ # EF Core 10, PostgreSQL (Npgsql), Migrations, Data Protection
├── PostFundManagement.Application/ # CQRS Handlers, Mediator, DTOs, Validations, S3, Email, Job Orchestrator
├── PostFundManagement.Api/ # ASP.NET Core Minimal APIs / Carter, Auth (OIDC), Swagger/Scalar, Versioning
├── PostFundManagement.Jobs/ # Dedicated Quartz.NET Background Worker Host (Recurring & Event-Driven Jobs)
├── PostFundManagement.Tests/ # Unit & Integration Test Suite (xUnit, Coverlet)
├── PostFundManagement.ConsoleUI/ # Internal Staff & Admin Web Portal (React 19 + Vite + Tailwind 4)
├── PostFundManagement.PartnerUI/ # External Grantee / Recipient Portal (React 19 + Vite + WebGL OGL)
├── Architecture.md # System Architecture, Security, RBAC, Caching & Quartz Spec
├── Processes.md # Operational Grant Lifecycle, Maker-Checker & Background Workflows
├── GEMINI.md # Master Technical & Architecture Roadmap (SRS v2.0 Alignment)
└── docker-compose.yml # Container orchestration for API and Frontends
```
## 🚀 Getting Started