Sistema de gerenciamento web

← Voltar

Sistema Web de Gerenciamento de Farmácia (PharmaManager)

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.

Principais funcionalidades do sistema

1. Gestão de Funcionários

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

resultado resultado

2. Gerenciamento de Clientes

• Registro completo com endereço, CPF, telefone e e-mail.
• Validações de dados, constraints de unicidade e atualização em cascata.

3. Controle de Produtos e Estoque

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

resultado

4. Vendas e Emissão de Relatórios

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

resultado

5. Gestão de Fornecedores

• Relação fornecedores → itens (tabela associativa).
• Controle de status e dados completos de contato.

Arquitetura da aplicação

1. Backend com Spring Boot

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

Etapas de desenvolvimento

1. Modelagem e criação do banco

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

resultado

2. Desenvolvimento das rotas e camada de serviço

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

3. Interface Web

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

4. Testes, deploy e refinamento

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

Resultados

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

Tecnologias utilizadas

• Java · Spring Boot · JPA/Hibernate
• MySQL
• HTML · CSS · JavaScript
• Git · GitHub
• Linux · Apache Maven

Competências desenvolvidas

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

Link para o código no GitHub

CV EMAIL GITHUB LINKEDIN DISCORD INSTAGRAM