- StudentEnrollment.sln with all project references
- Directory.Build.props for shared build settings
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Environment:
- .env.example template with all configuration variables
- Database, API, GraphQL, and frontend settings
Documentation:
- Architecture Decision Records (ADR-001 to ADR-004)
- Deployment guide with Docker and K8s instructions
- OWASP security checklist
- Code review checklist
- Activity plan and deliverables
Architecture diagrams (PlantUML):
- Use cases, domain model, sequence diagrams
- Component, ER, state, and deployment diagrams
- C4 context diagram
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Docker:
- Multi-stage Dockerfile for API (.NET 10)
- Multi-stage Dockerfile for frontend (Angular + Nginx)
- docker-compose.yml with resource optimization
- Nginx reverse proxy configuration
- Health checks for all services
Kubernetes (k3s):
- Namespace and ConfigMap
- SQL Server StatefulSet with PVC
- API Deployment with HPA
- Frontend Deployment
- Services and Ingress
- Network policies for security
- Secrets management
Resource optimization:
- SQL Server Express with 1GB RAM limit
- API with 512MB limit
- Frontend with 128MB limit
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Domain Tests:
- StudentTests: entity creation and validation
- EmailTests: value object validation
- EnrollmentDomainServiceTests: business rules
Application Tests:
- EnrollStudentCommandTests: enrollment scenarios
- Max 3 subjects validation
- Same professor constraint
Uses xUnit, Moq, and FluentAssertions
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Driven Adapters (Persistence):
- AppDbContext with EF Core configurations
- Repository implementations (Student, Subject, Professor, Enrollment)
- UnitOfWork pattern for transactions
- DataLoaders for GraphQL N+1 optimization
- Database seeding with 5 professors and 10 subjects
- EF Core migrations for SQL Server
Driving Adapters (API):
- GraphQL API with HotChocolate
- Query and Mutation types
- Type definitions for all entities
- GraphQLErrorFilter for domain exceptions
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>