Skip to content

A aplicação consiste num sistema de gerar cardápios considerando possíveis restrições alimentares e também a disponibilidade dos ingredientes em estoque.

Notifications You must be signed in to change notification settings

SamuelRocha91/restaurantOrders

Repository files navigation

🍝🦐 Chapa Quente 🍛🥘 - Gerador de Cardápios

🌐

Manipulação de classes no REPL do Python

Este projeto foi desenvolvido para o restaurante Chapa Quente com o objetivo de criar uma ferramenta eficiente de construção de cardápios, considerando as restrições alimentares dos clientes e a disponibilidade de ingredientes no estoque. Atualmente, o gerenciamento de receitas e estoque é feito de maneira ineficiente através de arquivos CSV, e este projeto visa solucionar esse problema com uma abordagem mais organizada e funcional.

🛠️ Funcionalidades Implementadas

  • Mapeamento de pratos e receitas: Foi criada uma classe que mapeia os pratos e seus respectivos ingredientes e quantidades.
  • Gerador de cardápios: Implementação de uma classe responsável por gerar cardápios com base nas restrições alimentares e na disponibilidade de ingredientes.
  • Gestão de estoque: Classe implementada para gerenciar o estoque de ingredientes, garantindo que os pratos disponíveis possam ser preparados com os ingredientes em estoque.
  • Testes: Implementação de testes utilizando o framework pytest, cobrindo as funcionalidades da aplicação, como a validação de pratos, ingredientes e restrições.

🚵 Habilidades Exercitadas

  • Uso de Hashmaps com Dict e Set: Utilização das estruturas dict e set do Python para gerenciamento de pratos e ingredientes.
  • Testes de software: Prática de escrita de testes unitários para classes utilizando pytest.
  • Orientação a Objetos: Implementação de classes, métodos e atributos que seguem os princípios de orientação a objetos.

📋 Requisitos

  • Python 3.8 ou superior
  • Pip (gerenciador de pacotes do Python)

🔧 Instalação e Execução

Siga as instruções abaixo para clonar e executar o projeto em sua máquina local:

1. Clone o repositório

git clone https://github.com/seu-usuario/seu-repositorio.git

2. Navegue até o diretório do projeto

cd seu-repositorio

3. Crie um ambiente virtual (opcional, mas recomendado)

python3 -m venv venv
source venv/bin/activate  # No Windows, use: venv\Scripts\activate

4. Instale as dependências

Instale as dependências descritas no arquivo requirements.txt e no arquivo dev-requirements.txt:

pip install -r dev-requirements.txt

5. Execute os testes

Para rodar os testes automatizados, utilize o comando:

pytest --cov=src --cov-report=term-missing

📝 Estrutura de Arquivos

A estrutura do projeto é organizada da seguinte forma:

.
├── src/
│   ├── models/
│   │   ├── dish.py            # Implementação da classe Dish
│   │   ├── ingredient.py      # Implementação da classe Ingredient
│   │   └── stock.py           # Implementação da classe Stock (Gestão de Estoque)
├── tests/
│   ├── test_dish.py           # Testes para a classe Dish
│   ├── test_ingredient.py     # Testes para a classe Ingredient
│   └── test_stock.py          # Testes para a classe Stock
├── dev-requirements.txt       # Dependências para o desenvolvimento e testes
├── requirements.txt           # Dependências principais do projeto
└── README.md                  # Documentação do projeto

📦 Dependências

As dependências do projeto incluem:

  • black: Formatação de código.
  • faker: Geração de dados falsos para testes.
  • flake8: Ferramenta para linting.
  • httpx: Biblioteca de requisições HTTP.
  • pytest: Framework de testes.
  • pytest-cov: Relatórios de cobertura de testes.
  • pytest-json: Plugin para saída JSON dos testes.
  • pytest-unordered: Plugin para verificar igualdade de conjuntos de forma não ordenada.

About

A aplicação consiste num sistema de gerar cardápios considerando possíveis restrições alimentares e também a disponibilidade dos ingredientes em estoque.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages