Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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.

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.

## Entre em contato:

E-mail

isaque oliveira
WhatsApp