Engineers Clinic
BeginnerSoftware trackFP-AI-11

Open city data pipeline: from raw 311 requests to a public dashboard

Build a small, scheduled data pipeline that ingests a city's open service-request data, cleans it, models it in a warehouse and feeds a dashboard of response times.

AI, Data & AnalyticsData Engineering
6 Guided Steps37h Internship TierSubmit: GitHub repo with ingest, clean, load and dashboard code + data tests + warehouse schema diagram + docs/data_dictionary.md + dashboard screenshotsVerified CertificateAI Rubric Graded
Program Overview

Industry project · for Maple & Dune Civic Analytics, a six-person consultancy that builds service dashboards for councils in Canada and the UAE

Maple & Dune has been asked by a mid-sized city council to show how quickly it closes residents' service requests: potholes, missed bin collections, broken streetlights, graffiti and noise complaints. The city publishes these requests as open data, but the files are messy. Column names change between years, dates come in two formats, about 8% of rows have no ward, and some requests are duplicated when a resident reports the same pothole twice.

Today a council analyst downloads the file each month, fixes it by hand in a spreadsheet and pastes charts into a slide. It takes two days and nobody can repeat it exactly.

You will build the pipeline that replaces this, using a real public dataset: Toronto's 311 service requests from the City of Toronto open-data portal, or a similar dataset from Dubai Pulse if you prefer. The pipeline will: - download the raw files on a schedule and keep them unchanged; - clean and standardise them with tests that fail on bad data; - load them into a small warehouse (DuckDB) as a fact table and dimension tables; - produce a dashboard showing requests per week, median days to close by service type and ward, and the 10 slowest service types.

The council's target is clear: the dashboard must refresh with one command in under 10 minutes, and every number on it must be reproducible from the raw files. Done looks like a repo with the pipeline, data tests, the warehouse model, the dashboard and a short data dictionary the council analyst can use.

Data ingestionData cleaningData quality testingDimensional modellingSQLDashboarding
What you submit

GitHub repo with ingest, clean, load and dashboard code + data tests + warehouse schema diagram + docs/data_dictionary.md + dashboard screenshots

Stack: Python, DuckDB, pandas, SQL, Streamlit or Apache Superset, Make or a simple scheduler

How it is graded
  • Reproducible pipeline30

    One command downloads, cleans, loads and refreshes the dashboard in under 10 minutes, and raw files are kept unchanged.

  • Data quality25

    Cleaning rules are written down, and at least eight data tests run on every load and fail loudly on bad data.

  • Sound warehouse model20

    A fact table of requests and at least three dimensions (date, service type, ward) with keys that join correctly.

  • Useful dashboard and docs25

    The dashboard shows the four required views with correct numbers, and the data dictionary explains every field.

Pass 60% · Merit 75% · Distinction 90%

Learning Outcomes
Ingest public data reproducibly
clean messy records with written rules
write data tests that catch bad input
model a fact table and dimensions
build a dashboard from warehouse queries
document data for its users
Target Audience

Engineering Students

Diploma, B.Tech, B.E., BCA, MCA, or M.Tech students seeking practical experience.

Aspiring Developers

Developers who want to build proof-of-work capstone projects for tech resumes.

Job Seekers

Graduates looking for AI-evaluated code review & verified industry credentials.