O LocVac Γ© uma soluΓ§Γ£o tecnolΓ³gica voltada para a modernizaΓ§Γ£o do acompanhamento vacinal. AtravΓ©s de uma plataforma mobile, o projeto visa centralizar informaΓ§Γ΅es, automatizar alertas e fornecer conteΓΊdo confiΓ‘vel sobre imunizaΓ§Γ£o, seguindo as diretrizes do Programa Nacional de ImunizaΓ§Γ΅es (PNI).
O projeto surge como uma resposta Γ necessidade de digitalizar a tradicional carteira de vacinaΓ§Γ£o fΓsica. A plataforma permite que usuΓ‘rios gerenciem nΓ£o apenas seu prΓ³prio histΓ³rico, mas tambΓ©m o de seus dependentes, integrando:
- Registro digital de doses aplicadas.
- Agenda inteligente de doses futuras.
- NotificaΓ§Γ΅es automatizadas para evitar atrasos.
- ConteΓΊdo tΓ©cnico validado para combater a desinformaΓ§Γ£o.
- DigitalizaΓ§Γ£o: Organizar o histΓ³rico vacinal individual e familiar em um ambiente seguro.
- Engajamento: Aumentar a cobertura vacinal atravΓ©s de alertas e lembretes proativos.
- EducaΓ§Γ£o: Oferecer informaΓ§Γ΅es tΓ©cnicas sobre vacinas, contraindicaΓ§Γ΅es e esquemas de doses.
- PadronizaΓ§Γ£o: Estruturar dados em conformidade com as polΓticas pΓΊblicas de saΓΊde brasileiras.
| Categoria | DescriΓ§Γ£o |
|---|---|
| GestΓ£o de Perfis | Cadastro de usuΓ‘rios e gerenciamento completo de dependentes. |
| Carteira Digital | Registro histΓ³rico de todas as doses aplicadas. |
| Agenda Inteligente | CΓ‘lculo automΓ‘tico de datas para prΓ³ximas doses e reforΓ§os. |
| Alertas e Avisos | NotificaΓ§Γ΅es in-app sobre campanhas, doses prΓ³ximas ou em atraso. |
| Central de InformaΓ§Γ£o | Guia completo sobre indicaΓ§Γ΅es, contraindicaΓ§Γ΅es e reaΓ§Γ΅es adversas. |
| Auditoria e Logs | HistΓ³rico de notificaΓ§Γ΅es e status de leitura para controle do usuΓ‘rio. |
- Backend: Spring Boot (Java 17)
- Frontend: React Native (JavaScript)
- Banco de Dados: PostgreSQL
- Design/PrototipaΓ§Γ£o: Figma
O desenvolvimento segue uma abordagem estruturada em camadas, garantindo escalabilidade e seguranΓ§a:
- Levantamento de Requisitos: QuestionΓ‘rios com o pΓΊblico-alvo e anΓ‘lise do PNI.
- Modelagem: ElaboraΓ§Γ£o de diagramas de caso de uso, classes e banco de dados.
- Desenvolvimento: ImplementaΓ§Γ£o paralela das camadas de banco de dados, API e interface mobile.
- ValidaΓ§Γ£o: Testes pilotos simulando cenΓ‘rios reais em unidades de saΓΊde.
| Atividade | 2025 (2ΒΊ Sem) | 2026 (1ΒΊ Sem) |
|---|---|---|
| ElucidaΓ§Γ£o de requisitos e pesquisa bibliogrΓ‘fica | β | |
| AnΓ‘lise de produtos similares e do PNI | β | |
| Modelagem do sistema e PrototipaΓ§Γ£o (UI/UX) | β | β |
| Desenvolvimento do Backend e Banco de Dados | β | |
| Desenvolvimento do Frontend Mobile | β | |
| Testes de pequena escala e ImplementaΓ§Γ£o | β |
Abaixo, apresentamos a estrutura relacional do banco de dados PostgreSQL utilizada no projeto.
erDiagram
%% ββ Entidades principais ββββββββββββββββββββββββββββββββββββββββββββββ
USUARIO {
uuid id_usuario PK
string nome
string email
string senha_hash
string telefone
boolean ativo
date data_criacao
datetime ultimo_login
boolean mfa_enabled
string mfa_secret
int tentativas_falhas
datetime bloqueado_ate
}
PESSOA {
bigint id_pessoa PK
string nome
date data_nascimento
string cpf
string sexo_biologico
string cns
string cep
string telefone
string foto_url
string nome_responsavel
string rua
string complemento
string municipio
string estado
boolean ativo
}
VACINA {
bigint id_vacina PK
string nome
string descricao
string dose
string via_administracao
string codigo_pni
boolean ativa
string tipo_secao_vacinacao
int idade_minima_meses
int idade_maxima_meses
}
CAMPANHA {
bigint id_campanha PK
string nome
string doenca_alvo
date data_inicio
date data_fim
string publico_alvo
boolean ativa
}
GRUPO_RISCO {
bigint id_grupo_risco PK
string nome
string descricao
}
%% ββ Tabelas de junΓ§Γ£o many-to-many βββββββββββββββββββββββββββββββββββ
VACINA_GRUPO_RISCO {
bigint id_vacina FK
bigint id_grupo_risco FK
}
PESSOA_GRUPO_RISCO {
bigint id_pessoa FK
bigint id_grupo_risco FK
}
CALENDARIO_VACINAL_GRUPO_RISCO {
bigint id_calendario FK
bigint id_grupo_risco FK
}
CATEGORIA_VACINA {
bigint id_categoria PK
string descricao
}
%% ββ AutenticaΓ§Γ£o e seguranΓ§a ββββββββββββββββββββββββββββββββββββββββββ
REFRESH_TOKENS {
uuid id PK
uuid id_usuario FK
string token_hash
datetime expires_at
boolean revoked
datetime created_at
}
EMAIL_VERIFICACAO {
bigint id_email_verificacao PK
string email
string senha_hash
string codigo_hash
int tentativas
datetime expira_em
datetime criado_em
datetime ultimo_envio_em
}
RECUPERACAO_SENHA {
bigint id_recuperacao_senha PK
string email
string codigo_hash
int tentativas
datetime expira_em
datetime criado_em
datetime ultimo_envio_em
}
%% ββ Push notifications ββββββββββββββββββββββββββββββββββββββββββββββββ
EXPO_PUSH_TOKEN {
bigint id_token PK
uuid id_usuario FK
string token
string plataforma
datetime criado_em
}
%% ββ VΓnculo usuΓ‘rioβpessoa ββββββββββββββββββββββββββββββββββββββββββββ
USUARIO_PESSOA {
bigint id_usuario_pessoa PK
uuid id_usuario FK
bigint id_pessoa FK
string tipo_vinculo
boolean pode_visualizar
boolean pode_editar
date data_vinculo
string dsc_parentesco
}
%% ββ VacinaΓ§Γ£o βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
CALENDARIO_VACINAL {
bigint id_calendario PK
bigint id_vacina FK
int faixa_etaria_min_meses
int faixa_etaria_max_meses
string publico_alvo
boolean obrigatoria
string numero_dose
string descricao_dose
string ordem_exibicao
}
DOSE_APLICADA {
bigint id_dose PK
bigint id_pessoa FK
bigint id_vacina FK
bigint id_categoria FK
string nome_custom
int dose_numero
string nome_profissional
string registro_profissional
date data_aplicacao
string lote
string observacao
string fabricante
date data_registro
string unidade_saude
}
PARTICIPACAO_CAMPANHA {
bigint id_participacao PK
bigint id_pessoa FK
bigint id_campanha FK
date data_participacao
}
NOTIFICACAO {
bigint id_notificacao PK
uuid id_usuario FK
bigint id_pessoa FK
bigint id_calendario FK
bigint id_campanha FK
int dias_offset
boolean persistente
string titulo
string mensagem
date data_criacao
date data_visualizacao
boolean lida
string tipo_notificacao
}
VACINA_EFEITO_COLATERAL {
bigint id_efeito_colateral PK
bigint id_vacina FK
string descricao
string severidade
string orientacao
}
VACINA_INFORMATIVO {
bigint id_informativo PK
bigint id_vacina FK
int versao
date data_publicacao
string orgao_emissor
string fonte_referencia
}
VACINA_SECAO_INFORMATIVA {
bigint id_secao PK
bigint id_informativo FK
string titulo_secao
text conteudo
int ordem_exibicao
}
%% ββ Carrossel educativo βββββββββββββββββββββββββββββββββββββββββββββββ
CARROSSEL_ITEM {
bigint id_item PK
string titulo
string descricao
string imagem_url
int ordem_exibicao
boolean ativo
}
CARROSSEL_CONTEUDO {
bigint id_conteudo PK
bigint id_item FK
string titulo_secao
text conteudo
int ordem_exibicao
}
CARROSSEL_CONTEUDO_ITEM {
bigint id_conteudo FK
text item
int ordem
}
%% ββ Relacionamentos βββββββββββββββββββββββββββββββββββββββββββββββββββ
USUARIO ||--o{ USUARIO_PESSOA : "possui"
PESSOA ||--o{ USUARIO_PESSOA : "vinculada em"
USUARIO ||--o{ REFRESH_TOKENS : "possui"
USUARIO ||--o{ EXPO_PUSH_TOKEN : "registra"
USUARIO ||--o{ NOTIFICACAO : "recebe"
PESSOA ||--o{ DOSE_APLICADA : "recebe"
PESSOA ||--o{ PARTICIPACAO_CAMPANHA : "participa de"
PESSOA ||--o{ NOTIFICACAO : "referenciada em"
VACINA ||--o{ CALENDARIO_VACINAL : "compΓ΅e"
VACINA ||--o{ DOSE_APLICADA : "aplicada em"
VACINA ||--o{ VACINA_EFEITO_COLATERAL : "possui"
VACINA ||--o{ VACINA_INFORMATIVO : "possui"
VACINA_INFORMATIVO ||--o{ VACINA_SECAO_INFORMATIVA : "detalha"
CAMPANHA ||--o{ PARTICIPACAO_CAMPANHA : "recebe"
CAMPANHA ||--o{ NOTIFICACAO : "referenciada em"
CATEGORIA_VACINA ||--o{ DOSE_APLICADA : "classifica"
CALENDARIO_VACINAL ||--o{ NOTIFICACAO : "gera"
CARROSSEL_ITEM ||--o{ CARROSSEL_CONTEUDO : "contΓ©m"
CARROSSEL_CONTEUDO ||--o{ CARROSSEL_CONTEUDO_ITEM : "lista"
VACINA ||--o{ VACINA_GRUPO_RISCO : "pertence a"
GRUPO_RISCO ||--o{ VACINA_GRUPO_RISCO : "classifica"
PESSOA ||--o{ PESSOA_GRUPO_RISCO : "pertence a"
GRUPO_RISCO ||--o{ PESSOA_GRUPO_RISCO : "classifica"
CALENDARIO_VACINAL ||--o{ CALENDARIO_VACINAL_GRUPO_RISCO : "restrito a"
GRUPO_RISCO ||--o{ CALENDARIO_VACINAL_GRUPO_RISCO : "restringe"
- Anilson Goes Lima
- GlΓ³ria Maria Pianheri
- JoΓ£o Vitor Vale da Cruz
- Maria Clara Pirani Neves
- CASCIARO, Mario; MAMMINO, Luciano. Node.js Design Patterns (2020).
- DABIT, Nader. React Native in Action (2019).
- DOMINGUES, Carla et al. 46 anos do Programa Nacional de ImunizaΓ§Γ΅es (2020).
- YAHIAOUI, Houssem. Firebase Cookbook (2017).