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.
O objetivo do Hackathon é a entrega de um produto de MVP desenvolvido e que cumpra os requisitos funcionais e não funcionais.
__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
- Alex dos Santos Rosa - RM352258;
- Davi Emanuel Torres de Souza Nogueira - RM351602;
- Fillipe Luis da Silva - RM352110;
- Pedro Henrique Sousa de Abreu - RM352428.
Alex Rosa - RM352258 | Davi Nogueira - RM351602 | Fillipe Silva - RM352110 | Pedro Abreu - RM352428 |
- C#;
- .NET 8;
- ASP.NET Core;
- SQLSERVER;
- Service Bus
- Minimal API Azure
- Comunicação;
- Trabalho em Equipe;
- Networking;
- Conhecimento técnico.
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}.”
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.
__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
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
O banco de dados escolhido foi o SQL Server, por ser um banco relacional e garantir os princípios ACID.
O padrão utilizado é pensado nos testes unitários, testes de integração e regras de negócio.
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;
https://drive.google.com/file/d/1FixzjmtvqR_Gx8giwvm6AGLlN2L1ffEG/view?usp=sharing