Skip to content

wnmunhoz/crm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CRM System

Sistema CRM (Customer Relationship Management) desenvolvido com arquitetura moderna e padrões de design robustos.

🏗️ Arquitetura

Backend (.NET 8)

Padrões e Tecnologias

  • 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)

Estrutura do Projeto

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

Tecnologias Principais

  • 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

Features

  • ✅ 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

Frontend (Angular 19)

Padrões e Tecnologias

  • 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

Estrutura do Projeto

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

Tecnologias Principais

  • 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

Features

  • ✅ 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

🚀 Como Executar

Pré-requisitos

  • .NET 8 SDK
  • Node.js 18+
  • npm ou yarn

Backend

cd Web.Api
dotnet restore
dotnet run

API disponível em: https://localhost:7044

Frontend

cd UI
npm install
npm start

Aplicação disponível em: http://localhost:4200


📋 Funcionalidades

Produtos

  • ✅ 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)

🛠️ Tecnologias Utilizadas

Backend

Tecnologia Versão Uso
.NET 8.0 Framework
Entity Framework Core Latest ORM
MediatR Latest Mediator Pattern
FluentValidation Latest Validação
AutoMapper Latest Mapeamento

Frontend

Tecnologia Versão Uso
Angular 19.2 Framework
PO-UI 19.33 Componentes UI
RxJS 7.8 Programação Reativa
TypeScript 5.7 Linguagem

📝 Padrões de Design Implementados

  • 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

🔄 Fluxo de Dados

┌─────────────┐      HTTP      ┌──────────────┐
│   Angular   │ ◄────────────► │  ASP.NET     │
│   Frontend  │                │  Backend     │
└─────────────┘                └──────────────┘
       │                              │
       │                              │
   ┌───▼────┐                   ┌────▼─────┐
   │ PO-UI  │                   │ MediatR  │
   │ RxJS   │                   │ Handler  │
   └────────┘                   └──────────┘
                                      │
                                ┌─────▼──────┐
                                │  Service   │
                                │ Repository │
                                └────────────┘
                                      │
                                ┌─────▼──────┐
                                │  In-Memory │
                                │  Database  │
                                └────────────┘

📄 License

Este projeto é de uso educacional e demonstrativo.

About

✅ Projeto Full Stack com .NET 8 (CQRS) e Angular 19

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages