Skip to main content

Back-End

Stack Tecnologias

Linguagem de programação

Python (versão 3.12) – Usada devido à sua simplicidade, vasto ecossistema de bibliotecas e integração facilitada com ferramentas de inteligência artificial e aprendizado de máquina, o que pode ser explorado no futuro.

Framework

Django (versão 4.2) – Escolhido por ser um framework robusto para desenvolvimento rápido de backends, com boas práticas incorporadas, como a arquitetura Model-View-Template (MVT).

Django Rest Framework (DRF)

Utilizado para a criação de APIs RESTful, fornecendo uma camada de abstração para serialização de dados, autenticação e autorização.

Banco de Dados

PostgreSQL – Escolhido pela sua confiabilidade, suporte a dados complexos e capacidade de lidar com uma quantidade maior de transações e dados relacionais de forma eficiente.

WebSocket

Django Channels - Adotado para garantir a atualização em tempo real, especialmente para a sincronização entre o sistema de senhas (Totem) e a exibição na TV.

Outras ferramentas

Thunder Client - Adotado para realizar e testar requisições de APIs RESTful durante o desenvolvimento, permitindo verificar o funcionamento dos endpoints e facilitar a depuração e análise de respostas de APIs.

Api Dog - Utilizado para testar tanto requisições de API quanto de WebSocket, garantindo a comunicação em tempo real entre as partes do sistema.

Power Automate - Utilizado para o envio automático de e-mails na ativação da conta no primeiro login externo.

Arquitetura do Sistema

Arquitetura em Camadas

Camada de Apresentação (Frontend)

Interage com o Django Rest Framework para acessar as APIs de gerenciamento de senhas, atendimentos, e serviços.

Camada de Aplicação

Django e Django Rest Framework – A lógica principal do sistema reside aqui, como validações de dados, manipulação de lógica de negócios (gerenciamento de atendimentos, rotas de pacientes), e controle de fluxo de usuários.

Camada de Persistência (Banco de Dados)

A camada de persistência está conectada ao PostgreSQL, garantindo que os dados sejam armazenados de forma segura e consistente, com integrações bem definidas entre os modelos do Django. Comunicação em Tempo Real O uso do WebSocket (Django Channels) permite a comunicação bidirecional em tempo real entre o servidor e o cliente, essencial para a atualização instantânea de informações como a chamada de pacientes no visor da TV.

Docker

O sistema foi containerizado com Docker para garantir que o ambiente de desenvolvimento e produção sejam consistentes, facilitando o deploy e a escalabilidade.

Desempenho e Escalabilidade

Escalabilidade Horizontal

O uso de contêineres Docker facilita o escalonamento horizontal do sistema, permitindo que novos serviços sejam adicionados conforme o aumento do número de usuários (por exemplo, mais clínicas utilizando o sistema).

Caching

O uso de Redis para caching de dados melhora a performance do sistema, especialmente para dados que são frequentemente acessados