Skip to content

JoaoVitorSampaio/Projeto_BancoDeDados

Repository files navigation

👔 Sistema de Gestão - Loja de Roupas

Este projeto consiste em um sistema completo de CRUD e PDV (Ponto de Venda) para uma loja de roupas, desenvolvido para a disciplina de Banco de Dados I. O sistema é operado via console interativo e utiliza Node.js com MySQL.

🚀 Funcionalidades (Partes 1 e 2)

Gestão Completa (CRUD)

O sistema permite Inserir, Alterar, Pesquisar, Remover, Listar e Exibir detalhes para as seguintes entidades:

  • Clientes: Com critérios de desconto personalizados (Torcedor do Flamengo, fã de One Piece ou natural de Sousa).
  • Vendedores: Controle de matricula e status (Ativo/Inativo).
  • Categorias: Organização dos produtos.
  • Produtos: Controle de marca, tamanho, preço e origem (Fabricados em Mari).

Sistema de Vendas (PDV)

  • Realização de vendas vinculando Cliente, Vendedor e múltiplos Produtos.
  • Cálculo Automático de Desconto: 10% de desconto se o cliente atingir os critérios da especificação.
  • Controle de Estoque: O sistema utiliza transações e bloqueios (FOR UPDATE) para garantir que uma venda não ocorra se não houver estoque disponível.
  • Pagamentos: Suporte a CARTÃO, BOLETO, PIX, DINHEIRO e BERRIES, com status de confirmação.

Consultas e Relatórios

  • Busca de produtos por Nome, Faixa de Preço, Categoria e Filtro de Origem (Mari).
  • Filtro de estoque baixo (menos de 5 unidades).
  • Relatório Geral: Resumo de faturamento, ticket médio e valor total em estoque.
  • Relatório Mensal por Vendedor: Através de VIEW no banco de dados.

🛠️ Tecnologias Utilizadas

  • Linguagem: JavaScript (Node.js)
  • Banco de Dados: MySQL 8.0+
  • Bibliotecas: mysql2/promise (Conexão), dotenv (Segurança), readline/promises (Interface).

📋 Requisitos do Banco de Dados

O sistema utiliza conceitos avançados de SQL:

  • VIEW: vw_relatorio_vendedor para análise de performance.
  • STORED PROCEDURE: confirmar_pagamento para processamento de transações.
  • Integridade: Chaves estrangeiras (FK) e Índices para performance.
  • UML: Diagrama de classes atualizado incluso na raiz (diagrama_uml_classes.png).

⚙️ Como Instalar e Rodar

  1. Instale as dependências:

    npm install
  2. Configure o Banco de Dados:

    • Crie um banco no MySQL chamado loja_roupas.
    • Renomeie o arquivo .env.example para .env e insira suas credenciais (Host, User, Password).
  3. Prepare as Tabelas: Você pode importar o arquivo schema.sql diretamente no seu MySQL Workbench ou rodar no terminal.

  4. Inicie o Sistema:

    npm start

🧪 Testes

Para verificar se todas as regras de negócio (descontos, estoque, etc.) estão funcionando, rode o script de teste automatizado:

node teste_completo.js

👥 Autores


Gabriel Ribeiro

João Vitor Sampaio

📄 Licença

Este projeto está sob a licença MIT.

Projeto desenvolvido para fins acadêmicos - UFPB.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors