Este projeto consiste no desenvolvimento completo de um sistema web para gerenciamento de farmácia, integrando de funcionários, produtos, estoque, vendas, clientes, fornecedores e despesas, utilizando Java, Spring Boot, MySQL e uma interface web desenvolvida com HTML, CSS e JavaScript.
O sistema foi desenvolvido em equipe utilizando metodologias ágeis, versionamento com Git, além de boas práticas de arquitetura em ambientes Linux. Contribuí ativamente tanto no backend quanto no frontend, focando na otimização das consultas SQL e na organização do fluxo de dados.
• Cadastro e edição de funcionários, incluindo cargos, endereços,
farmacêuticos e gerentes.
• Acesso a dados relacionais e consultas otimizadas utilizando
Spring Data JPA.
• Busca avançada por nome, CPF e CRF (farmacêuticos).
• Registro completo com endereço, CPF, telefone e e-mail.
• Validações de dados, constraints de unicidade e atualização em cascata.
• Cadastro de produtos com nome, código, fabricante e concentração.
• Itens com datas de vencimento e relação direta com estoque e vendas.
• Atualização automática durante operações de entrada e saída.
• Registro de vendas associando cliente, farmacêutico, item e quantidade.
• Controle financeiro básico através da tabela de despesas.
• Possibilidade de gerar relatórios e consultas filtradas no banco.
• Relação fornecedores → itens (tabela associativa).
• Controle de status e dados completos de contato.
• Construído sobre o padrão MVC.
• Spring Data JPA para mapeamento objeto-relacional.
• Repositórios personalizados com consultas específicas, como:
@Query("SELECT f FROM Farmaceutico f WHERE LOWER(f.funcionario.nome) LIKE LOWER(CONCAT('%', :termo, '%')) OR LOWER(f.crf) LIKE LOWER(CONCAT('%', :termo, '%'))")
• Uso de herança no banco (JOINED) para entidades como Funcionario, Gerente e Farmaceutico.
O banco pharmabd contém 15 tabelas totalmente normalizadas, incluindo:
• funcionario, gerente,farmaceutico
• produto, estoque, item
• cliente, venda
• fornecedor, fornecedor_item
• despesa e outros.
Toda a estrutura foi integrada ao projeto por meio de entidades
JPA com relacionamentos:
• OneToMany
• ManyToOne
• ManyToMany
• Herança JOINED
• APIs REST para CRUD completo.
• Validações, exceções customizadas e padronização de respostas.
• Otimização de consultas SQL e eliminação de consultas desnecessárias.
• Construída com HTML, CSS e JavaScript.
• Organização modular com menus para Funcionários, Produtos, Clientes, Estoque, Vendas e Relatórios.
• Integração com backend via JSON.
• Testes unitários e de integração.
• Execução do sistema em ambiente Linux.
• Otimização de queries mais pesadas (ex.: JOINs complexos em tabelas de funcionários e vendas).
O sistema final permite:
• Gerenciar toda a operação de uma farmácia.
• Registrar vendas, despesas e fornecedores.
• Controlar produtos, estoque e vencimento.
• Emitir relatórios e pesquisar qualquer entidade usando filtros eficientes.
• Manter uma estrutura escalável e modular para futuras expansões (ex.: login, dashboards e permissões).
• Java · Spring Boot · JPA/Hibernate
• MySQL
• HTML · CSS · JavaScript
• Git · GitHub
• Linux · Apache Maven
• Desenvolvimento backend e frontend.
• Modelagem e integração com bancos relacionais.
• Lógica de negócio e raciocínio analítico.
• Trabalho em equipe, organização e metodologias ágeis.