Study Project
This repository contains the source code for a study project focused on building a Language Exchange and Learning Platform. The platform is designed to facilitate language exchange between users, providing features for messaging, user management, content sharing, and real-time notifications.
The project is organized into four main microservices:
- Messaging Service
- User Service
- Content Service
- Notification Service
Each service is built using .NET 8 and C# following the principles of Domain-Driven Design (DDD). The chosen technologies and architectural patterns for each service are as follows:
- Communication Mechanism: Kafka
- Architectural Patterns: CQRS, Event Sourcing
- Read Database: MS SQL
- Write Database: MongoDB
- **Manually implemented mediator
- Communication Mechanism: RabbitMQ
- Architectural Patterns: CQRS, Event Sourcing
- Write Database: PostgreSQL
- Read Database: Redis
- Library: MediatR
- Data Access: Dapper
- Search Engine: Elasticsearch
- Database: MongoDB
- Real-Time Communication: SignalR
- Database: MS SQL
-
Messaging Service:
- Navigate to the
MessagingService
directory - Run
docker-compose up
to start Kafka and other dependencies - Start the Messaging Service project
- Navigate to the
-
User Service:
- Navigate to the
UserService
directory - Run
docker-compose up
to start RabbitMQ and other dependencies - Start the User Service project
- Navigate to the
-
Content Service:
- Navigate to the
ContentService
directory - Start the Content Service project
- Navigate to the
-
Notification Service:
- Navigate to the
NotificationService
directory - Start the Notification Service project
- Navigate to the
Feel free to contribute to the project by opening issues, submitting pull requests, or suggesting improvements. This is a study project, and collaboration is encouraged to enhance the learning experience.
This project is licensed under the MIT License.