Skip to content

brunorreiss/Cadastro-e-Monitoramento-de-Restaurantes-iFood

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cadastro e Monitoramento de Restaurantes - iFood

Vem ser Tech | Dados - Ada Tech (Primavera 2023)



image host

📜 CRÉDITOS

  • Instituição: Let's Code (Ada Tech)
  • Curso: Vem ser Tech | Dados
  • Disciplina: Lógica de Programação I
  • Professores: Thiago

image host

📊: CONTEXTO E OBJETIVO

O desenvolvimento do projeto dar-se-á conclusão do módulo I do curso Vem ser Tech | Dados, consistindo em um sistema simples de cadastro e monitoramentos de restaurantes.

image host

📚 ESPECIFICAÇÃO

O seu grupo foi encarregado de fazer uma interface para cadastro e monitoramento de restaurantes no iFood. Desenvolvam um sistema com menu que tenha as seguintes características:

  • Cadastro de um novo restaurante, da forma [nome_restaurante, [lat, lon], n_pedidos];
  • Criar cardápio;
  • Registrar histórico de vendas;
  • Verificar restaurantes mais pertos de uma localidade;
  • Além disso, crie também pelo menos três novas funcionalidades para essa interface.

Obs:. Você terá em mãos algumas funções que implementam a manipulação de arquivos, para viabilizar o projeto.

image host

🛠️ TECNOLOGIAS UTILIZADAS

  • Python
  • A linguagem utilizada para o desenvolvimento fora Python, tanto por ser a ferramenta de aprendizado utilizada durante o curso, quanto por ser uma linguagem de alto nível, orientada a objetos, funcional e de tipagem dinâmica e forte.

  • JSON
  • Sendo uma importante ferramenta utilizada para trocar informações entre um servidor e um cliente, além de seu formato de dados leve e de fácil leitura, o JSON, neste projeto, fora utilizado de forma que cada entrada representa um restaurante e é definida como um objeto detentor de várias propriedades, como uma matriz de objetos que descrevem os itens do cardápio ou vendas anteriores.

image host

📂 ORGANIZAÇÃO DOS ARQUIVOS

Este projeto inclui arquivos executáveis e de destino, além de acesso ao diretório fonte (repositório), como a seguir:

➔ Arquivos executáveis:

  • main.py - Contém o código-fonte responsável pelos menus disponíveis para o restaurante parceiro e para o cliente (incluindo procedimentos de cadastro, validação de pedidos através da disponibilidade do produto em estoque, mensagens de erro para entradas inválidas etc.).
  • json_manipulation.py - Define um conjunto de funções para lidar com a criação, leitura, validação, gravação e manipulação dos dados em formato JSON no arquivo importado no cabeçalho do código.
  • restaurante.py - As funcionalidades deste código reduzem o estoque do item quando este é confirmado, incrementam o contador de pedidos do restaurante, criam um dicionário representando a solicitação e adicionam o pedido ao histórico de vendas do restaurante.

➔ Bibliotecas utilizadas:

    » No arquivo main.py:
  • import os: fornece funcionalidades para interagir com o sistema operacional, como manipular arquivos, pastas e variáveis de ambiente.
  • import platform: permite ao programa obter informações sobre a plataforma na qual ele está sendo executado, como o sistema operacional e a arquitetura do sistema.
    » No arquivo json_manipulation.py:
  • from uuid import uuid4: sendo uma importação específica do módulo uuid, permite a geração de chaves primárias.
    » No arquivo restaurante.py:
  • import math: sendo a principal biblioteca por fornecer várias funções e constantes matemáticas, neste código, ela é responsável calcular a proximidade entre um conjunto de restaurantes e as coordenadas geográficas do usuário através da fórmula de Haversine.

➔ Módulos internos:

    » No arquivo main.py:
  • from src.restaurante import *: esta linha importa todas as funções, classes e variáveis definidas no módulo "restaurante", localizado no diretório "src." Isso significa que o código pode utilizar todas as definições deste módulo em todo o programa.
  • from src.json_manipulation import *: importa todas as funções, classes e variáveis definidas no módulo "json_manipulation" localizado no diretório "src."

➔ Arquivos de destino:

  • json_db.json: Contém informações fictícias sobre usuários e restaurantes, sendo utilizado como um pequeno banco de dados para o projeto.

➔ Diretório fonte:

image host

🖥️ INSTRUÇÕES DE EXECUÇÃO

Como a proposta do projeto foi a utilização de técnicas e tecnologias vistas em aula, não fez-se necessário a utilização de pacotes externos.

A ordem a seguir, de possível execução dos arquivos do programa, deve ser seguida após realizar o dowload do arquivo ZIP do diretório fonte:

➔ Passo 1) Manipulação do JASON

É necessário que o arquivo json_manipulation.py seja carregado e executado antes de todos os outros do repositório, visto que, em termos de dependência, é o responsável por criar o diretório e o arquivo JSON de banco de dados, caso eles não existam. Após, carrega os dados do arquivo, salva-os na ferramenta JSON e adiciona um novo restaurante ao data-base.

➔ Passo 2) Banco de dados

Diferentemente do arquivo JSON de manipulação, supracitado, este banco armazena os dados dos restaurantes, cardápios e histórico de vendas.

➔ Passo 3) Menu principal

O arquivo main.py exerce a base do projeto quando possui funções as quais exibem o menu principal do programa, permitindo que o usuário escolha entre acessar como 1. parceiro ou 2. usuário. Na opção 1, há o menu de operações disponíveis para um parceiro, como cadastrar um novo restaurante, criar cardápio, ver histórico de vendas, listar restaurantes, remover restaurante, atualizar estoque ou sair. A opção 2, por sua vez, permite que o usuário encontre restaurantes próximos e realize pedidos.

➔ Passo 4) Funções para o restaurante

No arquivo restaurante.py, há funções relacionadas à manipulação de restaurantes, cardápio, atualização de estoque, cálculo de proximidade e realização de pedidos.

➔ Passo 5) O ambiente

Um arquivo de ambiente Conda é indispensável para especificar as dependências necessárias para executar o projeto.

image host

🧠 EQUIPE

Projeto desenvolvido pelos Devs:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages