Build the Week 11 assignment scaffold (Metabase + Streamlit dashboards)#1
Merged
Conversation
The repo was still the raw HackYourFuture template: generic task-1/task-2 placeholder folders, a boilerplate README, and a test.sh that always wrote score 0 with pass=true. It never matched the curriculum's actual Week 11 assignment (Build Two Dashboards). - README.md: rewritten to explain the two-repo flow (Metabase built directly in the HYF instance, Streamlit cloned from nyc-taxi-streamlit-reference's chapter-5-start branch and dropped into week11-streamlit/). - AI_ASSIST.md, metric_definitions.template.md: templates matching the assignment's required deliverables. - week11-streamlit/README.md: placeholder explaining what replaces this folder. - .hyf/test.sh + .hyf/grader_lib.sh: a real static-analysis autograder (required files, secrets hygiene, Streamlit code patterns, metric-definition coverage, README/AI log completeness). Verified locally: untouched scaffold scores 15/100 (fail), a filled-in chapter-5-solution-based submission scores 100/100 (pass, passing threshold 60). - Removed task-1/task-2 placeholder folders. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ples The Metabase Questions and Streamlit panels the curriculum's chapters already walk students through (trip count by pickup borough, daily revenue by date, avg tip % by borough, and the borough-filtered KPI panel) were also the assignment's suggested content. A student could pass by recall instead of applying the pattern to a new problem. - week11-streamlit/ is now a real ready-to-run starter (not a clone-and-replace placeholder): pyproject.toml/uv.lock/.env.example wired up, app.py has page setup + run_query done, headline-KPIs panel stubbed as raise NotImplementedError(...) for total trips / average trip distance / average fare per mile (not the total-trips/avg-fare/ total-revenue trio from Building a Metrics Dashboard). - .hyf/test.sh: added a NotImplementedError gate and comment-stripped grep (pygrep) so the KPI-panel checks can't false-positive on the TODO guide comment's own text (which mentions fct_trips). - metric_definitions.template.md: hint comments point at the new Metabase/Streamlit panel angles instead of the old ones. - README.md: describes the ready-to-run starter instead of the clone-nyc-taxi-streamlit-reference-and-replace flow. Verified locally: untouched scaffold scores 35/100 (fail, NotImplementedError still present); a filled solution (new KPI queries, uv sync, live streamlit boot returning HTTP 200) scores 100/100 (pass, threshold 60). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Matches the curriculum-side rename: "Target" and "Stretch" were renamed to "Required" (expected outcome for most students) and "Extra" (bonus, not scored). Also fixed the metric_definitions.template.md hint comment, which still said the Metabase date filter was part of the required work after it moved to Extra-tier bonus credit. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The assignment now has two tiers (Required / Extra), not three. Fixed the remaining "Minimum" wording in README.md and .hyf/test.sh's log messages to match. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
task-1/task-2folders, placeholder README, atest.shthat always scored 0/pass=true). It never matched the curriculum's Week 11 assignment (Build Two Dashboards: Metabase + Streamlit).README.md, addedAI_ASSIST.md/metric_definitions.template.mdtemplates, and a real.hyf/test.shstatic-analysis autograder reusing the sharedgrader_lib.shpattern from the Week 10 scaffold.task-1/task-2placeholder folders.week11-streamlit/is now a real ready-to-run starter (project config,run_queryhelper, and page setup wired up) with the headline-KPIs panel stubbed asraise NotImplementedError(...)for a different trio of metrics: total trips, average trip distance, average fare per mile (usingtrip_distanceandfare_per_mile, columns the chapters never touch). The curriculum's assignment chapter (in the separatehyf-datatrackrepo) was updated to match: new Metabase Question angles (payment type, fare-per-mile by dropoff borough, trip duration by hour of day) and new Target-tier panels (hour-of-day trend, payment-type filter).Test plan
.hyf/test.shagainst the untouched (but now-realistic) scaffold: scores 35/100,pass=false(theNotImplementedErrorgate blocks credit for the unfilled KPI panel even though the surrounding scaffolding is real code).trip_distance/fare_per_mile, filled templates) in a scratch copy and ran.hyf/test.sh: scores 100/100,pass=true(passing threshold is 60).uv sync+python3 -c "import ast; ast.parse(...)"+ a livestreamlit run --server.headless trueboot test on the filled solution: HTTP 200.🤖 Generated with Claude Code