HackYourFuture Data Track, Week 11. The full brief (scenario, all three tiers, and submission steps) lives in the curriculum: Week 11 → Assignment in the HackYourFuture learning platform. Read it first; this repo only gets you started.
Two dashboards reading the same fct_trips / fct_daily_borough_stats marts from Week 10, on Azure PostgreSQL:
- A Metabase analytical dashboard: point-and-click Questions and a shared Dashboard.
- A Streamlit metrics app: a code-first page with KPI, trend, and freshness panels.
Both get documented in metric_definitions.md so nobody argues about what a number means.
This repo is a ready-to-run Streamlit project for the code-first dashboard, plus a destination for your Metabase deliverables:
.
├── README.md <- TODO: your Metabase dashboard link / screenshots go here
├── AI_ASSIST.md <- TODO: template, document one LLM session
├── metric_definitions.template.md <- copy into week11-streamlit/ (see below)
├── week11-streamlit/ <- ready-to-run: project config wired up, KPI panel is a TODO stub
│ ├── app.py <- TODO: implement the headline KPIs panel
│ ├── pyproject.toml
│ ├── uv.lock
│ └── .env.example <- copy to .env, fill in your credentials
└── .hyf/ <- autograder, do not edit
- Metabase: build it directly in the HYF-managed Metabase instance. There is nothing to scaffold here. Save your dashboard into the shared "Week 11 Submissions" collection (not your personal collection) so your teacher can see and grade it, then put its link (plus screenshots or a PDF export) in this
README.md, under "My submission" below. - Streamlit:
week11-streamlit/is already wired up (samerun_querycaching pattern taught in "Building a Metrics Dashboard", Week 11 Chapter 5) with page setup done and the headline-KPIs panel stubbed asraise NotImplementedError(...). Your job is the query and the three.metric()tiles, not the project scaffolding:
cd week11-streamlit
uv sync
cp .env.example .env # fill in your credentials
uv run streamlit run app.pyOnce your KPI panel runs, copy the template into place and fill it in:
cp metric_definitions.template.md week11-streamlit/metric_definitions.mdFill in week11-streamlit/metric_definitions.md: a five-field definition (name, description, calculation, data source, refresh frequency) for every Metabase Question and every Streamlit panel you build.
- Metabase dashboard (in the Week 11 Submissions collection): TODO
- Screenshots / PDF export: TODO
- Presentation recording (private, hosted in the Azure
student-submissionscontainer): TODO
⚠️ Keep the recording private. It shows your screen and voice. Never make it public and never commit the.mp4(git history is forever). Check the frame for passwords,.envcontents, or connection strings before uploading.
Host the recording in Azure: upload the .mp4 to the shared student-submissions blob container (teachers get read access, nothing is public) and put the read-only link in your PR. The container is shared, so name your file after yourself: week-11/<your-name>.mp4 (e.g. week-11/jane-doe.mp4). See "Host the recording on Azure Blob Storage" in the Week 11 Assignment chapter for the az CLI and Portal steps.
To upload by hand, open the hyfstoragedev Storage browser in the Azure Portal (sign in with your HYF account), then go to Blob containers → student-submissions → Upload.
Your pull request should review itself: a reviewer should be able to understand and check it without asking you anything. When you open the PR, GitHub loads a template (.github/PULL_REQUEST_TEMPLATE.md) into the description, fill in every section. Two things carry the most weight:
- Reproducible run instructions. The Streamlit steps above must work from a clean clone against the reviewer's own Postgres:
uv sync, copy.env.exampleto.env, set their ownPOSTGRES_URL(with?sslmode=require) andDB_SCHEMA, thenuv run streamlit run app.py. Name every prerequisite, including your ownfct_tripsmart from Week 10. If a step only works on your machine, it is not reproducible. - Proof for what a reviewer cannot run. A reviewer cannot open your private
dev_<name>schema or your Metabase Questions, so commit screenshots (or a PDF export) of your Metabase dashboard and your running Streamlit app. Screenshots are how you prove "it runs on my data."
See "Package your pull request for review" in the Week 11 Assignment chapter for the full rationale.
The autograder runs static checks (required files present, secrets hygiene, Streamlit code patterns, metric-definition coverage):
bash .hyf/test.sh
cat .hyf/score.jsonPassing score: 60/100. This covers the Required tier only: it cannot verify your dashboards render real data (that needs a live Azure Postgres connection CI does not have), so a passing score is necessary but not sufficient. Your teacher reviews the actual dashboards and presentation for Required/Extra credit.
Follow the Submission section of the assignment chapter: branch week11/your-name, commit, push, open a PR, and note in the PR description whether you also completed any Extra items plus your Metabase dashboard link.