Skip to content
claraneves23Public

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

Β 

History

220 Commits

Folders and files

Repository files navigation

πŸ“Œ LocVac – Plataforma Digital de GestΓ£o e Acompanhamento Vacinal

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).


πŸ“– Sobre o Projeto

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.

🎯 Objetivos Principais

  • 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.

πŸš€ Funcionalidades Principais

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.

πŸ› οΈ Tecnologias e Metodologia

Stack TecnolΓ³gica

  • Backend: Spring Boot (Java 17)
  • Frontend: React Native (JavaScript)
  • Banco de Dados: PostgreSQL
  • Design/PrototipaΓ§Γ£o: Figma

Metodologia de Desenvolvimento

O desenvolvimento segue uma abordagem estruturada em camadas, garantindo escalabilidade e seguranΓ§a:

  1. Levantamento de Requisitos: QuestionΓ‘rios com o pΓΊblico-alvo e anΓ‘lise do PNI.
  2. Modelagem: ElaboraΓ§Γ£o de diagramas de caso de uso, classes e banco de dados.
  3. Desenvolvimento: ImplementaΓ§Γ£o paralela das camadas de banco de dados, API e interface mobile.
  4. ValidaΓ§Γ£o: Testes pilotos simulando cenΓ‘rios reais em unidades de saΓΊde.

πŸ“… Cronograma de Atividades

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 βœ…

πŸ—„οΈ Modelagem do Banco de Dados

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"
Loading

πŸ‘₯ Equipe de Desenvolvimento

  • Anilson Goes Lima
  • GlΓ³ria Maria Pianheri
  • JoΓ£o Vitor Vale da Cruz
  • Maria Clara Pirani Neves

πŸ“š ReferΓͺncias BibliogrΓ‘ficas

  • 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).

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages