juanluelguerre / LoanMe

Simple Microservices System to lear how to use Drive Driven Domain, CQRS, Data Driven, Kubernetes, and much more.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LoanMe Web

Is a SAMPLE ASP.NET Core Web App to show basic DevOps Steps, using Azure DevOps and Jenkins:

LoanMe APIs

  • Customers: Simple Data-Driven CRUD API for Customers.
  • Loan. Sample API using CQRS + Event Sourcing and DDD.

API Project:

  • Controller. Just a think controller/class to call the API logic.
  • Middlewares. ASP.NET MVC Middleware.
  • Filters. ASP.NET MVC Filters.
  • Application. API Logic

Customers Application Folder

LOAN Application Folder by Domain (Customers and Accounts):

Notes:

  • Services or Gateways class. Implementation from Domain interfaces to interact with Command and Query Handlers.
  • Command, Query, Handlers and Event: CRQS and Event Sourcing Pattern.
  • Models. Used by Controllers as Input requests/dtos.
  • ViewModels. Used by Controlloers as output as responses/projections. Also know as QueryResults by QueryHandlers.

Next steps

All those new Patterns, Tools and Platforms, will be Blog Post entries in elGuerre.com

Learning

  1. Everything using Docker
  2. Everything using Kubernetes
  3. RabitMQ or
  4. Apache Kafka as Message
  5. IstioBroker.

Azure

  1. Apply Azure Service BUS
  2. Save Events to Azure Streamstone
  3. Terraform

Runnng the App

  1. Docker for MySQL: .\deplo\mysql\start.cmd
  2. Docker for PostgreSQL: .\deploy\postgres\start.cmd
  3. Run Entity Framework Migration:
cd MyBudet\Api.Application.
dotnet ef migrations add Init --startup-project ..\MyBudget.Api\MyBudget.Api.csproj
dotnet ef database update --startup-project ..\MyBudget.Api\MyBudget.Api.csproj

Bugs and Issues found during Development

About

Simple Microservices System to lear how to use Drive Driven Domain, CQRS, Data Driven, Kubernetes, and much more.

License:MIT License


Languages

Language:C# 91.1%Language:HTML 4.2%Language:Batchfile 1.9%Language:Dockerfile 1.1%Language:Shell 1.0%Language:CSS 0.6%Language:JavaScript 0.1%