Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 22 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,26 @@
É uma API Web desenvolvida em ASP.NET Core para gerenciar contatos com funcionalidades de cadastro, consulta, atualização e exclusão de contatos, utilizando a Clean Architecture e o Domain-Driven Design (DDD) proporcionando uma estrutura modular e fácil de manter.

### Principais funcionalidades
- **Cadastro de contatos**: permitir o cadastro de novos contatos, incluindo nome, telefone e e-mail.
- **Consulta de contatos**: implementar uma funcionalidade para consultar e visualizar os contatos cadastrados, os quais podem ser filtrados pelo DDD da região.
- **Cadastro de contatos**: permitir o cadastro de novos contatos com validações de dados, tais como: nome, telefone e e-mail.
- **Consulta de contatos**: consultar e visualizar os contatos cadastrados, os quais podem ser filtrados pelo DDD da região.
- **Atualização e exclusão**: possibilitar a atualização e exclusão de contatos previamente cadastrados.
- **Validação de regras de negócio**: evitar inconsistências, como DDDs inválidos ou duplicidade de contatos.

### Tecnologias e Ferramentas Utilizadas

- **.NET 8**: Framework principal para desenvolvimento.
- **Entity Framework Core**: ORM para manipulação de dados.
- **Docker Compose**: Orquestração dos contêineres.
- **GitHub Actions**: Integração Contínua (CI) para automação de testes e build.
- **Prometheus e Grafana**: Monitoramento de desempenho e saúde da API.
- **TestContainer .NET**: Para testes de integração com um banco de dados contêinerizado.

### Estrutura do Projeto
Este projeto segue os princípios da Clean Architecture, dividindo o código em camadas bem definidas:
- **Domain**: Contém as entidades e regras de negócio principais.
- **Application**: Contém os casos de uso (Use Cases) e os serviços de aplicação.
- **Infrastructure**: Implementação de serviços externos, como persistência de dados, integração com APIs, etc.
- **API**: Contém os controladores (Controllers) e configurações da API.

***
> Acesse a seção de [Wiki](https://github.com/gricar/ContactsManager-API/wiki) para mais detalhes técnicos da aplicação
Loading