- 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
- 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
- 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ó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.
- 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
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 |
character varying(100) | Email do cliente |
Coluna | Tipo | Descrição |
---|---|---|
id | integer | Identificador único |
nome | character varying(100) | Nome do contato |
Coluna | Tipo | Descrição |
---|---|---|
id | integer | Identificador único |
nome | character varying(100) | Nome do endereço |
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 |
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 |
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 |
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
-
Instale o PostgreSQL versão 16
-
Instale e configure o SEQ para logging e alertas
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
Caso deseje configurar tambem o Seq
, basta no mesmo arquiv App.config
alterar a key Serilog:SeqUrl
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
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’
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.
entre em contato comigo através dos seguintes canais:
- E-mail: neemiasb.dev@gmail.com
- Telefone: +55 11 96292-6357