Updated documentation
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user