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

No packages published

Languages