Welcome to My-Shop! 🎉
My-Shop is a modular monolith application built using Domain-Driven Design (DDD) and Clean Architecture principles. This application is designed to manage users, products, and orders effectively, ensuring a scalable and maintainable system.
🧑💻 User Management: Handle user registration, authentication, and profile management.
🛒 Product Management: Create, update, and view products in the system.
📦 Order Management: Enable users to place and manage orders for products.
⚡ Caching: Utilize Redis for efficient data caching and improved performance.
🐳 Docker: Containerize the application using Docker for easy deployment and scalability.
🗃️ PostgreSQL: Use PostgreSQL as the primary database for data storage.
The application follows a modular design with clear boundaries and responsibilities. The architecture diagram illustrates the main components and their interactions.
🖥️ .NET 8: For building the backend services.
💻 C#: Primary programming language for the application logic.
🏗️ Domain-Driven Design (DDD): To ensure a well-structured and scalable system.
🏛️ Clean Architecture: For maintaining a clear separation of concerns and modularity.
🔗 MassTransit: For service communication (planned integration).
🔄 MediateR: For module communication (in the modular monolith setup).
✅ FluentValidation: For input validation.
🗄️ Redis: For caching frequently accessed data.
📊 PostgreSQL: For relational database management.
📦 Docker: For containerization and deployment.
A glimpse of the user interface, showcasing the main features of the application.
🚀 To get started with My-Shop, follow these steps:
-
Clone the Repository:
git clone https://github.com/Ebrahem-Outlook/My-Shop.git