Data Analyst / Engineer · Projects

Project 3: A dashboard people can trust

Marking guide version 1 · Lessons: DT9 lessons 1–5, DT6 lesson 3, DT10 lesson 4

The problem and who it's for

SabziSathi's dashboard announces "SabziSathi is growing fast!". It reads the raw files, so its revenue of ₹23,66,966 includes cancelled orders, repeats and staff tests; its bar chart starts near the smallest bar, so Hadapsar looks seven times Baner; it lists the top customers with their phone numbers; it shows every count of customers moving, down to 1; and it doesn't say how old its data is. The three store managers read it on their phones each morning and aren't data people.

Scope

Not included

Before you start

Starter files

Download everything at once: starter/data-starter.zip.

Milestones

  1. Write the dashboard brief: readers, decisions, frequency, three metrics with definitions.
  2. Switch the page to the marts and fix the headline numbers (tests 1 and 2).
  3. Add the definitions (test 3).
  4. Redraw the charts with zero-based bars, titles and tables (tests 4 and 8).
  5. Remove personal data, hide small counts and add the freshness line (tests 5 to 7).
  6. Run all 8 tests twice in a row, then test the page with a reader.

Expected outputs

Acceptance tests

# Input Expected result
1 pytest tests/test_dashboard.py 8 of 8 pass, twice in a row
2 A copy of the warehouse with only the marts The page still builds (test 1)
3 The headline numbers 196,576,400 paise net revenue, 2,918 delivered orders, 67,367 paise average order value (test 2)
4 The store bar chart Bar heights in proportion to each store's revenue, from zero (test 4)
5 The customers-moved-in table No count below 5 shown; "fewer than 5" instead (test 5)
6 The whole page No name, phone or email from the customer file; "Data up to 30 Oct 2026" (tests 6 and 7)

Failure and recovery exercises

  1. Add a total row to the moves table and work out a hidden count from it. Explain why that's a privacy problem, then remove the total.
  2. Change the bar chart's axis to start at 90% of the smallest value and run test 4. Describe what readers would believe, then restore it.
  3. Make the build fail on purpose (for example by renaming a mart) and decide what the page should show the next morning. Write it as a runbook line.

Evidence to submit

Marking guide and self-check

Pass rule: every Safety-critical (S) and Mandatory (M) item must be met. A single unmet safety item means the project is not complete, whatever else is done. Quality items are for your own improvement.

Your answers are saved in this browser on this device. Self-checked means you checked your own work against this guide; it is not a reviewer's approval. Never paste passwords, keys, tokens or real customer data here.

Checklist (marking guide version 1)
Evidence

← PreviousA warehouse with personal data protected
ProLearners Assist