Painel Streamlit para visualizar, analisar e prever dados de vendas de um restaurante
Projeto Pedacinho do Céu

Este painel foi desenvolvido usando Streamlit. Vários pacotes de código aberto são usados para processar os dados e gerar as visualizações, por exemplo. pandas, geopandas, leafmap, matplotlib e pydeck.
Este é um projeto de análise de dados para um bar e restaurante localizado no sul da ilha de Florianópolis. O objetivo do projeto é utilizar as informações disponíveis para realizar análises e obter insights que possam ser utilizados para tomar decisões estratégicas.
Nota: Resultados de gráficos e tabelas no power bi, estão disponíveis na pasta data/processed.
Índice
- 🚀Introdução
- 🔮Arvore de Diretorios
- 🌃Arquitetura do projeto
- 🎆Tecnologias Utilizadas
- 💎Pré-requisitos
- ✨Instalando o Projeto
- 🎉Executando o Projeto
- 👾Testes
- 🔥Utilizando a API com Insomnia
- 🥶Versão atual
- 👹Coletando Dados
- 👻Processando Dados
- 🤖Visualizando os Dados
- 👽Futuras Atualizações
- 🐳Tecnologias e conceitos utilizados
- 🧠Roadmap v1
Introdução
Este projeto é um estudo de caso de Big Data e Power BI. O objetivo é demonstrar como coletar, processar, analisar e visualizar grandes volumes de dados em tempo real usando ferramentas e tecnologias como Python, SQLite e Power BI.
O projeto é baseado em um restaurante chamado "Pedacinho do Céu". O restaurante está localizado em uma cidade turística e serve comida tradicional da região. O restaurante está interessado em coletar dados de várias fontes para analisar e obter insights sobre o negócio. O restaurante também deseja criar visualizações e relatórios interativos para ajudar na tomada de decisões e na compreensão de tendências e padrões nos dados.
O mesmo utiliza a linguagem Python e diversas bibliotecas para análise de dados, como Pandas, NumPy e Plotly. Além disso, é utilizado o framework Streamlit para a criação de uma interface interativa para o usuário, permitindo a visualização dos dados e a interação com as funcionalidades desenvolvidas.
Entre as funcionalidades desenvolvidas, estão a análise de vendas por mês, a previsão de clientes para o próximo mês, a análise de dados de clientes cadastrados, a exibição de um mapa de localização do estabelecimento e a criação de uma história do bar e restaurante.
Para utilizar o projeto, basta clonar o repositório e instalar as dependências listadas no arquivo requirements.txt. Em seguida, execute o comando "streamlit run app.py" para iniciar a aplicação.
-
Coleta de dados: O projeto utiliza diversas fontes de dados, como arquivos CSV, APIs e bancos de dados. Os dados são coletados e processados em uma variedade de formatos para atender às necessidades do projeto. A coleta de dados é um processo crucial para garantir que as informações corretas estejam disponíveis para análise e visualização.
-
Processamento de dados: O projeto utiliza uma variedade de técnicas para processar e limpar os dados coletados, incluindo o uso de bibliotecas Python para análise e transformação de dados. Os dados são organizados e limpos para garantir que estejam prontos para análise e visualização. O processamento de dados é uma etapa importante no processo de garantir que as informações corretas estejam disponíveis para o usuário final.
-
Armazenamento de dados: O projeto utiliza uma variedade de tecnologias de armazenamento de dados, incluindo bancos de dados relacionais e não relacionais, armazenamento em nuvem e arquivos CSV. Os dados são armazenados de forma a garantir que estejam seguros e disponíveis para análise e visualização. O armazenamento de dados é um componente crítico do projeto, garantindo que os dados estejam disponíveis quando necessários.
-
Análise e visualização de dados: O projeto utiliza ferramentas de análise e visualização de dados, como Power BI e bibliotecas Python, para extrair informações significativas dos dados coletados. As informações são apresentadas de forma clara e intuitiva, permitindo que o usuário final compreenda facilmente os insights obtidos a partir dos dados. A análise e visualização de dados são etapas críticas no processo de transformação de dados em informações úteis.
-
Atualização e manutenção: O projeto requer atualizações regulares para garantir que os dados estejam atualizados e precisos. Além disso, a manutenção do sistema é importante para garantir que as tecnologias utilizadas estejam atualizadas e seguras. A atualização e manutenção do sistema são etapas críticas para garantir que o projeto continue funcionando de forma eficiente e eficaz ao longo do tempo.
O projeto utiliza conceitos de Big Data e Power BI. Vamos revisar como cada tecnologia é aplicada no projeto:
- Linguagem de programação Python para desenvolvimento do back-end e front-end da aplicação web, utilizando o framework Streamlit para criação da interface do usuário.
- Pandas e Numpy para manipulação e análise de dados, realizando operações como seleção, filtragem, agrupamento e junção de dados.
- Matplotlib e Plotly para criação de gráficos e visualizações de dados interativas.
- Scikit-Learn para modelagem de dados, com algoritmos de aprendizado de máquina para previsão e classificação.
- Power BI para criação de dashboards e relatórios interativos e visuais a partir dos dados gerados e analisados na aplicação web.
Combinando Big Data e Power BI, este projeto oferece uma solução completa para coletar, processar, analisar e visualizar grandes volumes de dados em tempo real, ajudando na tomada de decisões informadas e oferecendo insights valiosos para o negócio do restaurante "Pedacinho do Céu".
Arvore de Diretorios
Abaixo está a estrutura de diretórios do projeto:
.
├── 📂 .github
├── 📂 .husky
├── 📂 .vscode
├── 📂 assets
├── 📂 backend
│ └── 📂 admin
│ ├── 📂 conf
│ ├── 📂 data_crawlers
│ ├── 📂 target_url_crawlers
│ ├── .gitignore
│ ├── docker-compose.yml
│ ├── Dockerfile
│ ├── go_spider.py
│ ├── README.md
│ └── requirements.txt
├── 📂 build
├── 📂 client
├── 📂 docs
├── 📂 myenv
├── 📂 docs
├── 📂 src
│ ├── 📂 api
│ ├── 📂 data
│ ├── 📂 error
│ ├── 📂 log
│ ├── 📂 public
│ ├── 📂 scripts
│ └── main.py
├── .dockerignore
├── .editorconfig
├── .env
├── .gitignore
├── .npmrc
├── .travis.yml
├── app.py
├── architeture.md
├── AUTHORS.md
├── CHANGELOG.md
├── docker-compose.yml
├── Dockerfile
├── LICENSE
├── Makefile
├── package-lock.json
├── package.json
├── Procfile
├── pyproject.toml
├── README.md
├── requirements.txt
├── runtime.txt
├── SECURITY.md
└── setup.sh
Arquitetura do projeto
A arquitetura do projeto é dividida em várias partes:
.github: diretório que contém arquivos relacionados à integração contínua com o GitHub.
.husky: diretório que contém arquivos relacionados à configuração do Husky, ferramenta que permite a execução de scripts no Git Hooks.
admin: diretório que contém arquivos relacionados à administração do projeto, como scripts para extração de dados (data_crawlers) e URLs alvo (target_url_crawlers).
docs: diretório que contém arquivos relacionados à documentação do projeto.
src: diretório que contém o código fonte do projeto, organizado em diferentes subdiretórios, como api (que contém as rotas da aplicação), data (que contém os arquivos de dados), error (que contém o tratamento de erros), log (que contém os arquivos de logs) e public (que contém arquivos estáticos, como imagens).
app.py: arquivo que contém a configuração e inicialização da aplicação Flask.
docker-compose.yml: arquivo que contém a configuração do Docker Compose para a execução da aplicação e do banco de dados.
Dockerfile: arquivo que contém a configuração do Docker para a construção da imagem da aplicação.
Makefile: arquivo que contém os comandos de automatização de tarefas do projeto.
README.md: arquivo que contém a descrição do projeto e sua documentação.
requirements.txt: arquivo que contém as dependências do projeto.
LICENSE: arquivo que contém as informações sobre a licença do projeto.
Tecnologias Utilizadas
Neste projeto "Pedacinho do Céu", diversas tecnologias são utilizadas para coletar, processar, armazenar e visualizar dados. Abaixo está uma lista dessas tecnologias e como elas se encaixam no projeto:
-
Docker Compose: Ferramenta para definir e gerenciar aplicações multi-container usando arquivos de configuração (docker-compose.yml). É usado para simplificar o processo de inicialização e gerenciamento de todos os serviços envolvidos no projeto.
-
Power BI: Ferramenta de Business Intelligence (BI) da Microsoft para criar relatórios e visualizações de dados. É usado para analisar e visualizar os dados coletados e processados pelo projeto.
-
Flask (opcional): Microframework Python para desenvolvimento de aplicações web. Pode ser usado para criar uma API RESTful que expõe os dados