Skip to content

Latest commit

 

History

136 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

# E-Doso - Sistema de Gerenciamento para Lares de Idosos

![React Native](https://img.shields.io/badge/React_Native-20232A?style=for-the-badge&logo=react&logoColor=61DAFB)
![Django](https://img.shields.io/badge/Django-092E20?style=for-the-badge&logo=django&logoColor=green)
![Expo](https://img.shields.io/badge/Expo-000020?style=for-the-badge&logo=expo&logoColor=white)

## 📖 Sobre o Projeto

**E-doso** é uma solução completa (Full Stack) projetada para otimizar a gestão de cuidados em lares e casas de repouso para idosos. O sistema é composto por um aplicativo móvel para cuidadores e um backend robusto para gerenciar todas as informações de forma segura e centralizada.

O objetivo principal é facilitar o controle de medicamentos, horários, prescrições e dados vitais dos idosos, garantindo que os cuidadores tenham acesso rápido e preciso às informações necessárias para oferecer o melhor cuidado possível.

O desenvolvimento do aplicativo compõe o trabalho final da disciplina SSC0961 - Desenvolvimento Web E Mobile da Universidade de São Paulo - Instituto de Ciências Matemáticas e de Computação - 1º semestre de 2024. Professora Dra. Lina María Garcés Rodríguez.

---

## ✨ Funcionalidades Principais

O projeto é dividido em duas partes principais: um **Frontend** (aplicativo móvel) e um **Backend** (API REST).

### Frontend (React Native com Expo)
- **Autenticação de Usuários:** Telas de Login e Cadastro seguras.
- **Gerenciamento de Lares (Grupos):**
    - Permite que um usuário crie um novo "Lar" (grupo de cuidadores).
    - Permite que outros usuários entrem em um lar existente através de um código de acesso único.
    - O administrador do lar pode gerenciar membros (adicionar/remover).
- **Cadastro e Gestão de Idosos:**
    - Formulário completo para registrar informações pessoais, documentos e condições de saúde de cada idoso.
    - Visualização detalhada do perfil de cada idoso.
- **Controle de Estoque de Medicamentos:**
    - Cadastro de novos medicamentos com detalhes como nome, princípio ativo, concentração e quantidade.
    - Listagem e busca de medicamentos em estoque.
- **Gerenciamento de Prescrições:**
    - Associação de medicamentos a idosos, com definição de horários, dosagens e frequência.
- **Agenda de Horários:**
    - Exibição diária dos medicamentos a serem administrados, organizada por horário.
- **Log de Administração:**
    - Registro de cada dose administrada, recusada ou pulada, incluindo quem foi o responsável e observações.

### Backend (Django REST Framework)
- **API RESTful:** Endpoints seguros para todas as operações do frontend.
- **Autenticação por Token:** Garante que apenas usuários autenticados acessem os dados.
- **Modelagem de Dados Completa:**
    - `Usuario`: Modelo de usuário customizado.
    - `Grupo`: Representa um lar, com admin e membros.
    - `Idoso`, `Medicamento`, `Prescricao` e `LogAdministracao`: Modelos centrais do negócio.
- **Permissões Granulares:** Sistema de permissão que diferencia administradores de membros comuns do grupo.
- **URLs Aninhadas (Nested Routers):** Estrutura de rotas lógicas, como `/api/grupos/{id_grupo}/idosos/`.

---

## 🛠️ Tecnologias Utilizadas

#### Backend
- **Python**
- **Django** & **Django REST Framework**
- **dj-rest-auth** para autenticação
- **dj-database-url** para configuração de banco de dados
- **WhiteNoise** para servir arquivos estáticos

#### Frontend
- **JavaScript (React Native)**
- **Expo** (SDK)
- **React Navigation** para navegação entre telas
- **Axios** para requisições HTTP
- **AsyncStorage** para armazenamento local no dispositivo

---

## 🚀 Como Executar o Projeto

Para executar este projeto, você precisará configurar e iniciar o Backend (servidor Django) e o Frontend (aplicativo Expo) separadamente.

### Pré-requisitos
- **Node.js** (versão LTS recomendada)
- **Python 3.x**
- **Gerenciador de pacotes NPM** ou **Yarn**
- **Expo Go** no seu celular (para testes mobile)

### 1. Clone o Repositório

```bash
git clone https://github.com/ThValverde/dev_wm_project.git
cd dev_wm_project
```

### 2. Configurando o Backend (Django)

Navegue até a pasta do backend e configure o ambiente virtual.

```bash
# Navegue para a pasta do backend
cd backend/django

# Crie e ative um ambiente virtual
python3 -m venv venv
source venv/bin/activate  # No Windows, use `venv\Scripts\activate`

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

# Aplique as migrações do banco de dados
python3 manage.py migrate

# Inicie o servidor Django
python3 manage.py runserver 0.0.0.0:8000
```
O backend estará rodando em `http://<seu-ip-local>:8000`.

### 3. Configurando o Frontend (Expo)

Abra um **novo terminal**, navegue até a pasta do frontend e instale as dependências.

```bash
# Navegue para a pasta do frontend (a partir da raiz do projeto)
cd frontend/MyApp

# Instale as dependências
npm install

# Inicie o servidor de desenvolvimento do Expo
npx expo start
```
Isso abrirá o Metro Bundler no seu navegador. Você pode usar o aplicativo **Expo Go** no seu celular para escanear o QR Code e executar o aplicativo.

**Importante:** O aplicativo frontend precisa saber o endereço do backend. Para conectar ao seu servidor local, você precisará alterar a URL da API no código-fonte do frontend para o IP da sua máquina onde o backend está rodando (ex: `http://192.168.1.10:8000`). Uma versão online do backend está disponível em `https://e-doso-backend.onrender.com` e pode ser usada para testes.
Para simplificar o processo, é possível clonar diretamente https://github.com/ThValverde/dev_wm_project/local.git

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages