📘 SERIES · CHAPTER 39

Build an End-to-End Data Project India 2026

A complete walkthrough — from raw messy data to a Power BI dashboard and presentation-ready insight. Build a portfolio piece that answers real business questions using SQL, Python, and Power BI.

⏱ 18 min read📅 September 2026📍 India · Noida · Delhi NCR
← Ch 38: Cloud Analytics↩ Back to Series Start

What we are building

This chapter walks through a complete, realistic data analytics project — the kind you would add to your portfolio and present in an interview. We use an e-commerce orders dataset (freely available on Kaggle) and go from raw CSV to a 3-page Power BI dashboard with a findings summary.

Dataset
E-commerce orders (Kaggle)
Tools used
Python, SQL (MySQL), Power BI
Total time
8–12 hours
Output
Dashboard + GitHub README + 1-page summary
Difficulty
Beginner–Intermediate

Phase-by-phase walkthrough

01

Choose a dataset and define business questions

1–2 hrs

The most important step — and the one most beginners skip. Do not just download a dataset and start cleaning. Write down 3–5 specific business questions you want to answer BEFORE touching the data.

EXAMPLE
Dataset: Indian e-commerce orders (Kaggle — "E-Commerce Sales Dataset")

Business questions:
1. Which product categories have the highest return rate?
2. Is there a relationship between order value and return probability?
3. Which cities generate the highest revenue — and which have the worst return rates?
4. What is the revenue impact of returns by category?
5. Are there seasonal trends in order volume and return rates?
02

Data exploration and cleaning in Python

2–3 hrs

Load the dataset, understand its shape and quality, then clean it. Document every decision you make — this becomes the data quality section of your final report.

PYTHON / SQL CODE
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

# Load data
df = pd.read_csv('ecommerce_orders.csv')

# Initial exploration
print(df.shape)           # rows × columns
print(df.dtypes)          # column types
print(df.isnull().sum())  # missing values per column
print(df.duplicated().sum()) # duplicate rows

# Data cleaning
# Fix date columns
df['order_date'] = pd.to_datetime(df['order_date'], errors='coerce')

# Standardise text columns
df['city'] = df['city'].str.strip().str.title()
df['category'] = df['category'].str.strip().str.upper()
df['status'] = df['status'].str.strip().str.lower()

# Remove duplicates
df = df.drop_duplicates(subset='order_id')

# Remove rows with missing critical fields
df = df.dropna(subset=['order_date', 'amount', 'category'])

# Create derived columns
df['is_returned'] = (df['status'] == 'returned').astype(int)
df['month'] = df['order_date'].dt.to_period('M')
df['year'] = df['order_date'].dt.year

print(f"Clean dataset: {df.shape[0]:,} rows")
df.to_csv('orders_clean.csv', index=False)
03

SQL analysis — answer your business questions

2–3 hrs

Load the cleaned CSV into MySQL (or query directly in BigQuery/Athena) and write SQL to answer each business question. One query per question.

PYTHON / SQL CODE
-- Q1: Return rate by category
SELECT
  category,
  COUNT(*)                              AS total_orders,
  SUM(is_returned)                      AS returns,
  ROUND(100.0 * SUM(is_returned)
        / COUNT(*), 1)                  AS return_rate_pct,
  ROUND(SUM(CASE WHEN is_returned = 1
            THEN amount ELSE 0 END), 0) AS returned_revenue
FROM orders_clean
GROUP BY category
ORDER BY return_rate_pct DESC;

-- Q2: Revenue and return rate by city (top 15)
SELECT
  city,
  COUNT(*)                              AS orders,
  ROUND(SUM(amount), 0)                 AS total_revenue,
  ROUND(100.0 * SUM(is_returned)
        / COUNT(*), 1)                  AS return_rate_pct
FROM orders_clean
GROUP BY city
ORDER BY total_revenue DESC
LIMIT 15;

-- Q3: Monthly order volume trend
SELECT
  DATE_FORMAT(order_date, '%Y-%m')      AS month,
  COUNT(*)                              AS orders,
  ROUND(SUM(amount), 0)                 AS revenue,
  ROUND(AVG(amount), 0)                 AS avg_order_value
FROM orders_clean
GROUP BY month
ORDER BY month;
04

Python EDA — visualise the patterns

1–2 hrs

Turn SQL results into charts. Three or four clear charts are better than ten cluttered ones. Focus on charts that support your business questions.

PYTHON / SQL CODE
# Chart 1: Return rate by category (horizontal bar)
cat_stats = df.groupby('category').agg(
    orders=('order_id', 'count'),
    returns=('is_returned', 'sum')
).assign(return_rate=lambda x: 100 * x['returns'] / x['orders'])
.sort_values('return_rate', ascending=True)

fig, ax = plt.subplots(figsize=(10, 6))
bars = ax.barh(cat_stats.index, cat_stats['return_rate'],
               color=['#ef4444' if r > 15 else '#22c55e'
                      for r in cat_stats['return_rate']])
ax.axvline(x=cat_stats['return_rate'].mean(),
           color='#6366f1', linestyle='--', label='Average')
ax.set_xlabel('Return Rate (%)')
ax.set_title('Return Rate by Product Category', fontsize=14, fontweight='bold')
ax.legend()
plt.tight_layout()
plt.savefig('chart_return_by_category.png', dpi=150)

# Chart 2: Monthly revenue trend
monthly = df.groupby('month').agg(revenue=('amount','sum')).reset_index()
monthly['month_str'] = monthly['month'].astype(str)

fig, ax = plt.subplots(figsize=(12, 5))
ax.plot(monthly['month_str'], monthly['revenue'],
        marker='o', color='#0284c7', linewidth=2)
ax.fill_between(range(len(monthly)), monthly['revenue'],
                alpha=0.15, color='#0284c7')
ax.set_title('Monthly Revenue Trend', fontsize=14, fontweight='bold')
ax.set_xticklabels(monthly['month_str'], rotation=45)
plt.tight_layout()
plt.savefig('chart_monthly_revenue.png', dpi=150)
05

Power BI dashboard — make it self-explanatory

2–3 hrs

Import your cleaned CSV into Power BI and build a 1-page executive dashboard. Use the three-panel layout: KPIs at top, main chart in the middle, breakdown table at the bottom.

  • Page 1 (Executive): Total orders, Total revenue, Return rate %, Returned revenue — as KPI cards; Return rate by category as horizontal bar; Monthly trend as line chart
  • Page 2 (Geography): Map visual with city-level revenue; Top 10 cities by revenue table; City filter slicer
  • Page 3 (Deep Dive): Category + city cross-table; Date range slicer; Order status breakdown donut
  • Use one consistent colour for positives (green/blue), one for negatives (red/orange)
  • Add a text box at the top: "Last refreshed: [date] | Data from: [source] | [X] orders, [date range]"
  • Write a 2-sentence insight text box: "Electronics has the highest return rate at 24% — 3× the average. Returns cost ₹12.4L in FY2026."

Phase 6 — Final deliverables and presentation

💻
GitHub Repository
  • README.md — project objective, dataset source, tools used, key findings
  • data/ folder — raw CSV + cleaned CSV
  • notebooks/ — Jupyter notebook with Python EDA
  • sql/ — .sql files with all analytical queries
  • visuals/ — PNG exports of all charts
  • dashboard/ — Power BI .pbix file (optional) or screenshots
📄
1-Page PDF Summary
  • Section 1: Executive Summary (3 sentences — what, how, key finding)
  • Section 2: Data Overview (rows, columns, date range, source)
  • Section 3: Top 3 Findings (each with supporting data point)
  • Section 4: Recommendation (one specific, actionable business recommendation)
  • Section 5: Methodology (brief — tools used, cleaning steps)
  • Keep to 1 page — the discipline of brevity is itself impressive
📱
LinkedIn Post
  • Hook line: "I analysed [X] e-commerce orders to find out why returns are hurting margins"
  • Key finding: the single most surprising number
  • Screenshot of your best chart or dashboard page
  • What you would recommend (1 sentence)
  • 3 hashtags: #DataAnalytics #PowerBI #SQL
  • End: "Full project on GitHub — link in comments"

10 mistakes that kill portfolio projects

#1
No business question
Answer: "What is the average order value?" is not a business question. "Which cities have above-average order values but below-average retention — and what does it cost us?" is.
#2
Using a pre-cleaned dataset
Kaggle "clean" datasets teach nothing about real analyst work. Find a dataset that needs at least 3-4 cleaning decisions.
#3
No documentation
Cleaning steps with no explanation. Good: "Removed 847 rows where amount = 0 — these are cancelled orders before payment confirmation."
#4
One-chart analysis
A single chart does not show analytical range. Minimum 3 different chart types addressing different questions.
#5
No recommendation
Findings without a recommendation show you can describe data but not analyse it. Always end with one actionable suggestion.
#6
Dashboard with 12 charts on one page
Clutter shows poor design judgement. 3-5 charts per page max. Each chart earns its space or is removed.
#7
Wrong chart types
A pie chart with 8 slices. A bar chart for time trends (use line). Know chart selection — Chapter 10 of this series covers it.
#8
Skipping GitHub
A dashboard screenshot on LinkedIn with no code = hard to verify. GitHub shows you can document your work.
#9
Project on a topic you cannot explain
If you do a healthcare project but cannot answer basic domain questions in an interview, it backfires. Pick a domain you understand.
#10
Giving up when data is messy
Messy data is a feature, not a bug. Document the messiness — it shows you have worked with real-world data.

Frequently asked questions

What makes a good end-to-end data project for an analyst portfolio in India?

A strong portfolio project for Indian data analyst job applications has five components: (1) a real, messy dataset — not a textbook-clean CSV (Kaggle, data.gov.in, and company annual reports are good sources); (2) documented data cleaning steps showing you can handle real-world data quality issues; (3) SQL or Python analysis answering 3-5 specific business questions; (4) a Power BI or Excel dashboard that a non-technical person can understand in 30 seconds; (5) a 1-page summary or GitHub README explaining what you found and what decision it could inform. The business question framing matters most — "what is the return rate?" is weak; "which product categories have return rates above 15% and what is the revenue impact?" is strong.

Where can I find free datasets for a data analytics project in India?

Best free datasets for Indian data analyst portfolio projects: data.gov.in (Indian government open data — thousands of datasets on agriculture, transport, health, finance); Kaggle.com (global ML and data datasets — search for India-specific ones); RBI.org.in (Reserve Bank of India publishes detailed financial and economic data); SEBI.gov.in (stock market data, company filings); Google Trends (free, downloadable, shows India-specific search interest); MoSPI.gov.in (Ministry of Statistics — official Indian economic data); Amazon India and Flipkart product data (scraped or via Kaggle datasets); IRCTC and Indian Railways data (publicly available train schedule and delay data). Choose a dataset in a domain you understand — e-commerce if you shop online, healthcare if you have that background, finance if you have worked in banking.

How long should an end-to-end data project take to build?

A solid portfolio project takes 8-12 hours of focused work spread over 3-5 days. Budget: 1-2 hours for finding and understanding the dataset; 2-3 hours for data cleaning and exploration; 2-3 hours for SQL or Python analysis; 2-3 hours for the Power BI or Excel dashboard; 1 hour for writing the summary and uploading to GitHub. Many beginners rush the analysis and spend too much time on making the dashboard look perfect — the insight quality matters more than dashboard aesthetics. If a project takes more than 20 hours, you are probably over-engineering it — scope down to 3-5 clear questions and answer those well.

Do I need Python for a data analytics project or is SQL and Excel enough?

For a strong portfolio project in India in 2026: SQL + Power BI is the minimum baseline for a junior analyst project; adding Python (pandas for cleaning, matplotlib/seaborn for visualisation) significantly strengthens the portfolio and signals you can work beyond Excel-level analysis. You do not need machine learning for an analyst portfolio — clean SQL queries and clear Python EDA (exploratory data analysis) are more valued than a rushed ML model. A project that answers 5 clear business questions with SQL and shows the results in a clean Power BI dashboard is more impressive to Indian hiring managers than a Jupyter notebook with an unexplained random forest model.

How do I present a data project in a data analyst interview in India?

Present your portfolio project in an interview using the 5-part structure: (1) Context — "I analysed 3 years of e-commerce order data with 500,000 rows"; (2) Problem — "The business question was: which product categories are driving the highest return rates and why?"; (3) Approach — "I cleaned the data in Python, wrote SQL queries to calculate return rates by category and region, and built a Power BI dashboard"; (4) Finding — "Electronics in Tier 2 cities had a 23% return rate vs 8% average — driven by wrong-size orders"; (5) Recommendation — "I recommended adding a product fit guide for electronics, which the company later tested with a 4% drop in returns". Keep it to 2-3 minutes, then invite questions. Have the dashboard open on screen if possible.

Should I put my data project on GitHub or LinkedIn for job applications in India?

Both — they serve different purposes. GitHub: upload your code (Python notebook, SQL scripts), the cleaned dataset (if it is small and not proprietary), screenshots of the dashboard, and a detailed README. Your GitHub link on your resume signals that you write clean, documented code. LinkedIn: write a post about the project — share a key finding as a screenshot, tag the business question, and end with "happy to share the full analysis." LinkedIn posts about data projects get strong engagement from recruiters and hiring managers. Do both: GitHub for technical credibility, LinkedIn for visibility. Recruiters in Noida and Delhi NCR actively search LinkedIn for profiles with portfolio project posts.

What is a good data analytics project idea for freshers in India?

Best data analytics project ideas for freshers in India: (1) E-commerce return analysis using a Kaggle dataset — answer which categories, cities, and order sizes have the highest return rates; (2) IPL cricket performance analysis using publicly available ball-by-ball data — batting/bowling trends over seasons; (3) Indian stock market sector performance using NSE/BSE data from Yahoo Finance; (4) COVID-19 state-wise India analysis using data.gov.in public datasets — vaccination rates vs case counts; (5) Food delivery analysis using a Swiggy or Zomato Kaggle dataset — restaurant ratings, delivery times, and cuisine popularity. Tip: choose a domain you can explain confidently in an interview — if you follow cricket, do the IPL project; if you shop online, do the e-commerce project. Domain familiarity helps you ask better questions.

Build your end-to-end project with live mentorship

EVIKA ACADEMY students build a complete portfolio project during the course — with mentor review, SQL live sessions, and Power BI walkthroughs. Noida Sector 51 (Aqua Line Metro). Free demo available.

📱 WhatsApp 8081035456 — Book Free Demo
← Ch 38: Cloud Analytics↩ Back to Series Start
🎓 Free Demo Class — Online & Offline · Noida Sector 51