For ten weeks, you have been building blocks. This week, you assemble them into a project that lives on your resume. The capstone is the single biggest factor in interview outcomes for our graduates. Recruiters do not look for technical complexity alone - they look for: a clear question, a defensible method, a polished output, and a useful conclusion.
What You'll Do This Week
Choose Your Project
Pick a project where you can finish, not the most impressive idea. Have access to data and ideally a real audience - yourself, a friend's business, an open dataset.
Starter ideas by domain
Retail / E-commerce
Sales forecasting, customer segmentation, inventory dashboard.
Finance / BFSI
Stock screener, credit-risk app, expense tracker.
Healthcare / Pharma
Clinical-trial KPIs, resource planner, disease-trend explorer.
Marketing
Campaign attribution, A/B viewer, content performance.
Operations
SLA monitor, defect Pareto, fleet utilisation.
A full project-proposal template is provided in /data/week11-capstone-proposal-template.md. Fill it in and get mentor approval before Day 2.
Sourcing Data
- Kaggle Datasets - well-documented; check licence.
- Government open data - data.gov.in, data.gov.uk, data.gov.
- UCI ML Repository - classics with good provenance.
- Public APIs - World Bank, OpenWeather, Spotify.
- Web scraping - only when ToS allows and you respect robots.txt.
Data Preparation and SQL Pipeline
Cleaning checklist
- Standardise column names (
snake_case) - Parse dates and numbers
- Handle missing values (drop, impute, or flag)
- De-duplicate
- Document every choice in NOTES.md
Five analytical views to build first
- Daily / monthly revenue
- Customer lifetime value
- Top-N products per category
- Cohort retention (sign-up month vs months since)
- Funnel: visit → add-to-cart → purchase
Statistical Analysis in R
Run the EDA recipe from Week 5 on the cleaned data. For every KPI you plan to show: plot its distribution, check seasonal effects, test the most interesting comparison with a t-test or chi-square, and document at least one finding that surprised you.
Shiny App Part 1 - Skeleton
Wireframe on paper first. Each tab: header, filter sidebar, KPI strip, primary chart, secondary chart, data table. Get a stakeholder to sign off before writing UI code.
Project layout
For any app over ~150 lines, break each tab into a Shiny module (moduleServer() + UI function). Modules namespace their inputs, prevent collisions, and let you re-use components.
Shiny App Part 2 - Polish
Performance
- Pre-aggregate slow queries into
.rdsfiles; load once at app start. - Use
bindCache()to memoise expensive reactives. - Profile with
profvis::profvis({}).
Error handling and UX
validate(need(input$x, "Pick a region"))to gate plots.- Wrap risky code in
tryCatchwith a friendly toast. - Add a loading spinner with
shinycssloaders::withSpinner(). - Provide a
downloadButton()on every table.
Checkpoint Review
Week 11 deliverables
- Project proposal (1 page)
- Cleaned data + load scripts in GitHub
- Five SQL views with documentation
- EDA notebook with at least one surprising insight
- Working Shiny prototype (not yet deployed)
- 5-minute walkthrough video (Loom)
Schedule a 30-minute review with your mentor. Bring questions, not defensiveness.