Skip to content

nospes/Case-Interview-Streamlit-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

📊 Case Interview – Streamlit App

Este projeto implementa uma aplicação interativa em Streamlit para responder a um estudo de caso sobre Customer Success, automação de comunicação e análise de clientes. O sistema se conecta a um banco de dados SQLite e possibilita executar queries, visualizar métricas e até gerar recomendações de produtos usando KNN (K-Nearest Neighbors).


🚀 Funcionalidades

  • Home – Apresenta as perguntas do estudo de caso e respostas conceituais.

  • Q1 a Q5 – Abas dedicadas para responder questões com SQL e análises sobre:

    • Sistema de comunicação automático
    • Orçamento médio por usuário
    • Localização e perfil de clientes
    • Identificação de usuários mais propensos a aceitar ofertas
    • Classificação de churn (usuários ativos vs inativos)
  • Q6 – Duas versões de recomendação de itens:

    • SQL Script com recomendações baseadas em produtos
    • KNN AI Model recomendando itens com base em similaridade entre usuários

🛠️ Tecnologias Utilizadas

  • Streamlit – Interface web interativa
  • SQLite – Banco de dados relacional (armazenado em test.db)
  • Pandas – Manipulação e exibição de dados
  • scikit-learn (NearestNeighbors) – Modelo de recomendação KNN
  • Python 3.12+

📂 Estrutura do Projeto

.
├── app2.py                 # Código principal do Streamlit:contentReference[oaicite:4]{index=4}
├── initi_db.py             # Inicialização do banco de dados SQLite:contentReference[oaicite:5]{index=5}
├── recommendation_model.py # Sistema de recomendação KNN:contentReference[oaicite:6]{index=6}
├── test.db                 # Banco de dados SQLite
├── Introduction.txt        # Introdução e explicações:contentReference[oaicite:7]{index=7}
├── questions.txt           # Perguntas do case:contentReference[oaicite:8]{index=8}
├── Case Interview.pdf      # Enunciado do case:contentReference[oaicite:9]{index=9}
├── case responses.pdf      # Respostas escritas do case
└── README.md               # Este arquivo

▶️ Como Executar o Projeto

  1. Clone o repositório
git clone https://github.com/seu-usuario/case-interview-streamlit.git
cd case-interview-streamlit
  1. Crie um ambiente virtual (opcional, mas recomendado)
python -m venv venv
source venv/bin/activate   # Linux/Mac
venv\Scripts\activate      # Windows
  1. Instale as dependências
pip install -r requirements.txt
  1. Inicialize o banco de dados (se necessário)
python initi_db.py
  1. Rode o app no Streamlit
streamlit run app2.py

O app abrirá em: http://localhost:8501


📊 Exemplo de Queries no App

  • Clientes por localização
SELECT Location, COUNT(ID) AS Total_Users
FROM Users_Data
WHERE Location IS NOT NULL
GROUP BY Location
ORDER BY Total_Users DESC;
  • Classificação Churn vs Ativos
WITH LastLogin AS (
    SELECT User_ID,
           MAX(date(substr(Logged_At, 7, 4) || '-' ||
                   substr(Logged_At, 4, 2) || '-' ||
                   substr(Logged_At, 1, 2))) AS Last_Active_Date
    FROM Users_Logs
    GROUP BY User_ID
)
SELECT u.ID AS User_ID,
       CASE
         WHEN l.Last_Active_Date IS NULL THEN 'Churned'
         WHEN julianday(DATE('now')) - julianday(l.Last_Active_Date) >= 30 THEN 'Churned'
         ELSE 'Active'
       END AS User_Status
FROM Users_Data u
LEFT JOIN LastLogin l ON u.ID = l.User_ID;

📌 Próximos Passos

  • Melhorar o tratamento de dados inconsistentes (ex.: "Lisbon, Lisbon").
  • Adicionar dashboards gráficos com Streamlit (matplotlib/plotly).
  • Expandir o modelo de recomendação para considerar preço e disponibilidade em tempo real.

⚡ Desenvolvido como solução para estudo de caso de Customer Success & Data Analysis.

About

Projeto criado para uma entrevista que usa Streamlit para implementar querries de questões de SQL

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages