After this lesson, you will be able to: Build a production-quality REST API in ASP.NET Core with EF Core, auth, tests, and Swagger, deploy to Azure App Service.
The C# resume project. Demonstrates everything from this subtrack and matches what enterprise C# jobs do day-to-day.
Three options; all hit the same skills.
Option A: Task Tracker API, users + projects + tasks with assignment. (Tests the relationships + queries.)
Option B: Recipe Book API, recipes + ingredients + ratings + search. (Tests full-text + complex queries.)
Option C: Habit Tracker API, habits + check-ins + streak calculation. (Tests time-based queries + aggregations.)
Same for all three options.
1. ASP.NET Core 8+ minimal API or controllers (your call)
2. EF Core with Postgres (or SQL Server / SQLite for dev)
3. At least 3 entities with relationships (one-to-many + many-to-many)
4. JWT auth, register + login endpoints
5. Input validation with FluentValidation or DataAnnotations
6. xUnit tests with at least 70% coverage
7. Swagger/OpenAPI docs via Swashbuckle
8. Dockerfile for the app
9. README with architecture diagram + setup instructions
10. Deployed to Azure App Service or Railway/Render with HTTPS
Order matters.
Milestone 1: Solution scaffolding. dotnet new sln → add API + Tests projects.
Milestone 2: Domain models + DbContext + first migration. EnsureCreated for dev.
Milestone 3: 3-5 CRUD endpoints with EF Core + return DTOs (not raw entities).
Milestone 4: JWT auth, register + login + protect endpoints with [Authorize].
Milestone 5: Tests, unit (xUnit) + integration (WebApplicationFactory).
Milestone 6: Swagger UI at /swagger; clean OpenAPI annotations.
Milestone 7: Dockerfile + docker-compose with Postgres.
Milestone 8: Deploy to Azure App Service (free tier) + connect to Azure Postgres Flexible Server.
Milestone 9: README + architecture diagram (use draw.io / Mermaid).
Azure App Service free tier (F1): perfect for portfolio. azure.com/free. Or Render/Railway/Fly.io for cheap .NET hosting. Make the URL clickable in your resume + README badge for CI status.
Sign in and purchase access to unlock this lesson.