Skip to content

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 admin@admin.com 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

Contributors