Added readme
This commit is contained in:
@@ -0,0 +1,120 @@
|
||||
# PostFundManagement (PFM) Platform
|
||||
|
||||
An enterprise system designed to manage the entire post-funding grant and project lifecycle. PFM provides end-to-end oversight across strategic portfolios, programme allocation, project execution tracking, financial disbursements, monitoring & evaluation (M&E), and candidate notifications.
|
||||
|
||||
---
|
||||
|
||||
## 🏛️ System Architecture & Domain Model
|
||||
|
||||
The application follows a modular, hierarchical architecture where high-level funding directives cascade into measurable project outcomes and evidence verification.
|
||||
|
||||
[Portfolios] ───> [Programmes] ───> [Projects] ───> [Awards] ───> [Contracts] ───> [Beneficiaries] ──> [Outcomes]
|
||||
│ │ │
|
||||
▼ │ ▼
|
||||
[Rules] ├─> [Milestones] ──> [Activities] ──> [Evidences]
|
||||
├─> [Disbursements]
|
||||
├─> [Indicators]
|
||||
├─> [Risks] & [Issues]
|
||||
└─> [SiteVisits] & [ComplianceItems]
|
||||
|
||||
### **1. Portfolio & Programme Governance**
|
||||
* **Portfolios**: Top-level containers for strategic investment themes.
|
||||
* **Programmes**: Direct implementation vehicles linked to specific financial instruments (`Instruments`) and operational guidelines (`Rules`).
|
||||
|
||||
### **2. Project Execution & Monitoring**
|
||||
* **Projects**: Central operational units categorized by `IndustrySector` and `ProjectType`.
|
||||
* **Milestones & Activities**: Project progress is tracked through structured milestones. Project Managers author `Activities` against specific milestones to log ground work.
|
||||
* **Risks, Issues & Compliance**: Managed via dedicated tracking logs (`Risks`, `Issues`, `ComplianceItems`, `ChangeRequests`) to maintain project integrity.
|
||||
|
||||
### **3. Grants, Contracting & Disbursements**
|
||||
* **Awards & Contracts**: Binding grant agreements signed with target `Organisations`.
|
||||
* **Beneficiaries & Outcomes**: Social and economic impact measurement down to individual beneficiary groups.
|
||||
* **Disbursements**: Milestone-gated tranche releases tied to approved evidence and verification audits.
|
||||
|
||||
### **4. Monitoring, Evaluation & Evidence (M&E)**
|
||||
* **Indicators**: KPI baseline, target, and actual metrics tracking.
|
||||
* **Evidences**: Verifiable artifacts (`EvidenceType`) uploaded alongside activities, indicators, or milestones.
|
||||
* **Site Visits**: Independent audit logs (`SiteVisits`) submitted by field inspectors.
|
||||
|
||||
### **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.
|
||||
|
||||
---
|
||||
|
||||
## 🧩 Key System Enums
|
||||
|
||||
| Enum | Scope | Purpose |
|
||||
| :--- | :--- | :--- |
|
||||
| `IndustrySector` | Project Domain | Standardizes reporting across sectors (e.g., ICT, Agriculture, Manufacturing). |
|
||||
| `ProjectType` | Project Domain | Classifies project scope (e.g., R&D, Infrastructure, Capacity Building). |
|
||||
| `EvidenceType` | M&E / Verification | Categorizes uploaded proof (e.g., Attendance Register, Geotagged Photo, Bank Statement). |
|
||||
| `NotificationPlatform` | System / Comms | Outlines dispatch channels (Email, SMS, WhatsApp, Push, Webhooks). |
|
||||
| `NotificationStatus` | System / Comms | Tracks communication lifecycle (Pending, Queued, Sent, Delivered, Failed). |
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Tech Stack & Patterns
|
||||
|
||||
* **Backend Framework**: .NET 8 / 9 C# Web API
|
||||
* **Database**: PostgreSQL
|
||||
* **ORM**: Entity Framework Core (Fluent API Configuration)
|
||||
* **Architecture**: Clean Architecture / Domain-Driven Design (DDD) with CQRS (`MediatR`)
|
||||
* **Utilities**: `Humanizer` (Automated entity-to-table pluralization)
|
||||
|
||||
---
|
||||
|
||||
## 📁 Solution Structure
|
||||
|
||||
```text
|
||||
src/
|
||||
├── PostFundManagement.Domain/ # Core Domain Entities, Enums & Interfaces
|
||||
├── PostFundManagement.Infrastructure/ # EF Core Configurations, DbContext, Migrations
|
||||
├── PostFundManagement.Application/ # CQRS Handlers, DTOs, Business Rules & Logic
|
||||
└── PostFundManagement.Api/ # REST Controllers, Middleware, Auth & Swagger
|
||||
```
|
||||
|
||||
## 🚀 Getting Started
|
||||
|
||||
### Prerequisites
|
||||
|
||||
.NET 8.0 SDK or higher
|
||||
PostgreSQL 14+
|
||||
dotnet-ef CLI Tool (dotnet tool install --global dotnet-ef)
|
||||
|
||||
## Setup & Execution
|
||||
|
||||
## Clone Repository
|
||||
|
||||
1. Clone Repository:
|
||||
|
||||
```bash
|
||||
git clone [https://github.com/your-org/PostFundManagement.git](https://github.com/your-org/PostFundManagement.git)
|
||||
cd PostFundManagement
|
||||
```
|
||||
|
||||
2. Configure Database Connection:
|
||||
Update appsettings.Development.json in the API project with your local PostgreSQL details:
|
||||
|
||||
```json
|
||||
{
|
||||
"ConnectionStrings": {
|
||||
"DefaultConnection": "Host=localhost;Database=pfm_db;Username=postgres;Password=your_password"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
3. Apply Database Migrations:
|
||||
|
||||
```bash
|
||||
dotnet ef database update --project src/PostFundManagement.Infrastructure
|
||||
```
|
||||
|
||||
4. Launch Application:
|
||||
|
||||
```bash
|
||||
dotnet run --project src/PostFundManagement.Api
|
||||
```
|
||||
|
||||
## 📄 License
|
||||
|
||||
Internal Proprietary Software — All rights reserved.
|
||||
Reference in New Issue
Block a user