O projeto CarteiraVacinal é uma iniciativa da Hackathon de 2025 da Turma 4 do Programa 1000Devs, organizada pela mesttra em parceria com a Johnson & Johnson Medtech e o Hospital Israelita Albert Einstein. O Professor Rogério de Freitas organizou o evento com o objetivo de desenvolver uma solução para gerenciamento de vacinas, permitindo o cadastro e acompanhamento das imunizações de pacientes.
Este repositório contém o Backend do projeto, desenvolvido com Java, Maven e Spark, com o uso do jdbc para garantir conectividade com o banco de dados. O backend foi projetado para ser consumido por Clients de APIs, como o Postman e pelo frontend, criado especialmente para esta aplicação, desenvolvida em HTML, CSS, Javascript e Bootstrap, disponível clicando aqui.
Esta WebAPI permite que seja feitas requisições HTTP, contendo interações de CRUD (Criar, Ler, Atualizar e Deletar), sendo elas:
- ✅ Gerenciamento de Pacientes: Cadastrar, editar e excluir pacientes.
- ✅ Gerenciamento de Imunizações: Cadastrar, editar e excluir imunizações associadas a um paciente.
- ✅ Consulta de Dados: Exibir informações sobre pacientes e suas vacinas aplicadas.
No backend, usei o HikariCP para gerenciar as conexões do Banco de dados.
O HikariCP é um pool de conexões JDBC para bancos de dados, projetado para ser extremamente rápido, leve e eficiente. Ele é amplamente utilizado em aplicações Java que precisam gerenciar conexões com bancos de dados de forma otimizada.
Principais Características do HikariCP
- Alto desempenho – Considerado um dos pools de conexão mais rápidos disponíveis.
- Baixo consumo de memória – Usa menos threads e menos recursos que outros pools, como C3P0 ou Apache DBCP.
- Recuperação automática – Se uma conexão falha, o HikariCP pode restaurá-la automaticamente.
- Configuração simplificada – Possui poucas configurações, mas altamente otimizadas por padrão.
- Suporte a timeout e validação de conexões – Evita conexões zumbi ou mal configuradas.
- Linguagem de programação utilizada.
- Gerenciador de dependências e automação de builds.
- Framework para criação de APIs REST em Java.
- Conteinerização da aplicação.
- Integração contínua (CI/CD) para gerar a imagem Docker.
Para esta parte do projeto sendo o Backend, o Jorge Luis se encarregou de criar todo o Backend para ser consumido e usado pelo Frontend:
O desenvolvimento do Backend da CarteiraVacinal foi gerenciado utilizando GitHub Projects no modelo Kanban, permitindo que eu me exercitasse com uma das metodologias mais utilizadas para gerenciamento de projetos. As atividades foram organizadas e marcadas com a tag Backend, e atribuia um card para indicar que estava trabalhando na respectiva tarefa e em qual estágio de desenvolvimento ela se encontrava. Você pode ter acesso ao quadro Kanban clicando aqui.
Para manter um fluxo de trabalho eficiente e organizado, utilizei as seguintes práticas:
- Controle de versão: Git/GitHub, seguindo o fluxo de trabalho do Git Flow.
- Convenção de commits: Aplicamos a metodologia Conventional Commits para manter um histórico de mudanças padronizado e legível.
- Gerenciamento de tarefas: Cada atividade era associada a uma issue, detalhando a tarefa a ser executada, testada e revisada.
- Revisão de código: A equipe utilizou Pull Requests (PRs) para revisar e validar as alterações antes de integrá-las ao código principal.
-
Abertura de uma branch de trabalho:
- A branch era criada seguindo a metodologia Git Flow, com o mesmo nome do card atribuído ao colaborador.
- Todo o desenvolvimento era realizado nessa branch.
-
Criação de issues:
- Cada issue detalhava a tarefa, seus critérios de aceitação e testes necessários.
- O líder técnico, Jorge Luis, revisava e validava as tarefas.
-
Commits estruturados:
- Todos os commits seguiam a convenção Conventional Commits, permitindo melhor rastreabilidade e documentação.
-
Criação de Pull Requests (PRs):
- Após a conclusão de uma tarefa, um PR era criado para a branch development.
- A descrição do PR incluía detalhes sobre as funcionalidades desenvolvidas, modificações e eventuais correções realizadas.
- O líder técnico revisava e testava a implementação antes de realizar o merge.
- Desenvolvimento da funcionalidade em uma branch específica.
- Commits organizados seguindo a convenção de commits.
- Criação de Pull Request (PR) para a branch development.
- Revisão e testes pelo líder técnico.
- Merge na branch development após aprovação.
- Ação do GitHub Actions:
- Após o merge, o GitHub Actions era acionado automaticamente.
- O frontend era compilado e uma imagem Docker era gerada.
- Essa imagem era utilizada na infraestrutura do site para garantir a implantação contínua.
Esse fluxo garantiu um desenvolvimento ágil, organizado e alinhado às boas práticas do mercado.
"Assim como no Frontend, fui liderança técnica no Backend. Por ser mais familiarizado, foquei no Desenvolvimento, aplicando padrões de usos, como a Programação Orientada a Objetos, Repository Pattern, Injeção de Dependência para manter o fluxo de Desenvolvimento saudável, o mais genérico e legível possível sempre buscando validações centralizadas, assim de evitar demais verificações pelo Frontend. Foi uma experiência incrível, o uso do Java e o Spark foram essenciais pela praticidade e pela manutenção futura (se houver) do projeto."
Siga os passos abaixo para rodar o Backend localmente:
-
Clone o repositório:
Primeiro, clone o repositório do backend:git clone https://github.com/Jorgeluisreis/CarteiraVacinal-backend.git cd CarteiraVacinal-backend -
Instalação do Maven: Certifique-se de ter o Maven instalado no seu computador. Caso não tenha, clique aqui para ter acesso ao tutorial.
-
Configuração do Banco de Dados: Para rodar o backend, é necessário ter o MySQL instalado e configurado. Após configurar o banco de dados, execute o script de criação das tabelas contido na pasta
datapara criar as tabelas e dados necessários. O arquivo se chamascript_sql_vacina.txt. -
Configuração do Arquivo
.env: Na pastasrc/main/resources, crie um arquivo.envcom as seguintes variáveis de configuração:DB_HOST=Endereço do Banco de Dados DB_PORT=Porta do Banco de dados DB_NAME=vacinacao DB_USER=root DB_PASSWORD=Senha criada
Com essas configurações, você estará pronto para interagir com o banco de dados local.
- Rodando o Backend:
Com o Maven instalado e o banco de dados configurado, basta rodar o comando abaixo para compilar e rodar a aplicação:
O backend estará disponível para interações via API. 🚀
mvn clean install mvn exec:java
O Postman é uma ferramenta popular para testar e consumir APIs. Ele permite que você faça requisições HTTP de forma simples e intuitiva, além de visualizar respostas, testar diferentes cenários e automatizar testes de APIs. Usar o Postman é uma forma prática de interagir com a API do Backend do projeto CarteiraVacinal, permitindo que você envie dados, faça consultas e visualize as respostas da API sem precisar escrever código.
Usar o Postman para consumir a API facilita o processo de desenvolvimento e testes. Com ele, você pode:
- Testar as rotas da API de forma rápida e fácil.
- Interagir tanto com a versão local quanto com a versão em produção da API.
- Explorar todas as funcionalidades disponíveis (CRUD de Pacientes, Imunizações, etc.).
- Organizar e salvar requisições para reutilização posterior.
-
Baixar o Arquivo da Collection:
Na pastadatado repositório, você encontrará um arquivo chamadoCarteiraVacinal.postman_collection. Esse arquivo contém todas as rotas da API, prontas para serem usadas no Postman. -
Abrir o Postman:
Caso não tenha o Postman instalado, você pode baixá-lo gratuitamente no site oficial, caso já tenha o Postman mas não sabe usar, clique aqui para assistir um tutorial introdutório. -
Importar a Collection:
- Abra o Postman.
- Clique em Import no canto superior esquerdo da tela.
- Selecione o arquivo
CarteiraVacinal.postman_collection.jsonque você baixou da pastadata. - Após a importação, todas as rotas estarão disponíveis no Postman.
-
Configuração da URL:
Ao importar a collection, as rotas da API estarão configuradas para o ambiente de produção. Caso estiver rodando localmente, a URL da API éhttp://localhost:3300. -
Consumindo a API:
Agora, você pode começar a testar a API, realizando operações como:- Cadastrar um paciente (POST)
- Consultar informações de vacinas aplicadas (GET)
- Atualizar dados de pacientes (PUT)
- Excluir um paciente (DELETE)
Agora, basta explorar, testar e interagir com a API de forma prática e eficiente utilizando o Postman. 🚀
Este projeto é de código aberto e com a Licença MIT, além de estar disponível para uso educacional e colaborativo. Clique aqui para saber mais.
💡 Projeto desenvolvido para a Hackathon 2025 do Programa 1000Devs 🎯


