Skip to content

MateusOK/QuotationService

Repository files navigation

Quotation & Proposal System

📌 Observação sobre o Repositório: > O projeto foi desenvolvido de forma evolutiva. Cada etapa da implementação está isolada em sua respectiva branch:

  • v1: CRUD básico com MongoDB.
  • v2: Mensageria com RabbitMQ e Worker.
  • v3: Autenticação, Validações, Logs, Cache e Mapping.

📋 Requisitos do Desafio

V1

  • Criação de API REST com .NET Core 8.
  • CRUD completo de Cotações.
  • Persistência de dados utilizando MongoDB.
  • Orquestração de ambiente com Docker Compose.

V2

  • Integração com RabbitMQ.
  • Publicação de evento de "Cotação Aprovada".
  • Desenvolvimento de um Worker/Consumer para processamento de Propostas.

V3

  • Autenticação: Proteção de rotas via JWT Bearer Token.
  • Validação: Uso de FluentValidation para garantir integridade dos dados.
  • Mapping: Implementação de AutoMapper para separação de DTOs e Entidades.
  • Logs: Implementação de logs com Serilog.
  • Cache: Performance otimizada com MemoryCache.

🛠️ Tecnologias Utilizadas

  • Runtime: .NET 8
  • Database: MongoDB (NoSQL)
  • Message Broker: RabbitMQ v7
  • Logging: Serilog
  • Validation: FluentValidation
  • Mapping: AutoMapper
  • Auth: JWT Bearer

🚀 Como Executar

1. Clonar e Subir Infraestrutura

Certifique-se de ter o Docker instalado e execute na raiz do projeto:

docker compose up -d

2. Autenticação

Para fins de teste, o sistema utiliza autenticação estática:

Email: admin@admin.com

Senha: admin

Realize o login no endpoint POST /api/auth/login. Utilize o token retornado para autorizar as demais requisições no botão "Authorize" do Swagger.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages