OrderFlow is a production-style inventory and order management API built with C#, ASP.NET Core Web API, Entity Framework Core, SQL Server, Redis, Docker, JWT auth, Swagger, and xUnit.
It is designed as a resume project for backend and full-stack roles that ask for .NET/C# experience.
- JWT login with a seeded admin user and role-based authorization
- Product, customer, and order REST APIs
- Inventory reservation during order creation
- SQL Server persistence with Entity Framework Core and an initial migration
- Redis-backed product detail caching with cache invalidation after inventory changes
- Global exception middleware with consistent JSON errors
- Swagger/OpenAPI docs with Bearer token support
- Docker Compose for API, SQL Server, and Redis
- xUnit tests for order inventory behavior and password hashing
- C# / .NET 8
- ASP.NET Core Web API
- Entity Framework Core
- SQL Server
- Redis distributed cache
- Docker and Docker Compose
- xUnit, FluentAssertions
- GitHub Actions CI
From this folder:
docker compose up --buildThe SQL Server container is pinned to linux/amd64 so it can run through Docker Desktop on Apple Silicon Macs.
Swagger will be available at:
http://localhost:8080/swagger
Seeded admin login:
email: admin@orderflow.local
password: ChangeMe123!
Use /api/auth/login to get a token, then click Authorize in Swagger and paste:
Bearer <your-token>
Prerequisites:
- .NET 8 SDK
- SQL Server running on
localhost:1433 - Redis running on
localhost:6379
Then run:
dotnet restore
dotnet run --project src/OrderFlow.Api/OrderFlow.Api.csprojThe app applies the initial migration and seed data when Database:AutoMigrate is true.
dotnet testOrderFlow - Inventory & Order Management API | C#, ASP.NET Core Web API, Entity Framework Core, SQL Server, Redis, Docker, xUnit
- Built a production-style backend for inventory, customer, and order workflows using ASP.NET Core Web API, JWT authentication, role-based authorization, DTO validation, global exception handling, and Swagger documentation.
- Designed SQL Server schema with Entity Framework Core migrations and LINQ queries; added Redis caching for high-read product endpoints with cache invalidation after inventory updates.
- Containerized the API with Docker Compose, added xUnit tests for inventory reservation and authentication utilities, and configured GitHub Actions CI for restore, build, and test.