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.
- 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
| 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 |
| Role | Password | |
|---|---|---|
| Admin | [email protected] | 123456 |
To run the project locally:
git clone https://github.com/KristiyanEnchev/MessagingMicroservices.gitcd MessagingMicroservices/docker-compose up -dUpdate 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
- .NET 8.0
- ASP.NET Core WebAPI
- Entity Framework Core 8.0
- FluentValidation
- AutoMapper
- MediatR
- Hangfire
- RabbitMQ
- Redis
- SignalR
- Ocelot
- 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
- RabbitMQ - Event-driven communication
- Redis - Caching, deduplication, session memory
- Hangfire - Background job processing
- SQL Server - Primary DB
- React Client - Admin monitoring and management UI
This project is licensed under the MIT License - see the LICENSE file for details.
If you find this project useful, give it a ⭐ on GitHub and feel free to reach out:
