Skip to content

Guilherme-ASF/Analytics-Customiz-vel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📈 Power BI para Restaurantes: Plataforma Customizável de Data Analytics para Food Service

Status do Projeto Licença

O "Power BI para restaurantes". Uma plataforma de Business Intelligence (BI) customizável para donos de food service transformarem dados operacionais massivos em decisões estratégicas.


💡 O Desafio e a Solução Proposta

O Problema (A Dor da Maria)

Restaurantes geram dados complexos e volumosos através de múltiplos canais (iFood, Rappi, próprio app, presencial), mas os donos não possuem a ferramenta adequada para unificar, explorar e extrair insights rápidos. A dificuldade em responder perguntas cruciais como "Qual produto vende mais no iFood na quinta à noite?" ou "Em quais regiões o tempo de entrega piorou?" impede a tomada de decisões ágil e informada.

Nossa Solução: Power BI para Restaurantes

Power BI para Restaurantes é uma plataforma construída para dar poder a donos de restaurantes, como Maria, através da visualização de dados. O objetivo é fornecer uma ferramenta:

  1. Customizável e Sem Código: Permitir a criação de dashboards personalizados através de uma interface intuitiva.
  2. Focada em Métrica de Food Service: Apresentar métricas relevantes para a operação (RFM, Logística, Vendas).
  3. Comparativa e Analítica: Facilita a comparação de períodos e a aplicação de filtros avançados.
  4. Colaborativa: Capacidade de salvar e gerenciar layouts.

✨ Tecnologias e Arquitetura

Stack Técnica Detalhada

Categoria Tecnologia Versão Principal Justificativa e Utilização
Frontend (UI) Flutter / Dart SDK 3.x+ Desenvolveu a aplicação web, priorizando UX, layout flexível e renderização de gráficos.
Backend (API) Node.js (Express) Node 18+ API leve responsável por receber o payload de consulta e executar a query SQL dinâmica.
Banco de Dados PostgreSQL 14+ Robusto para data warehousing e otimizado com Materialized Views.
Otimização de Dados Materialized Views (MVs) SQL/Postgres MVs pré-calculam e pré-agregam métricas complexas (RFM, Sumários), garantindo consultas rápidas.
Scripts Python 3 Utilizado para scripts de inicialização, criação de schema e geração de dados.

Decisões Arquiteturais Chave (Foco em Performance)

  1. Otimização de Dados (MVs): O uso de Materialized Views (MVs) é a principal decisão arquitetural de performance. Por exemplo, a MV mv_delivery_performance usa o PERCENTILE_CONT(0.9) para fornecer métricas de entrega estáveis (P90), pré-calculadas e prontas para o consumo.
  2. Consulta Dinâmica Estável: O backend Node.js é projetado para:
    • Aplicar prefixos de tabela (p. ou h.) para resolver ambiguidades em JOINs complexos.
    • Gerenciar a agregação (SUM, AVG) e a cláusula GROUP BY de forma condicional, desativando-os em MVs que já são pré-agregadas por natureza (como RFM), o que evita erros de lógica e duplicação de agregação.
  3. Persistência de Estado: O estado do dashboard (layout, visualização e filtros) é salvo localmente (SharedPreferences), permitindo o gerenciamento nomeado de layouts pelo usuário final.

🚀 Como Executar o Projeto Localmente

🔧 Pré-requisitos

  • Git
  • Node.js (v18+ ou superior)
  • Python 3 (Com os módulos psycopg2, argparse, e os instalados)
  • Flutter SDK (Canal Stable)
  • PostgreSQL Database (URL de conexão ativa)

1. Instalação e Configuração

  1. Clone o repositório:

    git clone [https://github.com/Guilherme-A-Silva/Analytics-Customiz-vel.git](https://github.com/Guilherme-A-Silva/Analytics-Customiz-vel.git)
    cd Analytics-Customiz-vel
  2. Configuração do Ambiente (.env): Crie um arquivo .env na raiz do projeto contendo a URL de conexão com seu banco de dados PostgreSQL:

    DATABASE_URL="postgresql://user:password@host:port/dbname"
    

2. Inicialização do Banco de Dados (Sequência Obrigatória)

Execute os scripts Python na ordem exata para criar o schema e popular as Materialized Views (MVs). O argumento --db-url é obrigatório para conectar o script ao banco de dados.

Passo Script Ação Comando de Execução
1 create_schema.py Cria as tabelas transacionais (brutas). python create_schema.py --db-url="$DATABASE_URL"
2 generate_data.py Popula as tabelas com os 500.000 registros de vendas simuladas. python generate_data.py --db-url="$DATABASE_URL"
3 create_mvs.py Cria e atualiza as Materialized Views otimizadas. python create_mvs.py --db-url="$DATABASE_URL"

3. Execução do Backend e Frontend

Inicie as aplicações a partir dos seus respectivos diretórios:

Aplicação Pasta Comando
Backend (API) backend/ cd backend
npm install (primeira vez)
node server.js
Frontend (Flutter) analise_ui/ cd analise_ui
flutter pub get (primeira vez)
flutter run -d chrome

Acesso

A plataforma estará acessível no navegador na porta indicada pelo comando flutter run (geralmente http://localhost:8080/).


🔑 Funcionalidades Chave Implementadas

  • Gerenciamento de Layouts: Salvar, carregar e excluir layouts completos de dashboard nomeados.
  • Gráficos Pré-Definidos: Catálogo com mais de 10 templates focados em métricas de food service.
  • Recarga Otimizada: Recarregamento individual de cartões e recarga automática após operações críticas.
  • Formatação de UX: Conversão de datas ISO para dd/MM, formatação condicional de valores (R$ vs. Unidades) e eliminação de sobreposição de rótulos.
  • Manual de Usuário: Pop-up detalhado no menu lateral explicando a função de cada botão.

🤝 Contato

Desenvolvido por: [Guilherme Augusto/Kelder] Email: [guilhermekelder@gmail.com] LinkedIn

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors