Skip to content

This repository hosts a suite of .NET 8 Messaging Microservices designed using Clean Architecture principles and Domain-Driven Design (DDD). These microservices include specialized APIs for handling SMS, Email, OTP generation, and notifications, orchestrated through an API Gateway using Ocelot.

License

Notifications You must be signed in to change notification settings

KristiyanEnchev/MessagingMicroservices

Repository files navigation

🧰 MessagingMicroservices (.NET 8 + React 18)

A scalable microservices-based communication platform built with Clean Architecture and Domain-Driven Design, integrating SMS, Email, OTP, Notifications, and Authentication, all orchestrated via an API Gateway with a powerful React-based admin dashboard.


MessagingMicroservices


🏗️ Architecture Overview

  • Backend: .NET 8 Microservices with Clean Architecture
  • API Gateway: Ocelot
  • Message Broker: RabbitMQ
  • Background Processing: Hangfire
  • Real-Time Updates: SignalR
  • Authentication: Modular Identity Service
  • Data Stores: MS SQL, Redis
  • Frontend: React 18 + TypeScript + TailwindCSS

🔥 Live Services (Local URLs)

Service URL
API Gateway http://localhost:5008
Identity API http://localhost:8080/swagger
Email API http://localhost:5070/swagger
SMS API http://localhost:5073/swagger
OTP API http://localhost:5072/swagger
Notification API http://localhost:5071/swagger
RabbitMQ Dashboard http://localhost:15672 (john123 / 123456)
Hangfire - Email http://localhost:5070/hangfire
Hangfire - SMS http://localhost:5073/hangfire
Hangfire - Notification http://localhost:5071/hangfire
Redis Commander http://localhost:8081 (masterauth / password)
SQLPad (MSSQL) http://localhost:3001 (admin / admin123)
React Admin Panel http://localhost:3000

🔐 Default Admin Credentials

Role Email Password
Admin [email protected] 123456

🧪 Try It Out

🚀 Prerequisites

🧱 Quick Start

To run the project locally:

git clone https://github.com/KristiyanEnchev/MessagingMicroservices.git
cd MessagingMicroservices/
docker-compose up -d

⚙️ Configuration Notes

Update these sections in appsettings.json or via environment variables for production use:

  • SMTP Settings (Email)
  • Twilio Settings (SMS)
  • Redis & RabbitMQ credentials
  • Connection Strings for each service
  • JWT & Auth Secrets in the Authentication service

🧰 Built With

🖥 Backend

🧪 Testing

🖼 Frontend (Admin Dashboard)

🧱 System Design

✅ Microservices

  • EmailService - SMTP-based mail sending
  • SMSService - Twilio-based SMS sending
  • OTPService - Secure OTP generation and validation
  • NotificationService - Internal user notifications
  • AuthenticationService - Login, JWT, Role/Claims

🧠 Supporting Infrastructure

  • RabbitMQ - Event-driven communication
  • Redis - Caching, deduplication, session memory
  • Hangfire - Background job processing
  • SQL Server - Primary DB
  • React Client - Admin monitoring and management UI

📸 Flow Diagram

Architectural Diagram

📜 License

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

🙋 Support & Feedback

If you find this project useful, give it a ⭐ on GitHub and feel free to reach out:

Facebook Instagram Gmail

About

This repository hosts a suite of .NET 8 Messaging Microservices designed using Clean Architecture principles and Domain-Driven Design (DDD). These microservices include specialized APIs for handling SMS, Email, OTP generation, and notifications, orchestrated through an API Gateway using Ocelot.

Topics

Resources

License

Stars

Watchers

Forks