Skip to content

BinaDev29/PNSFORALLAPP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Push Notification System (PNS)

Build Status License: MIT

A centralized, component-based notification hub designed to handle multi-application alerts with high reliability and embedded tracking metrics.

🚀 Overview

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.

Key Features

  • 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.

🛠️ Technology Stack

  • 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)

📂 Documentation

🏁 Getting Started

Prerequisites

  • .NET 9 SDK
  • Node.js (v20+)
  • SQL Server (LocalDB or Express)

Quick Start (Docker)

docker-compose up --build

Manual Setup

  1. Database: Update connection strings in PNS/API/appsettings.json.
  2. Backend:
    cd PNS/API
    dotnet run
  3. Frontend:
    cd pns-dashboard
    npm install
    npm run dev

🧪 Running Tests

cd PNS
dotnet test

📜 License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages