/CleanArchitecture

Pragmatic Clean Architecture

Primary LanguageC#MIT LicenseMIT

Bookify

Clean Architecture application

  • Rich domain models.
  • CQRS pattern
  • Authentication using an external identity provider (Key Cloak)
  • Authorization implementing Role-based, Permission-based and Resource-based authorization
  • Example of minimal API (Bookify.API.BookingsEndpoints)
  • Some Unit tests + Architecture Tests
  • and more..

How to run this application

  • Have Docker installed and .Net 7+
  • If the first time running, open Program.cs and uncomment "app.SeedData();" to have some initial data for use. Remember to comment it back to avoid database growth.
  • There's a docker-compose file with everything already set up to run (API, Database, Key cloak).

How to create a Database Migration

  • Set the startup project as Bookify.API, open the Package Manager Console, and select src/Bookify.Infrastructure
  • Add-Migration Migration_Name
  • For this project, using DEVELOPMENT, it will apply automatically (see Program.cs) the migration when you run the API

This project is a result of the learnings from Milan Jovanović Pragmatic Clean Architecture Course.