Sistema CRM (Customer Relationship Management) desenvolvido com arquitetura moderna e padrões de design robustos.
- CQRS (Command Query Responsibility Segregation) - Separação de comandos e consultas
- Mediator Pattern - MediatR para desacoplamento e organização de handlers
- Repository Pattern - Abstração da camada de acesso a dados
- Service Layer - Lógica de negócio centralizada
- Clean Architecture - Separação em camadas (Domain, Application, Infrastructure)
Web.Api/
├── Domain/ # Entidades e interfaces
│ ├── Entities/ # Product
│ └── Interfaces/ # IProductRepository
├── Application/ # Lógica de negócio
│ ├── Commands/ # CreateProduct, UpdateProduct, DeleteProduct
│ ├── Queries/ # GetAllProducts, GetProductById
│ ├── DTOs/ # Data Transfer Objects
│ ├── Services/ # ProductService
│ └── Validators/ # FluentValidation
└── Infrastructure/ # Implementações
├── Data/ # ApplicationDbContext
└── Repositories/ # ProductRepository
- ASP.NET Core 8 - Framework web
- Entity Framework Core - ORM
- In-Memory Database - Banco de dados em memória para desenvolvimento
- MediatR - Implementação do padrão Mediator
- FluentValidation - Validação de comandos
- AutoMapper - Mapeamento de objetos
- ✅ CRUD completo de produtos
- ✅ Validação automática de comandos
- ✅ Tratamento de erros centralizado
- ✅ Padrão de resposta unificado (ApiResponse)
- ✅ Swagger/OpenAPI para documentação
- Standalone Components - Componentes independentes sem NgModules
- Lazy Loading - Carregamento sob demanda de módulos
- Reactive Forms - Formulários reativos com validação
- Component-based Architecture - Componentes reutilizáveis
- Service Layer - Camada de serviços para comunicação HTTP
UI/src/app/
├── api/ # Camada de comunicação com backend
│ ├── models/ # Interfaces TypeScript
│ └── services/ # ProductService
├── shared/ # Componentes e serviços compartilhados
│ ├── components/ # SearchBar, Pagination, Layout
│ └── services/ # ConfirmDialogService
└── modules/ # Módulos de features
└── products/ # CRUD de produtos
└── pages/ # ProductsList, ProductForm
- Angular 19 - Framework frontend
- PO-UI - Biblioteca de componentes UI corporativos
- RxJS 7.8 - Programação reativa
- TypeScript 5.7 - Superset tipado do JavaScript
- FormsModule - Two-way data binding
- ✅ CRUD completo de produtos
- ✅ Pesquisa em tempo real
- ✅ Paginação customizada (10 itens por página)
- ✅ Componentes reutilizáveis (SearchBar, Pagination)
- ✅ Validação de formulários
- ✅ Notificações de sucesso/erro
- ✅ Confirmação de exclusão
- ✅ Responsividade
- .NET 8 SDK
- Node.js 18+
- npm ou yarn
cd Web.Api
dotnet restore
dotnet runAPI disponível em: https://localhost:7044
cd UI
npm install
npm startAplicação disponível em: http://localhost:4200
- ✅ Listagem com pesquisa e paginação
- ✅ Cadastro de novos produtos
- ✅ Edição de produtos existentes
- ✅ Exclusão com confirmação
- ✅ Validação de dados (nome, preço, estoque)
| Tecnologia | Versão | Uso |
|---|---|---|
| .NET | 8.0 | Framework |
| Entity Framework Core | Latest | ORM |
| MediatR | Latest | Mediator Pattern |
| FluentValidation | Latest | Validação |
| AutoMapper | Latest | Mapeamento |
| Tecnologia | Versão | Uso |
|---|---|---|
| Angular | 19.2 | Framework |
| PO-UI | 19.33 | Componentes UI |
| RxJS | 7.8 | Programação Reativa |
| TypeScript | 5.7 | Linguagem |
- CQRS - Separação de operações de leitura e escrita
- Mediator - Desacoplamento de componentes
- Repository - Abstração de acesso a dados
- Service Layer - Lógica de negócio isolada
- DTO - Transferência de dados entre camadas
- Dependency Injection - Inversão de controle
┌─────────────┐ HTTP ┌──────────────┐
│ Angular │ ◄────────────► │ ASP.NET │
│ Frontend │ │ Backend │
└─────────────┘ └──────────────┘
│ │
│ │
┌───▼────┐ ┌────▼─────┐
│ PO-UI │ │ MediatR │
│ RxJS │ │ Handler │
└────────┘ └──────────┘
│
┌─────▼──────┐
│ Service │
│ Repository │
└────────────┘
│
┌─────▼──────┐
│ In-Memory │
│ Database │
└────────────┘
Este projeto é de uso educacional e demonstrativo.