{"id":27920210,"url":"https://github.com/benicio227/blooddonationsystem","last_synced_at":"2026-04-25T23:37:40.324Z","repository":{"id":288112707,"uuid":"966792050","full_name":"benicio227/BloodDonationSystem","owner":"benicio227","description":"API desenvolvida com ASP.NET Core 8 para gerenciar doações de sangue. Permite o cadastro de doadores, registro de doações, controle de estoque sanguíneo e integração com API de CEP.","archived":false,"fork":false,"pushed_at":"2025-05-02T13:30:08.000Z","size":149,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-02T14:53:57.601Z","etag":null,"topics":["asp-net-core","clean-architecture","cqrs","entity-framework-core","fluentvalidation","mediator-pattern","repository-pattern","sqlserver","swagger"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/benicio227.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-15T13:11:52.000Z","updated_at":"2025-05-02T13:30:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"25785200-6798-441d-b68a-f4c681a4a6da","html_url":"https://github.com/benicio227/BloodDonationSystem","commit_stats":null,"previous_names":["benicio227/blooddonationsystem"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benicio227%2FBloodDonationSystem","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benicio227%2FBloodDonationSystem/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benicio227%2FBloodDonationSystem/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benicio227%2FBloodDonationSystem/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/benicio227","download_url":"https://codeload.github.com/benicio227/BloodDonationSystem/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252761236,"owners_count":21800127,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["asp-net-core","clean-architecture","cqrs","entity-framework-core","fluentvalidation","mediator-pattern","repository-pattern","sqlserver","swagger"],"created_at":"2025-05-06T20:12:23.688Z","updated_at":"2026-04-25T23:37:40.287Z","avatar_url":"https://github.com/benicio227.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Sobre o projeto\n\nO **Sistema de Banco de Dados de Doação de Sangue** é uma API desenvolvida com **ASP.NET Core 8**, projetada para gerenciar doações de sangue de forma eficiente e organizada. A aplicação utiliza o **FluentValidation** para garantir a integridade dos dados recebidos nas requisições.\n\nA arquitetura foi construída em camadas bem definidas, promovendo a separação de responsabilidades, o que facilita a manutenção, testes e escalabilidade do sistema. Para garantir o baixo acoplamento entre as classes, foi adotada a **injeção de dependência** por meio de interfaces.\n\nO banco de dados utilizado é o **SQL Server**, com mapeamento realizado via **Entity Framework Core**. Os testes de unidade foram implementados com a biblioteca **xUnit**, utilizando também o **FluentAssertions** para tornar as asserções mais legíveis e expressivas.\n\nAlém disso, foram aplicados princípios de **Clean Code**, contribuindo para a clareza e legibilidade do código, com foco em nomes significativos e estruturação limpa.\n### Funcionalidades principais\n\n- **Casastro de Doadores**: Permite registrar doadores com validações como idade mínima, peso adequado e e-mail único.\n- **Consulta de Endereço via CEP**: Integração com API externa para preenchimento automático de endereço a partir do CEP informado.\n- **Devolução de um livro**: Essa funcionalidade permite manter o controle entre a data que foi feito o empréstimo do livro e a data em que ele foi devolvido. Para isso, uma mensagem é exibida, dizendo se a devolução está em atraso ou se está em dias.\n- **Controle de Estoque Sanguíneo**: Monitora os níveis de sangue por tipo, emitindo alertas quando o estoque atinge o mínimo necessário.\n- **Histórico de Doações**: Permite consultar as doações feitas por cada doador, promovendo um acompanhamento individual. \n\n### Padrões e Práticas Utilizadas\n\n- **CQRS (Command Query Responsibility Segregation)**\n  \n- **MediatR** para centralizar a comunicação entre comandos e manipuladores.\n\n- **Result Pattern** para retornar respostas unificadas (sucesso ou falha) com mensagens e códigos de status adequados.\n\n- **Repository Pattern** para isolar a lógica de persistência de dados.\n\n- **Clean Architecture** com divisão em camadas: API, Application, Core, Infra e Tests.\n\n\n\n### Requisitos\n\n- Visual Studio versão 2022+ ou Visual Studio Code\n- Windows 10+ ou Linux/MacOS com [.NET SDK](https://dotnet.microsoft.com/en-us/download/dotnet/8.0) instalado\n- SQL Server\n\n### Construído com\n\n![.NET Badge](https://img.shields.io/badge/.NET-512BD4?logo=dotnet\u0026logoColor=fff\u0026style=for-the-badge)  ![badge-windows](https://img.shields.io/badge/Windows-0078D6?style=for-the-badge\u0026logo=windows\u0026logoColor=white) ![visual-studio](https://img.shields.io/badge/Visual_Studio-5C2D91?style=for-the-badge\u0026logo=visual%20studio\u0026logoColor=white) ![badge-sqlserver](https://img.shields.io/badge/SQL%20Server-CC2927?style=for-the-badge\u0026logo=microsoftsqlserver\u0026logoColor=white)\n\n![badge-swagger](http://img.shields.io/badge/Swagger-85EA2D?logo=swagger\u0026logoColor=000\u0026style=for-the-badge)  \n\n## Começando\n\nPara obter uma cópia local funcionando, siga estes passos simples.\n\n### Requisitos\n\n- Visual Studio versão 2022+ ou Visual Studio Code\n- Windows 10+ ou Linux/MacOS com [.NET SDK](https://dotnet.microsoft.com/en-us/download/dotnet/8.0) instalado\n- Sql Server\n\n### Instalação\n\n1. Clone o repositório:\n    ```sh\n    git clone git@github.com:benicio227/BloodDonationSystem.git\n    ```\n\n2. Preencha as informações no arquivo `appsettings.json`\n3. Execute a API\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenicio227%2Fblooddonationsystem","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbenicio227%2Fblooddonationsystem","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenicio227%2Fblooddonationsystem/lists"}