How rafaelanacleto/cleanarchmvc works
CleanArchMvc is a layered product-management application with both an MVC web UI and a JSON API, plus user registration and authentication. The main workflow is a user request entering a controller, passing through an application service and request handler, and reaching a repository for category or product operations. Sampled handlers confirm repository calls; the README is empty and service, repository, and startup implementations were not sampled, so their internal wiring and persistence details are not asserted.
Main entry points: ApplicationDbContext.cs Application Context · IAuthenticate.cs Authentication Contract · CategoryRepository.cs Category Repository Impl · ProdutctRepository.cs Product Repository Impl
Components 22
User Interfaces
- Web Categories
CleanArchMvc.WebUI/Controllers/CategoriesController.cs - Web Products
CleanArchMvc.WebUI/Controllers/ProductsController.cs - Web Account
CleanArchMvc.WebUI/Controllers/AccountController.cs - API Categories
CleanArchMvc.API/Controllers/CategoriesController.cs - API Products
CleanArchMvc.API/Controllers/ProductsController.cs - Token API
CleanArchMvc.API/Controllers/TokenController.cs
Application Operations
- Category Service
CleanArchMvc.Application/Services/CategoryService.cs - Product Service
CleanArchMvc.Application/Services/ProductService.cs - Category Handlers
CleanArchMvc.Application/Categories/Handlers/GetCategoriesQueryHandler.cs - Product Handlers
CleanArchMvc.Application/Products/Handlers/GetProductsQueryHandler.cs
Domain Model
- Category Repository
CleanArchMvc.Domain/Interfaces/ICategoryRepository.cs - Product Repository
CleanArchMvc.Domain/Interfaces/IProductRepository.cs - Category Entity
CleanArchMvc.Domain/Entities/Category.cs - Product Entity
CleanArchMvc.Domain/Entities/Product.cs - Authentication Contract
CleanArchMvc.Domain/Account/IAuthenticate.cs
Infrastructure
- Category Repository Impl
CleanArchMvc.Infra.Data/Repositories/CategoryRepository.cs - Product Repository Impl
CleanArchMvc.Infra.Data/Repositories/ProdutctRepository.cs - Application Context
CleanArchMvc.Infra.Data/Context/ApplicationDbContext.cs - Application Database
- Authentication Service
CleanArchMvc.Infra.Data/Identity/AuthenticateService.cs - ASP.NET Identity
Other components
- User
Connections 21
- User → Web Categories: requests pages
- User → Web Products: requests pages
- User → Web Account: manages account
- User → API Categories: sends requests
- User → API Products: sends requests
- User → Token API: requests token
- Web Categories → Category Service: calls
- Web Products → Product Service: calls
- API Categories → Category Service: calls
- API Products → Product Service: calls
- Token API → Authentication Contract: authenticates
- Web Account → Authentication Contract: uses
- Category Handlers → Category Repository: queries
- Product Handlers → Product Repository: queries
- Category Repository Impl → Category Repository: implements
- Product Repository Impl → Product Repository: implements
- Authentication Service → Authentication Contract: implements
- Authentication Service → ASP.NET Identity: uses
- Category Repository Impl → Application Context
- Product Repository Impl → Application Context
- Application Context → Application Database