Skip to content

Este projeto é uma proposta de um sistema de saúde unificado para todo país, desenvolvido a partir de uma arquitetura descentralizada de microserviços.

License

Notifications You must be signed in to change notification settings

jpcarpanezi/sdic7-health-system

Repository files navigation

Sistemas Distribuídos (Unified Health System)

Este repositório trata-se de um trabalho de Sistemas Distribuídos (SDIC7) do Instituto Federal de Ciências e Tecnologia de São Paulo (IFSP) - Campus Piracicaba. Este grupo composto pelos integrantes desenvolvedores Antonio Naranjo Cerda, Daniel Galdencio dos Santos, Isabelle Caroline de Carvalho Costa, João Pedro Carpanezi dos Santos e Murilo Azevedo Jacon. Este projeto é uma versão alternativa do projeto dooc-health-system, e implementa uma arquitetura descentralizada de microserviços, que compõe um conjunto de APIs RESTful com a proposta de um sistema unificado de saúde para todo o país, permitindo que em qualquer cidade que a pessoa visite um hospital todo seu histórico médico possa ser resgatado.

Instalação

Caso necessário, uma coleção do Postman com todas as requisições para os endpoints das APIs está disponível clicando aqui.

Utilizando Docker

1º) Clone o repositório

git clone https://github.com/jpcarpanezi/sdic7-health-system.git

2º) Execute o arquivo YAML do Docker Compose
Atenção: Caso as portas 8081 ou 8082 estejam em uso será necessário alterar as portas no arquivo YAML, ou liberar para que as requisições sejam feitas.

docker-compose up -d

Utilizando Kubernetes (k8s)

1º) Clone o repositório

git clone https://github.com/jpcarpanezi/sdic7-health-system.git

2º) Execute o cluster do k8s

minikube start

3º) Execute todos os YAML das configurações

kubectl apply -f /path/to/repo/deploy/k8s/ --recursive

4º) Realize o port-forward

kubectl port-forward service/medicines 8081:80
kubectl port-forward service/person 8082:80
kubectl port-forward service/mysql 3306:3306

5º) Realizar importação do banco de dados

Exclusivamente para deploys realizados em k8s, deve ser acessado o banco de dados MySQL e realizada a importação dos arquivos health-medicines.sql e health-person.sql

Overview da arquitetura

Temos como referência na imagem, um sistema descentralizado de APIs em microserviços, desenvolvido .NET 6 com armazenamento de dados no MySQL, que se comunicam entre sí de forma assíncrona utilizando uma fila de mensagens do RabbitMQ. Desta forma, uma outra aplicação front-end poderá consumir atráves do protocolo HTTP.

Build status (GitHub Actions)

Image Status
Person API Person.API
Medicines API Medicines.API
Ocelot Gateway Ocelot.Gateway

Licença

Este projeto é um trabalho de cunho acadêmico, voltado para conhecimento de estrutura de dados e sem fins lucrativos. Olhe o arquivo de LICENSE para direitos e limitações (MIT).

About

Este projeto é uma proposta de um sistema de saúde unificado para todo país, desenvolvido a partir de uma arquitetura descentralizada de microserviços.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •