O SIAM (Sistema Inteligente de Administração de Medicamentos) é um projeto voltado para a automação e monitoramento da dispensação de medicamentos, especialmente direcionado para o cuidado de idosos. O objetivo principal é facilitar a administração correta dos medicamentos em horários específicos, proporcionando maior segurança e precisão, além de garantir que os idosos tomem seus remédios na dosagem e no tempo corretos.
- Automação da Dispensação: O sistema é capaz de controlar a dispensação de medicamentos de forma automatizada, reduzindo erros humanos na dosagem e no horário.
- Monitoramento em Tempo Real: Oferece monitoramento contínuo da dispensação, registrando as interações e o cumprimento dos horários estabelecidos.
- Notificações: Envia alertas sonoros para garantir que o usuário não perca a hora de tomar seus medicamentos.
- Controle de Horários: Configuração de horários específicos para cada medicamento.
- Acompanhamento de Consumo: O sistema armazena um histórico de quando os medicamentos foram dispensados e ingeridos.
- Alertas: Notificações sonoras quando está na hora de tomar o medicamento.
- Interface de Gerenciamento: Uma interface onde o cuidador ou usuário pode ajustar a configuração de medicamentos, visualizar relatórios e administrar o sistema.
- Impressão 3D para Prototipagem: Uso de impressoras 3D para criar um protótipo físico do dispensador de medicamentos automatizado.
- Angular: Frontend da aplicação responsável pela interface de gerenciamento do sistema.
- Backend NodeJS: API para comunicação e controle do dispensador.
- PostegreSQL: Banco de dados para armazenamento dos dados.
- Dispositivos IoT: Sensores e atuadores para controlar a dispensação física dos medicamentos.
- Impressora 3D: Para criação do protótipo físico do dispensador automatizado.
- Cadastro de Medicamentos: O usuário pode cadastrar os medicamentos e seus horários de administração.
- Automação de Dispensação: Dispensar automaticamente a dosagem correta no horário configurado.
- Monitoramento Remoto: Permitir que cuidadores acompanhem remotamente o estado de dispensação dos medicamentos.
- Histórico de Dispensação: Registro de todas as doses dispensadas para auditoria e acompanhamento.
- Relatório de Uso: Realizar download em CSV ou XLSX para relatório.
- Cadastrar Cuidadores, Familiares ou Responsáveis: Permitir cadastrar cuidadores, familiares ou responsáveis.
- Envio de Email: Enviar email para os cuidadores cadastrados informando que X medicamento não foi administrado.
- Plataforma Web: A aplicação deve ser acessível via navegador.
- Integração com Dispositivos: O sistema deverá se integrar a dispositivos físicos que realizam a dispensação.
- Notificações: Sistema de envio de notificações.
- Criptografia de Dados: Sistema de criptografia em JWT.
- Autenticação e Autorização: Sistema de criptografia em JWT.
- Git e GitHub: Sistema de controle de versionamento e hospedagem dos repositórios.
- Visual Studio Code: Editor de código-fonte para frontend e backend.
- Arduino IDE: Editor de código-fonte do ESP32.
- Jira: Organização de tarefas e acompanhamento de progresso.
- Docker: Utilizado para criar contêiners que encapsulam o ambiente de execução da aplicação.
- CI/CD: Feito pelo GitHubActions.
Para executar este projeto localmente, é necessário ter instalado:
- Node.js
- npm (Node Package Manager)
- Arduino IDE
- PostgreSQL
- Clone o repositório para sua máquina:
git clone https://github.com/DaniOrze/SIAM.git- Navegue até a pasta do projeto:
cd SIAM- Navegue até a pasta do frontend:
cd siam-frontend- Instale as dependências:
npm install- Execute a aplicação:
npm startA aplicação será iniciada no navegador padrão em: http://localhost:4200
- Navegue até a pasta do backend:
cd siam-backend- Instale as dependências:
npm install- Execute a aplicação:
npm run devA aplicação será iniciada no navegador padrão em: http://localhost:3000
-
Certifique-se de ter o PostgreSQL instalado.
-
Crie um banco de dados no PostgreSQL:
CREATE DATABASE siam;- Execute o arquivo SQL localizado na pasta migrations para criar as tabelas e configurações iniciais:
psql -U <seu_usuario> -d siam -f migrations/schema.sql-
Substitua <seu_usuario> pelo nome do usuário do PostgreSQL.
-
Atualize as configurações do banco de dados no arquivo .env na pasta do backend para refletir suas credenciais.
- Navegue até a pasta do arduino:
cd siam-arduino- Instale as dependências e suba o projeto através do micro-usb para o ESP32.
- Copie o arquivo .env.example para .env:
cp .env.example .env- Suba os containers usando o Docker Compose:
docker compose up -d-
Isso irá inicializar o frontend, backend e banco de dados automaticamente.
-
A aplicação frontend será iniciada no navegador padrão em:
http://localhost:4200 -
A aplicação backend será iniciada no navegador padrão em:
http://localhost:3000
- A cobertura de testes do backend alcançou 90%, refletindo um alto nível de confiabilidade e robustez na API e na lógica de negócios.
Para conferir, basta rodar o seguinte comando na pasta do backend:
npm test- A cobertura de testes do frontend atingiu 82%, garantindo uma validação consistente das funcionalidades implementadas.
Para conferir, basta rodar o seguinte comando na pasta do frontend:
npm testContribuições são bem-vindas! Sinta-se à vontade para abrir uma issue ou enviar um pull request para o repositório
Este projeto está licenciado sob a licença MIT.