⭐ This is a project demonstrating microservices-based event management system. The backend is built with .NET Core, applying Domain-Driven Design (DDD), Vertical Slice Architecture, and Clean Architecture principles. The frontend is developed using React with a focus on modern web technologies and best practices.
- Building a cloud-native application with .NET Core
-
Docker
andDocker Compose
for containerization - Using
Vertical Slice Architecture
andClean Architecture
for organizing the codebase - Using
Domain-Driven Design
to design the domain model - Implementing the
CQRS
pattern withMediatR
(including Pipelines for validation and logging) - Using
RabbitMQ
on topMassTransit
for messaging - Identity and Access Management with Keycloak
- Secure inter-service communication using
gRPC
withKeycloak
- API Gateway using
YARP
- Using
Marten
withPostgreSQL
as a document DB - Implementing
Entity Framework
andDapper
for separate read and write models -
Redis
for Caching (Output, Response, and Distributed Caching) - Using
Minimal API
withCarter
- Input validation using
FluentValidation
- Payments integration with
Stripe
- Notifications using
SignalR
andBackground Service
.
- Frontend built using
React
andTypeScript
- Applying Vertical Slice Architecture on the frontend as well
- State management and server-state synchronization with
React Query
- Styling with
Tailwind CSS
andShadcn
-
OIDC Client
withPKCE
flow for secure authentication - Payment processing with
Stripe.js
- Real-time notifications with
SignalR.js
- Basket: Manages user shopping cart information.
- Booking: Handles user order information and processing.
- Discount: Provides discount information for events and applies discounts to orders.
- Event: Stores and manages event information, including creator, venue, start time, maximum attendees, etc.
- Notification: Sends notifications to users using a background service..
- Payment: Processes one-time payments using Stripe.
- Storage: Manages static files such as images and videos.
This project is licensed under the MIT License - see the LICENSE file for details.