This guide walks you through cloning ClinicFlow, starting a local PostgreSQL 17 database with Docker Compose, applying Entity Framework Core migrations, and confirming everything works by running the test suite. The whole process takes fewer than five minutes on a machine that already has .NET 10 and Docker installed.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/0Crazy-0/ClinicFlow/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
Before you start, make sure the following tools are available on your machine:- .NET 10 SDK — required to build and run the solution
- Docker / Docker Compose — required to run the PostgreSQL container
Start PostgreSQL with Docker Compose
ClinicFlow ships a Start the container in detached mode:The container is named
docker-compose.local.yml file that spins up a PostgreSQL 17 Alpine container pre-configured for local development:ClinicFlowDb_Local and listens on the default PostgreSQL port 5432. Data is persisted in the named volume clinicflow-db-data so it survives container restarts.Confirm the container is healthy:Apply EF Core migrations
Migrations live in Apply all pending migrations from the project root:EF Core will run every migration in chronological order, creating all tables, check constraints, and column configurations. When
ClinicFlow.Infrastructure. The ApplicationDbContextFactory provides the design-time DbContext that the EF Core CLI uses when running migrations outside of a host application.Before running migrations, make sure your connection string in ClinicFlow.Infrastructure/appsettings.json (or the local environment configuration) matches the Docker container credentials:SeedOnStartup is true, the DbSeeder will also populate the database with Bogus-generated sample data on the next DbContext initialization.Run the tests to verify
The solution includes three test projects — A successful run with all tests passing confirms that:
ClinicFlow.Domain.Tests, ClinicFlow.Application.Tests, and ClinicFlow.Infrastructure.Tests. Run them all from the repo root with a single command:- The domain entities and services enforce their business rules correctly.
- Application command and query handlers behave as expected.
- Infrastructure components (repositories, UnitOfWork, configurations) interact with the database correctly.
What’s next
ClinicFlow does not yet have an HTTP API layer (no ASP.NET Core Web API or minimal API host project). Integration with the application currently happens directly through MediatR — send a command or query via
IMediator.Send() from any host that registers both AddApplicationServices() and AddInfrastructureServices().- Architecture — understand the three-layer structure and how the CQRS pipeline is wired.
- Domain Model — learn about the entities, value objects, and domain events driving the business logic.
- Appointments — trace the full appointment lifecycle from scheduling through completion or cancellation.