Skip to content

dbserver/desafio-pos-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo

Desafio Ponto de Venda (PoS - Point of Sale)

A aplicação Ponto de Venda (PoS - Point of Sale) simula um módulo de frente de caixa de supermercado integrado com o respectivo cadastro de produtos, controlando também seus estoques, em que baixas são dadas sempre que uma venda é concluída.

Visão geral

Classes

Getting started

Pré-requisitos

Workspace

O workspace contém a seguinte estrutura:

.
├── bin
├── lib
├── resources
└── src
    └── utils
  • bin - Local da saída da compilação
  • lib - Local das dependências de projeto
  • resources - Local de arquivos utilitários (ex.: arquivos de dados)
  • src - Local dos arquivos de código fonte da codebase

Note

  • lib não existirá se o projeto não tiver dependências
  • bin não é versionado, logo só existirá localmente, conforme especificado abaixo

Executando o projeto

1. Via terminal de comandos

Criar o diretório bin se ele já não existir

mkdir bin

Note

O comando de criação de diretório pode variar dependendo do SO

Compilar os arquivos de código fonte de src para dentro do diretório bin

javac -cp "src" -d "bin" src/App.java

Executar a classe App (main) compilada dentro do diretório bin

java -cp "bin" App

Desafio

1. Issue Report

Os operadores da aplicação PoS têm reportado que quando lançam uma venda para o cliente retirar mais tarde, quando o cliente chega para pegar os produtos, identifica-se que não existem mais produtos em estoque, e olhando a aplicação, o estoque está negativo. É necessária uma investigação detalhada para correção do comportamento defeituoso.

2. Feature Request

História de Usuário (US - User Story):

Cálculo de troco detalhado

Descrição:

Como um operador da aplicação PoS quero que a mesma calcule o valor do troco para pagamentos em dinheiro de forma precisa e detalhada, levando em consideração a forma mais otimizada possível de fornecer o troco em cédulas e moedas para que eu saiba exatamente quais cédulas e moedas devo entregar ao cliente, e consiga fazê-lo sem prejudicar o caixa.

Critérios de Aceitação:

  • Quando o operador lança um pedido e sinaliza pagamento em dinheiro, a aplicação deve calcular o valor do troco de forma precisa e livre de erros
  • A aplicação deve comparar o valor total do pedido com o valor pago em dinheiro e determinar se há troco (diferença entre valor pago e valor total do pedido)
  • A aplicação deve calcular o troco considerando as seguintes opções (R$):
    • Cédulas: 200, 100, 50, 20, 10, 5 e 2
    • Moedas: 1, 0.50, 0.25, 0.10, 0.05 e 0.01
  • A aplicação deve determinar a combinação mais otimizada possível, o que significa a menor quantidade possível de cédulas e moedas
  • O valor do troco deve ser expresso de forma clara e detalhada, indicando a quantidade das cédulas e moedas a serem entregues
  • A aplicação deve ser capaz de lidar com diferentes valores de pedido e pagamentos em dinheiro

Definição de Pronto (DoD - Definition of Done):

  • Funcionalidade Cálculo de troco detalhado implementada e testada com sucesso
  • Aplicação fornece a combinação mais otimizada possível de cédulas e moedas para o troco
  • A interface do usuário exibe o valor do troco de maneira clara e detalhada
  • A aplicação está em conformidade com os critérios de aceitação definidos

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages