Skip to content

sistema de gerenciamento de clientes e produtos desenvolvido em C# com Windows Forms e .NET. Permite cadastrar, editar, remover e listar clientes e produtos, além de registrar e listar vendas. Utiliza PostgreSQL para persistência de dados e segue a Clean Architecture.

Notifications You must be signed in to change notification settings

NeemiasBorges/CSharp_ClientProductManager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 

Repository files navigation

Documentação do Sistema [For study purposes]

Requisitos do Sistema

Gerenciamento de Clientes

  • Cadastrar Cliente: Permite a inclusão de novos clientes com as seguintes informações: nome, endereço, telefone e email.
  • Editar Cliente: Permite a modificação das informações de clientes já cadastrados.
  • Remover Cliente: Permite a exclusão de clientes do sistema.
  • Listar Clientes: Permite o sistema de listar todos os clientes ja criados

Gerenciamento de Produtos

  • Cadastrar Produto: Permite a inclusão de novos produtos com as seguintes informações: nome, descrição, preço e estoque.
  • Editar Produto: Permite a modificação das informações de produtos já cadastrados.
  • Remover Produto: Permite a exclusão de produtos do sistema.
  • Listar Produtor: Permite o sistema de listar todos os produtos criados pelo usuario

Realização de Vendas

  • Registrar Venda: Permite a realização de vendas registrando o cliente, os produtos e a quantidade, preço de cada item vendido.
  • ** Listar Vendas**: Permite listar todas as vendas ja feitas pelo usuario

Relatórios

  • Relatório de Vendas: Gera um relatório detalhando a venda realizada, incluindo informações sobre o cliente,produto,preço e quantidade total no documento.

Requisitos Técnicos e Linguagens utilizads

  • Linguagem de Programação: C#
  • Interface Gráfica: Windows Forms com MetroSet_UI
  • Banco de Dados: PostgreSQL versão 16.3-2
  • Driver de Conexão com PostgreSQL: NPGSQL 8.03
  • Ferramenta de Relatórios: ReportViewer RDLC 17.0.0
  • Arquitetura escolhida: Clean Architecture
  • Testes: MSTest e Moq para testes
  • Logging e Alertas: SEQ

System Design

image

Estrutura do Banco de Dados e Tabelas

clientes

Coluna Tipo Descrição
id integer Identificador único
nome character varying(100) Nome do cliente
id_endereco integer Referência ao endereço
id_telefone integer Referência ao telefone
email character varying(100) Email do cliente

contato

Coluna Tipo Descrição
id integer Identificador único
nome character varying(100) Nome do contato

endereco

Coluna Tipo Descrição
id integer Identificador único
nome character varying(100) Nome do endereço

produto

Coluna Tipo Descrição
id integer Identificador único
nome character varying(100) Nome do produto
descricao character varying(255) Descrição do produto
preco numeric(10,2) Preço do produto

vendas

Coluna Tipo Descrição
id integer Identificador único
data_criacao timestamp Data de criação da venda
id_usuario integer Identificador do usuário
id_cliente integer Identificador do cliente

vendascorpo

Coluna Tipo Descrição
id integer Identificador único
id_venda integer Referência à venda
id_produto integer Referência ao produto
id_estoque integer Referência ao estoque
quantidade double precision Quantidade do produto
preco numeric(10,2) Preço do produto na venda

Estrutura do Projeto e Pastas

Abaixo está a estrutura de pastas do projeto, organizada de acordo com a minha interpretação da Clean Architecture:

/src
├── scriptsSQL.sql
├── /UnitTests
│   ├── DominioTest
│   ├── ApplicationTest
├── /Dominio
│   ├── /Entidades
├── /Aplicacao
│   ├── /DTO
│   ├── /Interfaces
│   ├── /Services
├── /Repositorio
│   ├── /Exceptions
│   ├── /Infra
│   └── /Interfaces
├── /View
│   ├── /Views
│   └── /Forms
│   ├── /Scripts
│   ├── /Content
│   ├── /Database
│   ├── /Fonts
│   ├── /Relatorios/
│   ├───── /PedidoVenda
└── /Infraestrutura
    ├── /Configuracoes
    ├── /Logging
    └── /Integracoes

1. Configuração do Ambiente

  1. Instale o PostgreSQL versão 16

  2. Instale e configure o SEQ para logging e alertas image

2. Conexão com o Banco de Dados

A conexão com o banco de dados PostgreSQL é realizada através do NPGSQL. Para fazer a conexao com o banco de dados, devemos configurar a String de Conexao no arquivo App.config localizado na camada View Deve se alterar a tag PorstgresConnection

3. Configuração do SEQ (Opcional)

Caso deseje configurar tambem o Seq, basta no mesmo arquiv App.config alterar a key Serilog:SeqUrl

4. Configurando o Banco de Dados

Execute os scripts SQL fornecidos na pasta raiz com o nome de scriptsSQL para criar as tabelas necessárias no PostgreSQL.

No momento de configurar o projeto e criar o script, adicionei alguns registros previos nas tabelas para facilitar a primeira utilização do sistema

5. Testes

Os testes unitários e de integração são realizados na camada de Tests importando os objetos da camada de Applicação (DTO) e os de Modelagem na camada Dominio (Entidade) Para executar os testes basta Clicar com o botão direito na camada e selecionar ‘Executar Testes’

6. Executando o Sistema

Abra o projeto no Visual Studio, configure a string de conexão no código e execute o projeto. A interface gráfica será exibida, permitindo a utilização das funcionalidades descritas acima.

Clientes

  • Cadastro/Edição/Exclusão
  • clienteGIF

Produtos

  • Cadatro/Edição/Exclusão/Listar
  • produto

Vendas

  • Cadatro/Edição/Listar
  • vendas

Relatórios

  • relatorio

Contato

entre em contato comigo através dos seguintes canais:

About

sistema de gerenciamento de clientes e produtos desenvolvido em C# com Windows Forms e .NET. Permite cadastrar, editar, remover e listar clientes e produtos, além de registrar e listar vendas. Utiliza PostgreSQL para persistência de dados e segue a Clean Architecture.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published