A centralized, component-based notification hub designed to handle multi-application alerts with high reliability and embedded tracking metrics.
The PNS is a decoupled service built to solve code redundancy and lack of user engagement metrics in enterprise environments. It provides a single RESTful API hub for all outbound communications (Email, SMS, internal alerts).
Developed during internship at Africom Technologies PLC.
- Clean Architecture: Domain-driven design with CQRS and Mediator patterns.
- Enhanced Email Tracking: Unique tracking pixel injection to monitor real-time email open rates.
- Bulk Notifications: Efficient batch processing for high-volume deployments.
- Interactive Dashboard: Modern React-based UI for managing clients and viewing analytics.
- Self-Documented API: Integrated Swagger UI for easy client integration.
- Backend: .NET 9 (ASP.NET Core / C#)
- Data Access: Entity Framework Core
- Database: SQL Server
- Messaging Pattern: MediatR (CQRS)
- Frontend: React, Tailwind CSS, Shadcn UI
- DevOps: Docker, GitHub Actions (CI/CD)
- Architecture Overview - Deep dive into patterns and system design.
- Internship Report - Full project background, objectives, and findings.
- Frontend Guide - Setup and development for the dashboard.
- .NET 9 SDK
- Node.js (v20+)
- SQL Server (LocalDB or Express)
docker-compose up --build- Database: Update connection strings in
PNS/API/appsettings.json. - Backend:
cd PNS/API dotnet run - Frontend:
cd pns-dashboard npm install npm run dev
cd PNS
dotnet testThis project is licensed under the MIT License - see the LICENSE file for details.