Skip to content

Demonstration of modular monolith architecture designed following Domain-Driven Design, integrated via domain events using Wolverine, with auditability enabled by event sourcing principles.

License

Notifications You must be signed in to change notification settings

adamzalesak/MaterialPurchase

Repository files navigation

Material Purchase

This project is part of a master's thesis focused on designing and implementing an architecture for a material ordering system.

Running the project

Requirements

To successfully run the project, you need to have the following tools installed on your machine:

Set up the database

Run a Docker container with SQL Server by the following command:

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=YourStrongPassword123" -p 1433:1433 -d mcr.microsoft.com/mssql/server:2022-latest

Go to the root directory of the project and build the SQL project by the following command:

dotnet build "./database/MaterialPurchase.Database.sqlproj"

Then publish the database to your local SQL Server by this command:

sqlpackage /Action:Publish /SourceFile:"./database/bin/Debug/MaterialPurchase.Database.dacpac" /TargetServerName:"localhost" /TargetDatabaseName:"MaterialPurchase" /TargetUser:"sa" /TargetPassword:"YourStrongPassword123" /TargetTrustServerCertificate:True

Seed the database

Then execute the seed script in /scripts/SeedData.sql to populate the database with some data:

sqlcmd -S localhost -U sa -P YourStrongPassword123 -d MaterialPurchase -i ./scripts/SeedData.sql

Run the project

Go to the root folder of the project and run the following command:

dotnet run --project "./src/MaterialPurchase/MaterialPurchase.csproj"

License

MIT License (MIT)

About

Demonstration of modular monolith architecture designed following Domain-Driven Design, integrated via domain events using Wolverine, with auditability enabled by event sourcing principles.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published