Loading repository data…
Loading repository data…
FelipeSoeiroLopes / repository
🛒 Sistema web completo para gestão de pequenos mercados - Gerenciamento de clientes, fornecedores, produtos e vendas com controle de estoque automatizado | Java, JSP, MySQL
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
O Sistema de Gestão - Mercadinho do Felipe é uma aplicação web completa desenvolvida em Java utilizando o padrão arquitetural MVC (Model-View-Controller) combinado com o padrão DAO (Data Access Object).
O sistema oferece uma solução robusta para gerenciamento de pequenos mercados, incluindo:
Este projeto foi desenvolvido como trabalho da disciplina de Análise e Implementação de Software com foco em:
👑 ADMIN (Administrador)
👤 FUNCIONÁRIO
clientesCREATE TABLE clientes (
pk_id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(100) NOT NULL,
cpf VARCHAR(14) UNIQUE NOT NULL,
telefone VARCHAR(15),
email VARCHAR(100),
endereco VARCHAR(200)
);
fornecedoresCREATE TABLE fornecedores (
pk_id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(100) NOT NULL,
cnpj VARCHAR(18) UNIQUE NOT NULL,
telefone VARCHAR(15),
email VARCHAR(100),
endereco VARCHAR(200)
);
produtosCREATE TABLE produtos (
pk_id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(100) NOT NULL,
valor DECIMAL(10,2) NOT NULL,
qtd INT NOT NULL DEFAULT 0,
categoria VARCHAR(50),
id_fornecedor INT,
FOREIGN KEY (id_fornecedor) REFERENCES fornecedores(pk_id)
ON DELETE SET NULL
);
vendasCREATE TABLE vendas (
pk_id INT AUTO_INCREMENT PRIMARY KEY,
id_cliente INT NOT NULL,
id_produto INT NOT NULL,
quantidade INT NOT NULL,
valor_unitario DECIMAL(10,2) NOT NULL,
valor_total DECIMAL(10,2) NOT NULL,
data_venda DATETIME NOT NULL,
FOREIGN KEY (id_cliente) REFERENCES clientes(pk_id)
ON DELETE RESTRICT,
FOREIGN KEY (id_produto) REFERENCES produtos(pk_id)
ON DELETE RESTRICT
);
funcionariosCREATE TABLE funcionarios (
pk_id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(100) NOT NULL,
cpf VARCHAR(14) UNIQUE NOT NULL,
telefone VARCHAR(15),
email VARCHAR(100),
login VARCHAR(50) UNIQUE NOT NULL,
senha VARCHAR(50) NOT NULL,
tipo_acesso ENUM('ADMIN', 'FUNCIONARIO') NOT NULL
);
erDiagram
CLIENTES ||--o{ VENDAS : "realiza"
PRODUTOS ||--o{ VENDAS : "vendido em"
FORNECEDORES ||--o{ PRODUTOS : "fornece"
CLIENTES {
int pk_id PK
varchar nome
varchar cpf UK
varchar telefone
varchar email
varchar endereco
}
FORNECEDORES {
int pk_id PK
varchar nome
varchar cnpj UK
varchar telefone
varchar email
varchar endereco
}
PRODUTOS {
int pk_id PK
varchar nome
decimal valor
int qtd
varchar categoria
int id_fornecedor FK
}
VENDAS {
int pk_id PK
int id_cliente FK
int id_produto FK
int quantidade
decimal valor_unitario
decimal valor_total
datetime data_venda
}
FUNCIONARIOS {
int pk_id PK
varchar nome
varchar cpf UK
varchar telefone
varchar email
varchar login UK
varchar senha
enum tipo_acesso
}
| Operação | Tabela | Restrição | Comportamento |
|---|---|---|---|
| DELETE | fornecedores | produtos.id_fornecedor | SET NULL - Produtos ficam sem fornecedor |
| DELETE | clientes | vendas.id_cliente | RESTRICT - Não permite exclusão se houver vendas |
| DELETE | produtos | vendas.id_produto | RESTRICT - Não permite exclusão se houver vendas |
| INSERT | produtos | id_fornecedor | Pode ser NULL (fornecedor opcional) |
| INSERT | vendas | id_cliente, id_produto | Obrigatórios e devem existir |
| UPDATE | vendas | quantidade | Ajusta estoque automaticamente |
Antes de começar, certifique-se de ter instalado em sua máquina:
| Software | Versão Mínima | Download |
|---|---|---|
| ☕ Java JDK | 8 ou superior | Oracle JDK |
| 🐬 MySQL Server | 5.7 ou superior | MySQL Downloads |
| 🐱 Apache Tomcat | 8.5 ou superior | Tomcat Downloads |
| 🌐 Navegador Web | Versão atual | Chrome, Firefox, Edge, Safari |
| 💻 IDE (opcional) | - | NetBeans, Eclipse, IntelliJ |
git clone https://github.com/seu-usuario/sistema-mercadinho-felipe.git
cd sistema-mercadinho-felipe
# Entre no MySQL
mysql -u root -p
# Execute o script
source script_bancodedados.sql
# Verifique as tabelas criadas
USE mercadinho_felipe;
SHOW TABLES;
script_bancodedados.sqlEdite o arquivo src/java/Config/ConectaBanco.java:
public class ConectaBanco {
// Ajuste conforme sua configuração local
private static