Skip to content

About

Employee Notification System built with Clean Architecture, Dependency Injection & Strategy Pattern in .NET 8

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

🏗️ Clean Architecture — Notification Service

A production-ready Employee Notification System built with Clean Architecture, Dependency Injection, and Strategy Pattern in .NET 8.


📐 Architecture

Presentation (WinForms)
        ↓
Application (NotificationManager)
        ↓
Domain (Interfaces + Entities)
        ↑
Infrastructure (Email, SMS, WhatsApp)

🗂️ Project Structure

Project Type Responsibility
CleanArch.Domain Class Library Entities & Interfaces
CleanArch.Application Class Library Business Logic
CleanArch.Infrastructure Class Library Email, SMS, WhatsApp
CleanArchitecture-NotificationService WinForms App UI & DI Setup

✅ Design Patterns Used

  • Clean Architecture — Dependency rule strictly followed
  • Dependency Injection — Loosely coupled services
  • Strategy Pattern — Notification channel at runtime
  • SOLID Principles — Especially Open/Closed Principle

🔔 Notification Channels

Channel Status
Email ✅ Implemented
SMS ✅ Implemented
WhatsApp 🔜 Ready to plug in

🚀 How to Run

git clone https://github.com/ITHunters/CleanArchitecture-NotificationService.git
  1. Open .sln in Visual Studio 2022
  2. Set startup project → CleanArchitecture-NotificationService
  3. Press F5

💡 Adding New Notification Channel

// 1. Infrastructure mein class banao
public class WhatsAppNotification : INotificationService
{
    public string Channel => "WhatsApp";
    public async Task SendAsync(NotificationRequest request) { }
}

// 2. Program.cs mein register karo
services.AddScoped<INotificationService, WhatsAppNotification>();

// Domain ya Application touch nahi karna! ✅

👨‍💻 Author

Haroon Siddique — @ITHunters

About

Employee Notification System built with Clean Architecture, Dependency Injection & Strategy Pattern in .NET 8

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages