O projeto Blood Manager foi realizado com o intuito de melhorar minhas habilidades com a linguagem de programação C# e com todo o seu ecossistema.
- .NET 8.0
- Entity Framework Core 8.0
- Um doador deve possuir um e-mail único no banco de dados; Menor de idade não pode doar, mas pode ter cadastro;
- O doador deve pesar no mínimo 50kg;
- Mulheres só podem doar de 90 em 90 dias;
- Homens só podem doar de 60 em 60 dias;
- A quantidade de ML de sangue doados deve ser entre 420 e 470 ML;
- Não deve permitir cadastro de mais de um tipo de sangue (tipo sanguineo + fator rh);
- Deve atualizar o estoque de sangue ao realizar doação;
- No cadastro de endereço deve ser possível consultar diretamente pelo CEP via API externa; Dessa forma, caso seja informado o CEP, as informações de cidade, estado e endereço não precisam ser preenchidas.
- Avisar quando o estoque atingir a quantidade mínima definida;
- Deve ser possível consultar o histórico de doações de um doador;
- Deve gerar um relatório sobre a quantidade total de sangue por tipo disponível;
- Deve gerar um relatório de doações nos últimos 30 dias com informações de doadores
- Aplicar documentação com o Swagger
- Aplicar um banco de dados de verdade (não em memória)
- Aplicar a separação de serviços de leitura e escrita (CQRS) com padrão Mediator (Creates e Updates)
- Aplicar validação com FluentValidation (Creates e Updates)
- Estudar e aplicar o objeto de resultados para camada de domínio (result-pattern)
- Aplicar um middleware para tratamento de exceções globais
- Estudar e aplicar eventos de domínio
- Aplicar testes unitários
- Realizar publicação