Skip to content

oboukli/aktabook

Repository files navigation

Aktabook

Build and run unit and integration tests Code style check CodeQL analysis

Build Status Quality Gate Status

An experimental work-in-progress book data aggregator API, showcasing ASP.NET Core.

Happy flow

The following sequence diagram shows the basic happy flow of Aktabook.

sequenceDiagram
autonumber

actor client as Client

participant api as Aktabook Public API Service (ASP.NET Core)
participant msgbroker as Message Broker (RabbitMQ)
participant msgproc as Message Processor (NServiceBus)
participant database as Database (SQL Server)

participant openlibrary as Open Library
Note right of openlibrary: External API

client->>api: POST Request book by ISBN
api-->>client: CREATED Request followup ID

api->>msgbroker: Send book information request message

msgbroker->msgproc: Read book information request message
activate msgproc

par
    msgproc->>database: Store request data
and
    msgproc->>openlibrary: GET book data
    openlibrary-->>msgproc: OK book data
end

msgproc->>database: Store book data
deactivate msgproc
Loading

Showcases

The following is a partial list of standards, practices, software, and ideas leveraged by this project:

  • .NET 8.0
  • .NET OpenAPI analyzers
  • .NET static analyzers
  • .NET Tools
  • ASP.NET Core
  • Azure Pipelines
  • C# 12
  • C# Script
  • Clean Architecture
  • Code test coverage with dotnet-coverage
  • CodeQL
  • Conventional Commits
  • DevSkim
  • dotnet security-scan
  • EditorConfig
  • EF Core
  • FluentAssertions
  • FluentValidation
  • GitHub Actions
  • Integration testing
  • Locked mode NuGet
  • Markdown
  • Markdownlint
  • MediatR
  • Mermaid
  • Migrations testing
  • Modern code style
  • NServiceBus
  • NSubstitute
  • Open Library API
  • OpenAPI/Swaggar
  • OpenTelemetry
  • RabbitMQ
  • ReSharper command line tools
  • Service health checks
  • SonarScanner
  • SQL Server
  • Strongly-typed approach
  • Structured logging with Serilog
  • Testing with a production-grade database engine
  • Unit testing with xUnit.net
  • xUnit.net Analyzers

License

This software is released under an MIT-style license. Copyright © 2024 Omar Boukli-Hacene.

SPDX license identifier: MIT.


Made for the joy of it 🐳

About

A microservices showcase in C#/.NET

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages