fiap

🎖️ Hackathon - Turma .NET:

Arquitetura de Sistemas .NET com Azure

A Health&Med, é uma Operadora de Saúde que tem como objetivo digitalizar seus processos e operação. O principal gargalo da empresa é o Agendamento de Consultas Médicas, que atualmente ocorre exclusivamente através de ligações para a central de atendimento da empresa.
Recentemente, a empresa recebeu um aporte e decidiu investir no desenvolvimento de um sistema proprietário, visando proporcionar um processo de Agendamentos de Consultas Médicas 100% digital e mais ágil. Para viabilizar o desenvolvimento de um sistema que esteja em conformidade com as melhores práticas de desenvolvimento, a Health&Med contratou os alunos do curso de Pós Graduação .NET da FIAP para fazer a análise do projeto e desenvolver o MVP da solução.


📱 Objetivo do Projeto:


O objetivo do Hackathon é a entrega de um produto de MVP desenvolvido e que cumpra os requisitos funcionais e não funcionais.

__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

💂‍♀️ Participantes:

Alex Rosa - RM352258 Davi Nogueira - RM351602 Fillipe Silva - RM352110 Pedro Abreu - RM352428
GitHub GitHub GitHub GitHub

⚙️ Tecnologias:

  • C#;
  • .NET 8;
  • ASP.NET Core;
  • SQLSERVER;
  • Service Bus
  • Minimal API Azure

🥋 Skills Desenvolvidas:

  • Comunicação;
  • Trabalho em Equipe;
  • Networking;
  • Conhecimento técnico.

⚙️ Levantamento de Requisitos e Critérios de Aceite:

Requisitos Funcionais:


1. Cadastro do Usuário (Médico);

O médico deverá poder se cadastrar, preenchendo os campos obrigatórios: Nome, CPF, Número CRM, E-mail e Senha.

2. Autenticação do Usuário (Médico);

O sistema deve permitir que o médico faça login usando o E-mail e uma Senha.

3. Cadastro/Edição de Horários Disponíveis (Médico);

O sistema deve permitir que o médico faça o Cadastro e Edição de seus horários disponíveis para agendamento de consultas.

4. Cadastro do Usuário (Paciente);

O paciente poderá se cadastrar preenchendo os campos: Nome, CPF, Email e Senha.

5. Autenticação do Usuário (Paciente);

O sistema deve permitir que o paciente faça login usando um E-mail e Senha.

6. Busca por Médicos (Paciente);

O sistema deve permitir que o paciente visualize a listagem dos médicos disponíveis.

7. Agendamento de Consultas (Paciente):

Após selecionar o médico, o paciente deve poder visualizar a agenda do médico com os horários disponíveis e efetuar o agendamento.

8. Notificação de consulta marcada (Médico):

Após o agendamento, feito pelo usuário Paciente, o médico deverá receber um e-mail contendo:


Título do e-mail:

”Health&Med - Nova consulta agendada” Corpo do e-mail:

”Olá, Dr. {nome_do_médico}! Você tem uma nova consulta marcada!

Paciente: {nome_do_paciente}. Data e horário: {data} às {horário_agendado}.”


Requisitos Não Funcionais:


1. Concorrência de Agendamentos;

O sistema deve ser capaz de suportar múltiplos acessos simultâneos e garantir que apenas uma marcação de consulta seja permitida para um determinado horário.

2. Validação de Conflito de Horários.

O sistema deve validar a disponibilidade do horário selecionado em tempo real, assegurando que não haja sobreposição de horários para consultas agendadas.

__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

🧪 Desenvolvimento (Build e Execução do Projeto):

Arquitetura:

A estrutura para o desenvolvimento foi baseada e implementada considerando os principios da Arquitetura Limpa e a divisão em camadas:

  • Domain;
  • Infrastructure;
  • Application;
  • API;
  • Testes;
  • Consumer

Persistência dos Dados:

O banco de dados escolhido foi o SQL Server, por ser um banco relacional e garantir os princípios ACID.

Testes:

O padrão utilizado é pensado nos testes unitários, testes de integração e regras de negócio.

Build e Execução do Projeto:

Para executar esses projetos você precisa seguir as etapas abaixo:

  • Acessar o repositório do projeto através do link: https://github.com/fillipelsilva/HealthMedProject;
  • Baixar o zip do projeto ou fazer um fork do mesmo;
  • Abrir o projeto, preferencialmente, na IDE Visual Studio considerando que facilitará para a execução;
  • Configurar a api como startup project;
  • Rodar o comando update-database no package manage console apontando para o projeto de infraestrutura;
  • Clicar na opção, configurar startup projects, selecionar startup projects e colocar o projeto Health-Med.API como start;
  • Após iniciar o navegador será iniciado a interação com o sistema, possibilitando o registro de um pré cadastro;

⚙️ Apresentação Google Drive:

https://drive.google.com/file/d/1FixzjmtvqR_Gx8giwvm6AGLlN2L1ffEG/view?usp=sharing