StockFlow-CLI is a Python command-line inventory management application for small businesses. It allows users to register, update, search, sort, and remove products while storing inventory data locally in a CSV file.
- Adicionar produtos ao estoque com nome, quantidade e preço.
- Atualizar a quantidade e o preço ao cadastrar um produto já existente.
- Pesquisar um produto pelo nome.
- Exibir todos os produtos cadastrados.
- Excluir um produto por completo ou remover apenas uma quantidade específica.
- Ordenar o estoque por ID, produto, quantidade ou preço.
- Ordenar o preço em ordem crescente ou decrescente.
- Esvaziar o estoque, preservando a estrutura do arquivo CSV.
- Python 3.10 ou superior.
- Biblioteca
pandas.
No terminal, navegue até a pasta onde estão os arquivos e execute:
pip install -r requirements.txtExecute o programa pelo terminal:
python main.pyO menu principal será exibido com as opções disponíveis. Informe o número correspondente à ação desejada.
Os dados do estoque são salvos em data/estoque.csv. A pasta data é criada automaticamente na primeira execução, caso ainda não exista. O programa usa o caminho do próprio projeto para localizar esse arquivo, portanto a execução funciona mesmo quando o comando é iniciado em outra pasta.
O arquivo data/estoque.csv possui as seguintes colunas:
| Coluna | Descrição |
|---|---|
id |
Identificador numérico do produto. |
produto |
Nome do produto, armazenado em letras minúsculas e com espaços substituídos por _. |
quantidade |
Quantidade disponível no estoque. |
preco |
Preço unitário do produto. |
- Quantidades e preços devem ser maiores que zero.
- Ao adicionar um produto já cadastrado, a nova quantidade é somada ao estoque existente e o preço é atualizado.
- Ao excluir uma quantidade igual ao total disponível, o produto é removido do estoque.
- As alterações são salvas automaticamente em
data/estoque.csvapós cada operação que modifica os dados.
O programa usa nomes internos em inglês para facilitar a manutenção e a leitura do código:
BASE_DIR,DATA_PATHeSTOCK_FILE: definem os caminhos do projeto e do CSV.create_or_load_stock(): inicializa ou lê o CSV.add_product(): cadastra e atualiza produtos.search_product()eshow_stock(): realizam as consultas.delete_product(): remove produtos ou quantidades.sort_stock(): organiza os registros conforme o campo selecionado.clear_stock(): limpa o estoque.run_system(): controla o menu principal.