How dmangubat0646/vertical-slice works
This is a Minimal API for student, course, admission, and employee management, organized as vertical slices with custom CQRS handlers, Result-based errors, and EF Core persistence. The main workflow is an HTTP request entering a feature endpoint, invoking its application operation, and reading or writing through the database abstraction. The README documents the student/course/admission API and validation; the tree and source index also show employee slices and user persistence. Some links are documented at architecture level because the relevant implementation excerpts are incomplete.
Main entry points: AppDbContext.cs EF Core Context · Admissions Admission Operations · IAppDbContext.cs Database Abstraction · Students Student Operations
Components 26
HTTP API
- Student Endpoints
Api/Features/Students/StudentEndpoints.cs - Course Endpoints
Api/Features/Courses/CourseEndpoints.cs - Admission Endpoints
Api/Features/Admissions/AdmissionEndpoints.cs - Employee Endpoints
Api/Features/Employees/EmployeeEndpoints.cs - API Startup
Api/Program.cs - HTTP Result Mapping
Api/Common/Extensions/ResultExtensions.cs
Feature Slices
- Student Operations
Application/Features/Students - Course Operations
Application/Features/Courses - Admission Operations
Application/Features/Admissions - Employee Operations
Application/Features/Employees - Student Validation
Application/Features/Students/CreateStudent/CreateStudentValidator.cs - Course Validation
Application/Features/Courses/CreateCourse/CreateCourseValidator.cs - Admission Validation
Application/Features/Admissions/CreateAdmission/CreateAdmissionValidator.cs - Employee Validation
Application/Features/Employees/CreateEmployee/CreateEmployeeValidator.cs
Application Core
- CQRS Contracts
Application/Abstractions/Messaging - Result Pattern
Domain/Common/Result.cs - Database Abstraction
Application/Abstractions/Data/IAppDbContext.cs
Domain Model
- Student Entity
Domain/Entities/Student.cs - Course Entity
Domain/Entities/Course.cs - Admission Model
Domain/Entities/Admission.cs - Admission Courses
Domain/Entities/AdmissionCourse.cs - Employee Entity
Domain/Entities/Employee.cs - Application User
Domain/Entities/ApplicationUser.cs
Persistence
- EF Core Context
Infrastructure/Persistence/AppDbContext.cs - Seed Data
Infrastructure/Persistence/DbSeeder.cs
Other components
- API Client
Connections 30
- API Client → Student Endpoints: requests
- API Client → Course Endpoints: requests
- API Client → Admission Endpoints: requests
- Student Endpoints → Student Operations: dispatches
- Course Endpoints → Course Operations: dispatches
Api/Features/Courses/CourseEndpoints.cs - Admission Endpoints → Admission Operations: dispatches
Api/Features/Admissions/AdmissionEndpoints.cs - Employee Endpoints → Employee Operations: dispatches
Api/Features/Employees/EmployeeEndpoints.cs - Student Operations → Student Validation: validates
- Course Operations → Course Validation: validates
- Admission Operations → Admission Validation: validates
- Employee Operations → Employee Validation: validates
- Student Operations → CQRS Contracts: uses contracts
Api/Program.cs - Course Operations → CQRS Contracts: uses contracts
Api/Program.cs - Admission Operations → CQRS Contracts: uses contracts
Api/Features/Admissions/AdmissionEndpoints.cs - Employee Operations → CQRS Contracts: uses contracts
Api/Features/Employees/EmployeeEndpoints.cs - Student Operations → Database Abstraction: accesses data
Application/Features/Students/GetAllStudents/GetAllStudentsQueryHandler.cs - Course Operations → Database Abstraction: accesses data
Application/Features/Courses/GetAllCourses/GetAllCoursesQueryHandler.cs - Admission Operations → Database Abstraction: accesses data
Application/Features/Admissions/GetAdmissionById/GetAdmissionByIdQueryHandler.cs - Employee Operations → Database Abstraction: accesses data
Application/Features/Employees/GetAllEmployees/GetAllEmployeesQueryHandler.cs - EF Core Context → Database Abstraction: implements
Infrastructure/Persistence/AppDbContext.cs - EF Core Context → Student Entity: maps
Infrastructure/Persistence/AppDbContext.cs - EF Core Context → Course Entity: maps
Infrastructure/Persistence/AppDbContext.cs - EF Core Context → Admission Model: maps
Infrastructure/Persistence/AppDbContext.cs - EF Core Context → Admission Courses: maps
Infrastructure/Persistence/AppDbContext.cs - EF Core Context → Employee Entity: maps
Infrastructure/Persistence/AppDbContext.cs - EF Core Context → Application User: maps
Infrastructure/Persistence/AppDbContext.cs - Admission Operations → Result Pattern: returns outcomes
Application/Features/Admissions/GetAdmissionById/GetAdmissionByIdQueryHandler.cs - Admission Endpoints → HTTP Result Mapping: maps results
Api/Common/Extensions/ResultExtensions.cs - API Startup → EF Core Context: configures
Api/Program.cs - API Startup → Seed Data: runs seeding