π Customer Churn & Profitability Analysis
An end-to-end project that integrates SQL, Python, Java, and Power BI to simulate a real-world customer churn analytics system. It analyzes transactional behavior, churn risk, and customer value using a SQLite database, automates insights via Python, exposes structured access via Java, and visualizes it through Power BI dashboards.
π§° Tech Stack
Database: SQLite
Data Processing: Python (ETL, churn flagging)
Backend Access: Java (JDBC + CLI menu)
Reporting & Dashboards: Power BI
π Project Structure
Customer_Churn_Project/ βββ churn.db # SQLite database file βββ schema.sql # SQL schema for customers & transactions βββ dummy_data.sql # Sample data insertions βββ etl_script.py # Python ETL + churn logic βββ java/ β βββ Main.java # Java CLI interface β βββ DBConnection.java # JDBC SQLite connector β βββ sqlite-jdbc-3.42.0.0.jar # SQLite JDBC driver βββ powerbi/ β βββ churn_dashboard.pbix # Power BI dashboard file β βββ dashboard1.png # Screenshots of visuals β βββ kpi_cards.png # More visuals βββ README.md
π Data Flow Overview
schema.sql + dummy_data.sql create a simple customer and transaction system.
etl_script.py processes:
Total spend per customer
Last transaction date
Flags churn risk (High if no recent activity)
Outputs customer_summary table
Main.java CLI lets user:
View all summaries
Get churn info by customer ID
Power BI connects to churn.db via ODBC and visualizes churn, spend, risk, and KPIs
π Power BI Dashboard Includes
β KPI Cards (Total Customers, Average Spend, Churn %)
π₯§ Pie chart of High vs Low Risk
π Customer-level churn table
π Region-wise trends (if extended)
- Set up the Database
sqlite3 churn.db < schema.sql sqlite3 churn.db < dummy_data.sql
- Run Python ETL
python etl_script.py
- Compile & Run Java CLI
cd java javac -cp ".;sqlite-jdbc-3.42.0.0.jar" Main.java DBConnection.java java -cp ".;sqlite-jdbc-3.42.0.0.jar" Main
- View Dashboard in Power BI
Open powerbi/churn_dashboard.pbix
Interact with slicers, KPIs, and visuals
π Author
Vedantam Venkata Sri BharathiGitHub: yourusernameLinkedIn: linkedin.com/in/venkata-sri-bharathi-v-713b16214
β Suggestions to Improve
Add time-series forecasting
Connect Java to REST API (Spring Boot)
Use real datasets (Telco, Bank)
Deploy Power BI to online workspace
This project demonstrates strong data flow handling across multiple technologies and is ideal for roles in SQL Development, BI Reporting, or Data Engineering.
Happy analyzing! π