Skip to content

AdlerMrF/medguard

Repository files navigation

MedGuard

CI

Descrição do Problema

Idosos e cuidadores frequentemente enfrentam dificuldades para controlar horários e dosagens de múltiplos medicamentos. Esquecimentos podem causar complicações graves de saúde.

Proposta de Solução

O MedGuard é uma aplicação web simples que permite cadastrar medicamentos com suas doses e horários, e emite alertas quando está na hora de tomá-los (janela de ±10 minutos). Também registra o histórico de uso.

Público-alvo

Idosos, cuidadores e familiares responsáveis pela administração de medicamentos.

Funcionalidades

  • Cadastrar medicamentos com nome, dose, nível de importância e horários
  • Listar e filtrar medicamentos por nome e importância
  • Visualizar detalhes e histórico de uso de cada medicamento
  • Receber alertas dos medicamentos a tomar no momento (±10 min)
  • Confirmar ou registrar não-uso de um medicamento
  • Excluir medicamentos com confirmação

Tecnologias Utilizadas

  • Python 3.10+
  • Django 5.0.6
  • SQLite
  • pytest / pytest-django
  • ruff
  • GitHub Actions

Estrutura do Projeto:

Estrutura do Projeto

medguard/
├── manage.py
├── db.sqlite3              # gerado após migrations (não versionar)
├── requirements.txt
├── pyproject.toml
├── README.md
├── VERSION
├── CHANGELOG.md
├── LICENSE.txt
├── CONTRIBUTING.md
├── conftest.py
├── .coverage               # relatório de cobertura (não versionar)
├── .gitignore
│
├── config/
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   ├── wsgi.py
│
├── medicamento/
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── models.py
│   ├── views.py
│   ├── urls.py
│   ├── forms.py
│   │
│   ├── migrations/
│   │   ├── __init__.py
│   │   └── 0001_initial.py
│   │
│   └── templates/
│       └── medicamento/
│           ├── base.html
│           ├── index.html
│           ├── listar.html
│           ├── cadastrar.html
│           ├── detalhe.html
│           ├── alertas.html
│           ├── confirmar_uso.html
│           └── confirmar_exclusao.html
│
├── tests/
│   ├── __init__.py
│   └── test_models.py
│
├── __pycache__/            # não versionar
├── .pytest_cache/          # não versionar
├── .ruff_cache/            # não versionar
├── .venv/                  # não versionar
└── .git/                   # controle de versão local

Instalação

Inicialize o terminal (Prompt de Comando CMD ou PowerShell), clicando com o botão direito na pasta de preferência e selecionando "Abrir Terminal":

1
# No terminal que abrir Clone o repositório com o comando:
git clone https://github.com/AdlerMrF/medguard.git
cd medguard

# Crie e ative o ambiente virtual
python -m venv .venv
.venv\\Scripts\\activate ou .venv/Scripts/activate  # Windows
source .venv/bin/activate  # Linux/Mac

# Instale as dependências
pip install -r requirements.txt

# Execute as migrações
python manage.py migrate

# (Opcional) Crie um superusuário para o admin
python manage.py createsuperuser

# Rode o servidor
python manage.py runserver


Acesse em: http://127.0.0.1:8000

Exemplo de teste

Ao rodarmos http://127.0.0.1:8000, será apresentada a tela inicial do Programa:

2

Para fins de testes adicionamos o "Soro Nasal", para mostrar as funcionalidades de cadastro de remédios:

3

Demonstração do remédio cadastrado:

4 5

Como o remédio cadastrado ainda não está próximo da hora atual +- 10 minutos não haverá alarme:

6

Para mostrar o cadastro de um remédio que entre em alarmes, adicionamos outro:

7

Assim, ele automaticamente aparecerá em alarmes:

8

Ao confirmar o uso o medicamento aparecerá como tomado:

9 10

Testes

pytest

Com cobertura:

pytest --cov=medicamento --cov-report=term-missing

Lint

ruff check .

Versão

1.0.0

Autor

Adler — github.com/AdlerMrF