Um app mobile e sistema web pensados para facilitar o acompanhamento de pessoas com sofrimento psíquico, integrando pacientes, ACS, psicólogos e psiquiatras de forma humanizada e extensível.
O SAÚDE! é um sistema em constante evolução que:
- Registra hábitos, sintomas e sentimentos de pacientes
- Permite a personalização do acompanhamento
- Compartilha dados com profissionais apenas quando o paciente autoriza
- Usa o modelo de dados OMOP para garantir extensibilidade e interoperabilidade
- Está sendo desenvolvido com foco na RAPS (Rede de Atenção Psicossocial)
- Backend: Django + Django REST Framework
- Banco de dados: PostgreSQL (modelo OMOP adaptado)
- Mobile App: React + Capacitor (em desenvolvimento)
- Infra: Docker para banco de dados
| Recurso | Link |
|---|---|
| 📐 Diagrama do Banco de Dados (OMOP) | dbdocs.io/saude-database |
| 🎨 Protótipos Figma | Figma do frontend |
git clone https://github.com/datasci4citizens/server-saude-
Na raiz: Copie
.env.modelpara.enve ajuste as variáveis: SECRET_KEY (sua chave secreta, é utilizada para manter o login no app/site, guardar tokens, entre outras coisas) VITE_GOOGLE_CLIENT_ID e VITE_GOOGLE_CLIENT_SECRET (permitem fazer o login através da API do Google) -
Na pasta 'docker/'
Copie
docker-compose-model.ymlparadocker-compose.ymle ajuste as variaveis: volumes - device (pasta onde será guardado o banco de dados local)
(no diretorio server-saude/citizens_project/)
# é importante utilizar a versão 3.13, pois algumas dependências não têm suporte para versões mais novas.
python3.13 -m venv .venv # apenas na primeira vez
#linux
source .venv/bin/activate
#windows
.\.venv\Scripts\Activate.ps1pip install -r requirements.txtcd ../docker
docker compose up -d #linux pode precisar de SUDOcd ../citizens_project
python manage.py makemigrations
python manage.py migratepython manage.py seed_allpython manage.py runserver| Endpoint | Descrição |
|---|---|
/api/concepts/ |
Lista de conceitos padrão (mood, hábito, etc) |
/api/observations/ |
Registros dos pacientes |
/api/drugexposure/ |
Controle de medicação |
/api/person/ |
Perfis de pacientes |
/api/provider/ |
Profissionais de saúde vinculados |
- Crie uma branch com sua feature ou correção
- Faça commit com mensagens claras
- Abra um Pull Request aqui no GitHub
Usamos o pre-commit para manter o código formatado e limpo automaticamente antes de cada commit.
✅ Setup inicial:
pip install pre-commit
pre-commit installIsso instala os hooks para rodar automaticamente.
Hooks incluídos:
- black: formatação padrão para Python
- isort: ordenação de imports
- flake8: boas práticas e erros comuns
- end-of-file-fixer: insere \n no final dos arquivos
- trailing-whitespace: remove espaços extras
O arquivo .pre-commit-config.yaml já está incluído na raiz do projeto.
Use o padrão:
tipo/ticket/nome-descritivoOnde "ticket" é o número do ticket no github issues associado com essa mudança.
feat/7/observation-endpointfix/7/concept-foreign-key-errorhotfix/5/production-crashdocs/3/readme-ajustes
Tipos:
feat/→ nova funcionalidadefix/→ correções de bugsrefactor/→ mudanças internas sem mudar comportamentohotfix/→ correções urgentesdocs/→ documentação
Evite nomes genéricos como "Update code" ou "final version"
Use:
- feat(7): Adiciona endpoint de observações
- fix(5): Corrige constraint de concept
- refactor(3): Limpa models e serializers
- docs(45): Adiciona instruções de setup no README
E sempre adicione:
- O contexto da mudança
- Se afeta algo que precisa ser testado
- Link para o issue no Github
Sempre que houver alterações no banco de dados, siga este fluxo:
-
Atualizar o
models.py- Faça as mudanças necessárias nas classes Django (
./citizens_project/app_saude/models.py).
- Faça as mudanças necessárias nas classes Django (
-
Atualizar o
.dbml- Atualize o arquivo DBML correspondente na pasta
docker/(docker/saude.dbml) para refletir as mudanças feitas nomodels.py. - O DBML é usado para gerar a documentação visual do banco.
- Atualize o arquivo DBML correspondente na pasta
-
Subir o banco de dados local
- Suba o PostgreSQL usando Docker:
cd docker docker compose up -d -
Gerar e aplicar migrações
-
Rode o
makemigrationsemigratepara aplicar as mudanças no Postgres:cd citizens_project python manage.py makemigrations python manage.py migrate -
Se o Django pedir valor default para novos campos, forneça quando aplicável.
-
- Sempre mantenha o
models.pye osaude.dbmlsincronizados. - Após qualquer mudança, atualizar o README se necessario.