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

No packages published

Languages