Ir para o conteúdo PET Sistemas de Informação Ir para o menu PET Sistemas de Informação Ir para a busca no site PET Sistemas de Informação Ir para o rodapé PET Sistemas de Informação
  • International
  • Acessibilidade
  • Sítios da UFSM
  • Área Restrita

Aviso de Conectividade Saber Mais

Início do conteúdo

Desenvolvimento de uma plataforma digital para o Centro de Pesquisas Genealógicas de Nova Palma



Durante o 1º semestre de 2026 eu, Isadora, e minha colega, também petiana, Luiza, cursamos a disciplina de Projeto de Software I. Sob a orientação do professor Joaquim Assunção, desenvolvemos um sistema para o Centro de Pesquisas Genealógicas (CPG) de Nova Palma cujo objetivo é permitir a digitalização dos milhares de registros genealógicos que o CPG mantém, e que até então estavam guardados apenas no manuscrito original. Nesta edição da PET Redação, relato nossa experiência desenvolvendo a plataforma, com foco nas adaptações e funcionalidades implementadas para atender os requisitos dos estabelecidos pelo CPG e manter o sistema acessível e de fácil entendimento.

Requisitos iniciais

O processo de desenvolvimento começou com uma visita ao CPG para coleta dos principais requisitos. Em Nova Palma pudemos visualizar os manuscritos que seriam registrados no sistema, além de conversar com os futuros usuários e entender seus objetivos. Os principais pontos levantados foram:

  1. Os registros manuscritos são como “cadastros” de pessoas, e podem conter informações de nascimento, batismo, matrimônio, e morte, além de relações com pais, filhos e cônjuges.
  2. O CPG tinha, anteriormente, utilizado o software The Master Genealogist para cadastrar esses registros, porém foi utilizado por um curto período e não havia verba para renovar a licença. O funcionamento do sistema agradava os usuários, porém o programa estava totalmente em inglês, dificultando o uso, e teve seu desenvolvimento encerrado em 2014.
  3. Os registros manuscritos estão divididos em dezenas de livros, e informações de uma mesma família podem estar espalhadas em livros diferentes. Além disso, os membros das famílias não estão necessariamente registrados em ordem de ascendência, podendo aparecer os filhos antes dos pais. Portanto, é necessário que o cadastro seja flexível quanto à ordem de criação e vinculação de pessoas, para que o usuário possa seguir a ordem dos livros e não precise completar uma família inteira de uma vez.
  4. O formato geral dos registros manuscritos é o seguinte:
  • Homem, com suas respectivas informações, incluindo quem são seus pais e em que livro encontrá-los
  • Esposa, com suas respectivas informações, incluindo quem são seus pais e em que livro encontrá-los
  • Filhos, geralmente com menos informações, e em que livro encontrar seus registros completos
  1. Os usuários finais são leigos na área de computação, portanto o uso e instalação deve ser simplificado.
  2. É altamente desejável que haja uma forma de gerar arquivos de backup dos registros já digitalizados, pois a infraestrutura computacional do CPG é antiga e há uma preocupação com possíveis perdas de dados.

A partir dessas informações, pudemos delimitar e planejar nosso sistema: uma plataforma digital de cadastro de pessoas e do vínculo entre elas, com interface clara e acessível.

Decisões de implementação

Stack

Levando em consideração as necessidades da aplicação e o nosso próprio conhecimento técnico, decidimos desenvolver um sistema web utilizando Vue.js [1], um framework para desenvolvimento front end, complementado pelo Nuxt [2], o framework full-stack do Vue; o banco de dados seria o PostgreSQL [3], instalado localmente, e o Drizzle ORM [4] foi utilizado para facilitar a integração com o restante da aplicação. Para abstrair a necessidade de acessar a plataforma por um navegador, decidimos encapsular nosso sistema usando o Electron [5], um framework que usa componentes desenvolvidos para a web para gerar aplicações desktop.

Dessa forma, garantimos que a aplicação final seria facilmente acessível, sem depender de conexão de internet, e que ainda poderíamos utilizar tecnologias com as quais já tínhamos trabalhado antes, priorizando a qualidade do produto final.

Além dos frameworks relatados acima, utilizamos a biblioteca Family Chart [6] para criar e exibir os vínculos familiares em formato de árvore genealógica, e adaptamos funções de busca e armazenamento de grafos [7] para efetivamente vincular nossos registros.

Interfaces

Inspiradas no software previamente utilizado pelo CPG, The Master Genealogist, decidimos implementar nossas interfaces emulando o que nós carinhosamente chamamos de estética Delphi: fundo cinza, ângulos retos, botões grandes no topo da tela e visualizações em janelas. Nesse quesito preciso destacar minha colega Luiza, que recriou perfeitamente as características estéticas dos programas dos anos 90. Além de (na nossa opinião) lindo, o sistema ficou fácil e intuitivo, com áreas bem divididas e informações claras.

imagem demonstrando o sistema

Fluxo de cadastro

O principal problema relatado pelos usuários quanto à criação de pessoas é que, em outros sistemas testados para a mesma finalidade, era necessário já ter os ascendentes de uma pessoa cadastrados para poder vinculá-los com ela na hora da criação, o que obrigaria-os a buscarem em diversos livros até chegar no primeiro membro de uma determinada família. Por exemplo: para que eu fosse inserida no sistema, meus pais já deveriam estar cadastrados, e, para que meus pais fossem inseridos, os pais deles deveriam estar cadastrados, assim sucessivamente. Isso criava um fluxo muito engessado, que não funcionava bem com a forma como os registros manuscritos foram feitos.

Para resolver isso, mantivemos os registros de pessoas totalmente editáveis após sua criação, incluindo a parte de vínculos, e adicionamos uma maneira rápida de criar parentes durante o cadastro de um indivíduo. 

Como nossos registros podem ser editados, é possível criar uma pessoa sem adicionar nenhum vínculo e posteriormente, quando seus parentes também estiverem cadastrados, vincular as relações. Porém, isso acaba gerando o retrabalho de abrir todos os registros da família novamente e alterá-los. Para mitigar o problema, pelo menos parcialmente, adicionamos uma opção em que o usuário pode criar um parente usando apenas nome, sobrenome e sexo. Dessa forma, esse parente pode ser editado posteriormente, porém não será necessário voltar no registro original para vinculá-lo, pois já estarão relacionados.

Instalação e backup de dados

Uma de nossas preocupações quanto ao sistema estava relacionada ao processo de instalação. Apesar de a plataforma em si estar pronta para uso sem necessidade de configuração, era necessário ter o PostgreSQL instalado e corretamente configurado, com o banco criado. Nós poderíamos pessoalmente fazer essa instalação, porém isso criaria uma dependência entre os usuários do CPG e nós, que estaremos nos formando em poucos semestres, dificultando possíveis trocas de computadores e reinstalação do sistema.

Para manter nosso projeto o mais independente possível, geramos um instalador utilizando o Inno Setup [8] que instala, juntamente com a nossa plataforma, o banco de dados e já o deixa configurado. Dessa forma, caso seja necessário, os usuários finais poderão facilmente instalar toda a aplicação sem precisar de nenhum conhecimento técnico.

A parte do backup de dados também era uma preocupação por depender de acesso ao banco de dados via terminal ou PgAdmin. Para resolver isso, inserimos na aplicação um botão de “Backup” que faz o download de um arquivo .dump contendo todos os dados salvos no banco e preparamos um executável que, após selecionado o arquivo de backup, executa os comandos de restauração do banco.

Essas duas soluções, e a produção de um Guia de Usuário completo e explicativo, garantem que os usuários finais tenham autonomia em todo o processo de uso da plataforma.

Resultado final

Atualmente, nosso Sistema CPG está instalado e sendo utilizado no Centro de Pesquisas Genealógicas de Nova Palma. Durante os testes iniciais os usuários demonstraram satisfação quanto às funcionalidades implementadas e tiveram facilidade em entender o fluxo da aplicação. Abaixo, deixo mais imagens de algumas das funcionalidades implementadas, e o código completo está disponível em https://github.com/fennerspohr/cpg.

Autora: Isadora Fenner Spohr

Referências

[1] – You, E. (2014). Vue.js. Vuejs.Org. https://vuejs.org/

[2] – Nuxt: The Intuitive Web Framework. (n.d.). Nuxt. Retrieved July 14, 2026, from https://nuxt.com/

[3] – The PostgreSQL Global Development Group. (2019). PostgreSQL: The world’s most advanced open source database. Postgresql.Org. https://www.postgresql.org/

[4] – DrizzleORM – next gen TypeScript ORM. (n.d.). Orm.Drizzle.Team. Retrieved July 14, 2026, from https://orm.drizzle.team/

[5] – Electron | Build cross-platform desktop apps with JavaScript, HTML, and CSS. (n.d.). Www.Electronjs.Org. Retrieved July 14, 2026, from https://www.electronjs.org/

[6] – Family Chart. (2026). Github.Io. https://donatso.github.io/family-chart-doc/

[7] – PostgreSQL Family Tree Application Practices – Graph Relation Storage and Search. (2019). Alibaba Cloud Community. https://www.alibabacloud.com/blog/postgresql-family-tree-application-practices—graph-relation-storage-and-search_595037

[8] – Inno Setup. (n.d.). Jrsoftware.Org. Retrieved July 14, 2026, from https://jrsoftware.org/isinfo.php

 

Divulgue este conteúdo:
https://ufsm.br/r-791-3711

Publicações Recentes