Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/isaque-s-0liveira/inventory-report
Este projeto trata-se de um sistema gerador de relatórios de estoque. A aplicação é capaz de ler esses arquivos, importar os dados de forma estruturada e gerar relatórios que resumem as informações contidas no estoque.
https://github.com/isaque-s-0liveira/inventory-report
csv interface json-handling poo programacao-orientada-objetos protocol pytest python
Last synced: 11 days ago
JSON representation
Este projeto trata-se de um sistema gerador de relatórios de estoque. A aplicação é capaz de ler esses arquivos, importar os dados de forma estruturada e gerar relatórios que resumem as informações contidas no estoque.
- Host: GitHub
- URL: https://github.com/isaque-s-0liveira/inventory-report
- Owner: isaque-S-0liveira
- Created: 2023-12-06T23:27:17.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-09-09T16:37:46.000Z (4 months ago)
- Last Synced: 2024-11-09T20:40:32.338Z (2 months ago)
- Topics: csv, interface, json-handling, poo, programacao-orientada-objetos, protocol, pytest, python
- Language: Python
- Homepage:
- Size: 22.5 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Inventory Report
## Contexto
O foco principal deste projeto é, com base nos ensinamentos da **Trybe**, desenvolver um gerador de relatórios de estoque. O objetivo é processar dados de estoque que podem ser fornecidos através de dois formatos de arquivo diferentes: **CSV** e **JSON**. A aplicação é capaz de ler esses arquivos, importar os dados de forma estruturada e gerar relatórios que resumem as informações contidas no estoque.
O que é a Trybe?🤔
A Trybe é uma escola de desenvolvimento web genuinamente comprometida com o sucesso profissional de seus estudantes. Com o Modelo de Sucesso Compartilhado (MSC) oferecido pela Trybe Fintech, uma instituição financeira autorizada pelo Banco Central do Brasil, os alunos têm a opção de pagar apenas quando estiverem trabalhando.O projeto é composto por várias etapas, como a criação de testes para garantir o correto funcionamento dos objetos e métodos, implementação de classes que herdam de interfaces para lidar com diferentes formatos de arquivo, e o desenvolvimento de um sistema de relatórios que pode produzir resumos simples ou completos dos itens em estoque.
### Funcionalidades e Tarefas Principais:
1. **Teste de Inicialização do Produto**:
- Implementação de testes para garantir que o objeto `Product` possui os atributos corretos quando é instanciado.
2. **Relatório Individual de Produtos**:
- Teste para validar se o método mágico `__str__` do objeto `Product` retorna as informações corretamente formatadas.3. **Criação de Interface para Importação**:
- Implementação de uma interface abstrata chamada `Importer`, que define o método `import_data`, responsável pela importação dos dados.4. **Leitura de Arquivos JSON**:
- Implementação da classe `JsonImporter`, que herda da interface `Importer` e implementa a lógica para leitura e processamento de arquivos no formato **JSON**.5. **Gestão de Estoque**:
- Criação da classe `Inventory`, que será responsável por armazenar os itens em estoque e permitir a adição de novos produtos.6. **Sistema de Relatórios**:
- Criação de um protocolo para gerar relatórios, que será utilizado como contrato para a criação de diferentes tipos de relatórios, como relatórios simples e completos.### Habilidades Desenvolvidas:
- **Programação Orientada a Objetos (POO)**: Modelagem de produtos e estoque utilizando classes e objetos, aplicando conceitos de herança e abstração.
- **Leitura e Manipulação de Arquivos**: Leitura de arquivos nos formatos **CSV** e **JSON** para importar dados de estoque.
- **Testes Automatizados**: Criação de testes unitários para validar o comportamento correto das classes e métodos.
- **Gerador de Relatórios**: Implementação de um sistema flexível de relatórios para exibir informações detalhadas sobre o estoque.---
## Tecnologias Usadas
- [Python](https://www.python.org/) - Linguagem de programação utilizada para o desenvolvimento do projeto.
- [Pytest](https://docs.pytest.org/en/7.0.x/) - Framework de testes utilizado para validar as funcionalidades e garantir a qualidade do código.
- **CSV & JSON Handling** - Manipulação de arquivos nos formatos **CSV** e **JSON** para importação e processamento de dados.
- **Programação Orientada a Objetos (POO)** - Paradigma de programação utilizado para estruturar o código e modelar as entidades como `Product`, `Inventory`, e `Importer`.
- **Protocolos e Interfaces** - Implementação de interfaces e protocolos para garantir contratos de funcionalidade entre as diferentes classes do sistema.