Skip to content

mks786/EmpowerID

Repository files navigation

Welcome To EmpowerID

Welcome to EmpowerID, an experimental application that integrates several cutting-edge technologies and architectural patterns. Your interest in this project is appreciated! If you find value in it, please consider giving it a ⭐ to show your support, which in turn motivates continuous improvement.


src
├── Gateway
│  ├── EmpowerID.Core
│  └── EmpowerID.Core.Infrastructure
│
├── Gateway
│   └── EmpowerID.ApiGateway
│
├── Identity
│   └── EmpowerID.IdentityServer
│
├── Services
│   ├── EmpowerID.Posts
│   └── EmpowerID.UserManagement
│
└── docker-compose
  • Core
    Defines abstract building blocks utilized across all projects.

  • Core.Infrastructure
    Contains abstractions and infrastructure implementations for use by microservices and their dependencies.

  • Identity § Gateway
    Encompasses project implementations that intersect multiple microservices, such as IdentityServer and API Gateway .

  • Services
    Backend microservices are structured in a vertically sliced manner with API, Application, Domain, and Infrastructure layers.

      ├── EmpowerID.Posts
      │   ├── API
      │   ├── Application
      │   ├── Domain
      │   └── Infrastructure
    
    • API
      Provides a RESTful interface for communication between client and server.

    • Application
      Orchestrates interactions between the external world and the domain, executing application tasks through use cases by managing commands and queries.

    • Domain
      Implements domain logic through aggregates, commands, value objects, domain services, repository definitions, and domain events.

    • Infrastructure
      A supporting library for upper layers, handling infrastructural concerns such as data persistence via repository implementations, database mapping, and external integrations.


Technologies used

  • ASP.NET Core API and C# 12 for cross-platform backend with:
    • .NET 8
    • Ocelot 22.0.1
    • Marten 6.4.1
    • MSSQL 2019
    • Entity Framework Core 8.0.0
    • Postgres for Entity Framework Core 8.0.0
    • ASP.NET Core Identity 8.0.0
    • ASP.NET Core Authentication JwtBearer 8.0.0
    • Duende IdentityServer 6.3.8
    • MediatR 12.2.0
    • Polly 8.2.1
    • Fluent Assertions 6.12.0
    • XUnit 2.6.5
    • NSubstitute 5.1.0
    • Swagger 6.5.0
    • Confluent Kafka 2.3.0

    Running Instructions

    Running Microservices with Docker
    The project is designed to be easily run within Docker containers. Simply follow these steps:

    1. Ensure you have Docker installed on your system.
    2. Using a terminal, execute the following command:

    $ docker-compose up

    Alternatively, you can set the docker-compose.dcproj as the Startup project in Visual Studio if you prefer to run it while debugging.

Releases

No releases published

Packages

No packages published