/sistema-doacao-sangue

Primary LanguageC#GNU General Public License v3.0GPL-3.0

Sistema de Doação de Sangue

O Sistema de Doação de Sangue é uma aplicação desenvolvida para facilitar a coordenação e gestão de doações de sangue entre doadores, particulares e campanhas de doação. Este sistema permite o registro de doadores, solicitações de sangue e campanhas de doação.

Como foi pensado a aplicação

A aplicação foi pensada e extruturada da seguinte maneira :

  1. A aplicação não estara direitamente conectada a um hospital ou instituição
  2. A solicitação será feita por particulares e instituições
  3. As solicitações devem ter uma particularidades para casos emergentes, não haverá necessidade de se logar na aplicação
  4. A campanha é feita apenas por instituições
  5. Durante o registo dos doadores, deve ser informado os hospitais proximos das suas residencias
  6. As notificações serão enviadas aos doadores que moram proximos aos hospitais que se fara a doação
  7. Durante a solicitação pode ser informado uma gratificação, que será entregue ao doador pela sua doação
  8. Outros pontos irão surgir e serão acrescentados mediante um dialogo aberto.

Arquitetura da Aplicação

Este sistema consiste em três aplicações distintas em uma primeira fase:

Back-end Web API (C#)

O back-end é desenvolvido em C# e consiste em uma API RESTful que lida com a lógica de negócios, interage com o banco de dados e fornece serviços para o front-end.

Front-end (.NET MAUI)

O front-end é desenvolvido com .NET MAUI, fornecendo uma interface mobile moderna e responsiva para os usuários interagirem com o sistema.

Front-end (Blazor)

O front-end é desenvolvido com Blazor, fornecendo uma interface web moderna e responsiva para os usuários interagirem com o sistema.

Funcionalidades

  • Cadastro e gerenciamento de doadores de sangue.
  • Registro e acompanhamento de solicitações de sangue feitas por particulares ou instituições.
  • Criação e gestão de campanhas de doação de sangue.
  • Associação de doadores a hospitais para futuras doações.
  • Suporte a diferentes tipos sanguíneos.

Classes Principais

Person

Representa uma pessoa, com informações básicas como nome, idade, telefone e endereço.

image

Address

Representa o endereço de uma pessoa ou instituição (hospital). image

Campaign

Representa uma campanha de doação de sangue, contendo informações como nome, descrição, data de início e término, organizador.

image

Request

Representa uma solicitação de sangue feita por um particular ou instituição, incluindo informações como solicitante, data da solicitação, tipo sanguíneo e quantidade requerida. Pode ainda registar uma gratificação para o doador.

image

Donator

Representa um doador de sangue, mantendo informações como última data de doação e disponibilidade para doação. image

DonatorHospital

Associa um doador a um hospital para futuras doações.

image

HospitalRequest

Associa uma solicitação de sangue a um hospital.

image

Support

Representa os dados de apoios ao sistema, como paises, provincias, municipios, grupos sanguineos e outros.

image

Abaixo um exemplo de como a tabela de support é usada:

image

User

Representa um usuário do sistema, com informações como nome de usuário, senha, e-telefone e tipo de usuário.

image

Diagrama

image

Endpoit

Campaign

image

Donator

image

Requests

image

Supports

image

Users

image

Padrões

Commit : Padrões Commit.

Pull Request: Padrões Pull Request

Requisitos do Sistema

  • C# C#
  • Banco de dados Postgresql Postgres
  • MAUI .Net

Como Configurar e Executar

  1. Clone o repositório para sua máquina local:

  2. Verifique se tem instalado o postgresql

  3. Abra o projeto em sua IDE preferida.

  4. Configure as informações de conexão com o banco de dados no arquivo appsettings.json.

  5. Compile o projeto e execute a aplicação.

  6. Acesse a aplicação através do navegador usando o endereço local, geralmente http://localhost:8080.

Contribuindo

Contribuições são bem-vindas! Sinta-se à vontade para propor melhorias, reportar problemas ou enviar solicitações de pull.

Licença

Este projeto é distribuído sob a licença GPL v3. Consulte o arquivo LICENSE para mais informações.