pdv-shell icon indicating copy to clipboard operation
pdv-shell copied to clipboard

Olá essa é uma tentativa de simular uma simples implementação de sistema de PDV inspirado no repositório do slackjeff - pdvShell

  • Introdução
  • Requisitos
  • Binarios em Go lang (incluidos no repositório)
    • Estrutura do Projeto
      • Diretório Integration
      • Diretório Resources
  • Roadmap
    • Pontos de melhorias
  • Como iniciar?
    • Usuario Administrador
    • Usuario Vendedor
  • FAQ
    • Como configurar o Envio de Email?
    • Como eu faço para mudar o nome do Mercadinho?
  • DEMO

Introdução

Olá essa é uma tentativa de simular uma simples implementação de sistema de PDV inspirado no repositório do slackjeff - pdvShell

Devido em alguns momentos a complexidade de ser implementado algumas funcionalidades como por exemplo geração do invoice em pdf foi necessário o uso de CLI em go lang para apoio.

Projeto foi feito exclusivamente para testar meus conhecimentos em Shell Script, como deixarei no Github casao mais pessoas possam se interessar e ajudar em melhorias fiquem a vontade!

Lembrando que poderá ter alguns problemas ainda mais que é a primeira versão, mas qual software é 100% funcional e nunca dá problema?

pt

Gum Image

:heavy_exclamation_mark: Linguagens utilziadas:heavy_exclamation_mark:

Latest Release

Requisitos

Será necessário a instalação dos sequites pacotes no Sistem Operacional.

  • [x] :white_square_button: sqlite3
  • [x] :white_square_button: jq
  • [x] :white_square_button: gum

Binarios em Go lang (incluidos no repositório)

Estrutura do Projeto

O projeto foi estruturado algo "parecido" que temos hoje em linguagens mais avançadas que lembra vagamente de Orientação a Objetos.

Diretório Integration

Responsável por guardar os arquivos dos relatórios e invoices.

Diretório Resources

Responsável por guardar os arquivos e ou binários que serão importados pelo script principal app, deixo uma documentação básica de cada módulo.

  • Móduio Email
  • Móduio PDV
  • Móduio Report
  • Móduio sqlite3
  • Móduio Util

estrutura

Roadmap

  • [x] Banco de Dados
    • [x] Tabela Produtos
    • [x] Tabela Vendas
    • [x] Tabela Usuários
  • [x] Sistema Usuários
    • [X] Criação Usuários c/ senha criptografada
  • [x] Utils
    • [X] Encriptar/Decriptar Senha Usuários
  • [x] Sistema Login
    • [X] Validação do usuário/senha
    • [x] Validação de permissão admin
  • [x] Sistema Produtos
    • [x] Cadastro de Produtos
    • [x] Remover Produtos
    • [x] Consultar Estoque
  • [ ] Sistema Vendas
    • [x] Validar Existencia de Produtos
    • [x] Realizar Venda
    • [X] Gerar Invoice
    • [X] Gerar Order JSON
    • [x] Remover Estoque após a venda
    • [x] Cadastrar a Venda na tabela Sales
    • [ ] Envio por email ao finalizar venda ( a ser testado )
  • [ ] Sistema Relatório
    • [X] Relatório de Venda Diário
    • [X] Relatório de Venda da Semana Atual
    • [ ] Envio por email após geração do relatório ( a ser implementado )

Pontos de melhorias

  • Aprimorar o Sistema de Relatório
  • Aprimorar a geração do Invoice, no estado atual, ao gerar invoice com produtos onde o nome tem espaço por exemplo "Leite XPTO 5L", o nome do produto fica com aspas duplas no PDF

Como iniciar?

Para o funcionamento básico deixo dois usuários cadastrados, o que diferencia ambos é as opções que irão aparecer no menu.

basta executar o processo app

Usuario Administrador

Usuario admin
Senha admin

Usuario Vendedor

Usuario vendedor01
Senha 12345

FAQ

Como configurar o Envio de Email?

Basta editar o arquivo email-cfg.json, colocando as configurações da conta de e-mail que irá realizar o envio.

Como eu faço para mudar o nome do Mercadinho?

Basta editar o arquivo util, mudando o conteúdo da variável store_name

DEMO

DEMO