O foco principal deste projeto é, com base nos ensinamentos da Trybe, desenvolver uma solução para melhorar a gestão de cardápios e estoque de um restaurante 🍝 🦐, Chapa Quente 🍛 🥘. O sistema busca otimizar o processo de criação de cardápios, permitindo que as restrições alimentares dos clientes e a disponibilidade dos ingredientes em estoque sejam levadas em consideração.
O projeto foi iniciado por uma equipe anterior, fui responsável por concluir as funcionalidades restantes. Essas incluem:
- Implementação de testes para classes já existentes
- Criação de uma nova classe para mapear pratos e suas receitas (ingredientes e quantidades),
- Geração de cardápios dinâmicos com base em restrições alimentares e a gestão de estoque.
- Teste de Classes Existentes: Implementação de testes para as classes
Ingredient
eDish
, garantindo o correto funcionamento dos métodos mágicos e da lógica interna dessas classes. - Mapeamento Pratos-Ingredientes: Criação de uma classe que lê arquivos CSV para mapear pratos do cardápio com seus ingredientes e quantidades necessárias.
- Geração de Cardápios Dinâmicos: Implementação de um método que gera cardápios com base em restrições alimentares, filtrando pratos que não podem ser consumidos.
- Gestão de Estoque: Implementação de métodos que verificam a disponibilidade de ingredientes no estoque e consomem os ingredientes conforme necessário para a produção de pratos.
O objetivo é garantir que o restaurante Chapa Quente possa gerir suas receitas de forma mais eficiente, substituindo o método atual, que utiliza arquivos CSV, por uma solução mais otimizada e flexível.
- Python - Linguagem de programação utilizada para desenvolver o sistema.
- Pytest - Framework de testes utilizado para garantir a qualidade do código.
- CSV Handling - Manipulação de arquivos CSV para leitura e gerenciamento de dados de pratos e ingredientes.
- OOP (Programação Orientada a Objetos) - Paradigma utilizado para modelar os ingredientes, pratos, cardápios e estoque do restaurante.
- Dicts e Sets (Python) - Estruturas de dados usadas para mapeamento de receitas e pratos, e para armazenar ingredientes e restrições alimentares.