A sample full-stack application with a backend ASP.NET Core Web API project and a frontend Blazor Web Assembly project.
- ASP.NET Core Web API -v8
- Entity Framework Core -v8
- DDD (Domain-Driven Design)
- TDD (Test-Driven Development)
- BDD (Behavior-driven Development)
- Clean Architecture
- Clean Code
- Repository Design Pattern
- CQRS Design Pattern
- Mediator Design pattern
- PostgreSQL Database
- Blazor WebAssembly -v8
- Bootstrap -v5
- Docker
- xUnit for unit, integration and acceptance testing
- Testcontainers for integration and acceptance testing
- SpecFlow for acceptance testing
- NSubstitute for mocking
- Bogus for fake data generating
- MediatR for implementing mediator pattern
- FluentValidation for server-side validation
- Mapster for object mapping
- Blazor.Bootstrap for implementing user-interface
This repository is intended for demonstrating best practices in software development. In real-world applications, these practices should be selected based on the specific requirements of each project.
Run the following command in project directory:
docker-compose up -d
Docker compose in this application includes 4 services:
-
Web API application will be listening at
http://localhost:5000
-
Blazor webAssembly application will be listening at
http://localhost:8080
-
Postgres database will be listening at
http://localhost:5433
-
PgAdmin4 web interface will be listening at
http://localhost:8000
Open StudentManagement.Server.sln
file in visual studio, then in package manager console tab, run:
update-database
This command will generate the database schema in postgres container.
Make sure Docker engine is running, before running integration and acceptance tests.