HomeChallengesRepsProblemsLeaderboardTake a challenge

Where Code Lives

Seven files, seven projects, and one rule that does most of the work: the DTO layer must not be able to see an entity. Place each file where the dependency graph allows it.

Intermediate20 min on the clock5 graded checks · 100 pointsLayered Architecture and Modular SystemsPro

AssumesVertical Slice RefactorThis sprint argues the opposite side of the vertical-slice refactor. It reads as dogma without the case it is answering.

Graded by reading your code against the checklist below.

What you build

  • The entity and its repository INTERFACE in Domain
  • The repository IMPLEMENTATION in EntityFrameworkCore
  • DTOs and the app service interface in Application.Contracts
  • The app service implementation in Application
  • Enums and anything genuinely shared in Domain.Shared

Done means

No project references one above it, and no entity type appears in Application.Contracts.

How it is graded

Published in full, before you start — every point is one of these and there is nothing else.

  1. The entity is in Domain, as an aggregate root+20Layers and dependency direction
  2. The repository interface is in Domain+20Layers and dependency direction
  3. The implementation is in EntityFrameworkCore+20Layers and dependency direction
  4. DTOs and the service interface are in Application.Contracts+20Layers and dependency direction
  5. No entity type leaks into Application.Contracts+20Layers and dependency direction

What it teaches

The rest of Layered Architecture and Modular Systems