01Keep team rules in application services
TeamService checks membership limits, duplicates, valid names, and ownership. Centralizing those rules gives API callers a consistent result and makes the rules directly testable.
02 / Full-stack development
Domain rules, from interface to database.
The developed application combines a searchable Pokédex, account-scoped teams, team analysis, EF Core persistence, and a Docker Compose setup with SQL Server.
Development build. Implementation is on a development branch; public hosting and CI remain on the roadmap.
A team builder needs more than a list of Pokémon. It needs a consistent set of rules: private ownership, a maximum of six members, no duplicate members, and useful analysis of the resulting team.
An Angular client talks to ASP.NET Core controllers. Application services enforce team rules and calculate analysis, repositories handle persistence through EF Core, and SQL Server stores the data. A bounded-concurrency PokeAPI client supplies Pokémon data.
TeamService checks membership limits, duplicates, valid names, and ownership. Centralizing those rules gives API callers a consistent result and makes the rules directly testable.
Team lookups compare the owner ID and treat another user’s team as nonexistent. Authentication and ownership are separate responsibilities: a signed-in user still needs access to a particular resource.
TeamAnalysisService evaluates defensive type matchups and summarizes stats. It builds on the same owner-scoped team service rather than duplicating access logic.
Evidence from the project’s implementation, test harnesses, and recorded status.
The linked development branch contains the implemented application; the default branch is an earlier scaffold. Public hosting and CI remain on the roadmap. In-memory EF tests cover service rules; database-backed tests are the next step for SQL Server-specific behavior.
Run the two-user ownership journey against SQL Server, add database-backed checks where appropriate, and verify a reproducible hosted demo.