Skip to content

FIAP-3SOAT-G15/healthmed-app

Repository files navigation

Health&Med

Acesse o website da nossa documentação! ✨

Publicamos nossa documentação automaticamente em nosso website. Lá você encontrará todas as informações, documentos e diagramas a respeito da nossa documentação e do nosso MVP de uma forma intuituva, agradável, e indexada, permitindo buscas eficientes. Boa leitura!

Grupo 15:

  • Bleno Humberto Claus
  • Giovanni Di Luca Evangelista
  • Lucas Gabriel dos Santos
  • Mateus Sales Albino
  • Wellyson de Freitas Santos

Health&Med MVP

Quality Gate Status Coverage

Nosso MVP é uma versão simplificada para fins de demonstração dos requisitos atendidos durante o Hackathon. Compreende um monolito com um banco de dados relacional e uso de serviços serverless na AWS. Toda a infraestrutura descrita em Terraform e a imagem da aplicação são automatizados em nossas pipelines com GitHub Actions, que inclui verificação dos testes e análise estática no SonarCloud.

O MVP inclui:

  • documentação abrangente, incluindo de DDD, diagramas C4, etc
  • 15 ADRs cobrindo requisitos não funcionais
  • pipelines para IaC com Terraform e deploy no Kubernetes
  • testes unitários e de integração com Cucumber
  • análise estática para qualidade e segurança
  • uso de EKS, RDS, S3, VPC, Cognito, ECR, KMS, SSM, etc.
  • estimativa de volumetria
  • setup para execução local (Docker Compose, Makefile, etc.)

Projeto no SonarCloud: https://sonarcloud.io/project/overview?id=FIAP-3SOAT-G15_healthmed-app

Também criamos uma extensa documentação para suportar uma aplicação escalável e resiliente que atenda a todos os requisitos não funcionais.

Requisitos

Health&Med, uma startup inovadora no setor de saúde, está desenvolvendo um novo sistema que irá revolucionar a Telemedicina no país. Atualmente, a startup oferece a possibilidade de agendamento de consultas e realização de consultas online (Telemedicina) por meio de sistemas terceiros como Google Agenda e Google Meetings.

Recentemente, a empresa recebeu um aporte e decidiu investir no desenvolvimento de um sistema proprietário, visando proporcionar um serviço de maior qualidade, segurança dos dados dos pacientes e redução de custos. O objetivo é criar um sistema robusto, escalável e seguro que permita o gerenciamento eficiente desses agendamentos e consultas.

Além de conter as funcionalidades de agendamento e realização de consultas online, o sistema terá o diferencial de uma nova funcionalidade: o Prontuário Eletrônico. O Prontuário Eletrônico permitirá o armazenamento e compartilhamento de documentos, exames, cartão de vacinas, e outros registros médicos entre as partes envolvidas, garantindo maior assertividade nos diagnósticos.

Para viabilizar o desenvolvimento de um sistema que esteja em conformidade com as melhores práticas de qualidade e arquitetura de software, a Health&Med contratou os alunos do curso (SOAT) para fazer a análise do projeto e a arquitetura do software.

Continuar lendo...

DDD

Volumetria Estimada

  • usuários: 20.000 usuários simultâneos usando em horários de pico sem problemas na experiência do usuário.
  • consultas: 10.000 consultas diárias (2 consultas x 5000 médicos x dia), cada consulta gerando um link de reunião online com duração padrão de 50 minutos, suportando centenas de sessões simultâneas.
  • prontuário eletrônico: milhões de documentos variados, de até 100 MB por arquivo.

Decisões de Arquitetura

Architectural Decision Records (ADRs):

  1. Infraestrutura
  2. Microserviços
  3. Bancos de dados
  4. Estratégia de testes
  5. CI/CD
  6. Orquestração de containers
  7. Observabilidade
  8. Autenticação e autorização
  9. Validação de médicos
  10. Mensageria
  11. Notificações
  12. Videoconferências
  13. Prontuário Eletrônico
  14. LGPD
  15. Otimização de rede

Diagramas de Arquitetura

Diagrama de Contexto C4

Diagrama de Contexto C4

Baixar .puml

Diagrama de Container C4

Diagrama de Container C4

Baixar .puml

Diagrama de Infraestrutura

Diagrama de Infraestrutura

Baixar .excalidraw

Schema do BD do MVP

Schema do BD do MVP

CI/CD

Descrição dos workflows do GitHub Actions:

  • build.yaml: faz o build da aplicação, executando testes e análise estática.
  • destroy.yaml: destrói todos os recursos de infra na AWS.
  • docs.yaml: cria o website para a documentação contida em /docs.
  • provision.yaml: realiza o provisionamento dos recursos de infra na AWS.

Executar

docker compose up

Mappers (MapStruct)

mvn clean compile

Testes

mvn clean verify

Testes de integração:

mvn clean verify -DskipITs=false

ktlint

mvn antrun:run@ktlint-format

OpenAPI (Swagger)

Acesse localmente:

Geração da documentação:

mvn -B verify -DskipOpenAPIGen=false

Tecnologias utilizadas no MVP