Skip to content

Hannah N - #14

Open
hannahwn wants to merge 7 commits into
HackYourAssignment:mainfrom
hannahwn:main
Open

Hannah N#14
hannahwn wants to merge 7 commits into
HackYourAssignment:mainfrom
hannahwn:main

Conversation

@hannahwn

Copy link
Copy Markdown

What I built

  • Metabase dashboard (Week 11 Submissions collection):
  • Streamlit app: week11-streamlit/app.py (KPIs, hour-of-day trend, freshness, payment-type filter)
  • Presentation recording (private, hosted in the Azure student-submissions container):

How to review

  • Metabase: open the dashboard link above, or see the committed screenshots / PDF export.
  • Streamlit: see the committed screenshots, or run it yourself with the steps below.
  • Metric definitions: week11-streamlit/metric_definitions.md
  • AI usage: AI_ASSIST.md

How to run the Streamlit app

From a clean clone, with your own Postgres access:

cd week11-streamlit
uv sync
cp .env.example .env      # set your own POSTGRES_URL (with ?sslmode=require) + DB_SCHEMA
uv run streamlit run app.py

Prerequisite: your own fct_trips mart populated in your dev_<name> schema (from Week 10).

Data dependency: these run steps need your own Week 10 mart. A reviewer who does not have that data cannot rebuild your numbers, so the committed screenshots / PDF export are the canonical evidence of a working submission.

What reviewers should see (expected results)

Fill in the numbers your dashboard and app actually show, so a reviewer can tell at a glance whether the result looks correct:

  • Total trips (fct_trips row count): <e.g. ~57k>
  • Busiest hour of day: <e.g. 18:00>
  • Top payment type by share: <e.g. credit card, ~70%>
  • Data freshness (latest trip date shown): <e.g. 2023-01-31>

Known limitations / out of scope

  • <e.g. auto-refresh not implemented; dashboard covers January 2023 only; one Metabase filter still hardcoded>
  • Write "none" if everything in the assignment is done and working.

Extra completed

  • Metabase date filter on >=2 Questions
  • Streamlit auto-refresh

Self-check

  • bash .hyf/test.sh passes
  • No credentials committed (no password in app.py, .env is gitignored)
  • Screenshots of the Metabase dashboard and the running Streamlit app are committed

@lassebenni lassebenni closed this Jul 17, 2026
@lassebenni lassebenni reopened this Jul 17, 2026
@github-actions

This comment has been minimized.

hannahwn added 5 commits July 28, 2026 00:24
added .env to .gitignore to prevent it from being tracked by git. This is important for security reasons, as .env files often contain sensitive information such as API keys and database credentials. By ignoring this file, we ensure that it is not accidentally committed to the repository and exposed to the public.
@hannahwn hannahwn changed the title added metabase dashboard Hannah N Jul 29, 2026
@github-actions

Copy link
Copy Markdown

📝 HackYourFuture auto grade

Assignment Score: 100 / 100 ✅

Status: ✅ Passed
Minimum score to pass: 60
🧪 The auto grade is experimental and still being improved

Test Details

=== Week 11 Autograder ===
  ✓ PASS  found README.md
  ✓ PASS  found AI_ASSIST.md
  ✓ PASS  found week11-streamlit/app.py
  ✓ PASS  found week11-streamlit/pyproject.toml
  ✓ PASS  found week11-streamlit/uv.lock
  ✓ PASS  found week11-streamlit/metric_definitions.md
  ✓ PASS  Level 1: required files (20/20 pts)
  ✓ PASS  root .gitignore excludes .env
  ✓ PASS  week11-streamlit/.env not committed
  ✓ PASS  app.py: no hardcoded Postgres credentials found
  ✓ PASS  Level 2: secrets hygiene (15/15 pts)
  ✓ PASS  app.py: imports a Postgres driver (sqlalchemy or psycopg2)
  ✓ PASS  app.py: reads credentials from the environment
  ✓ PASS  app.py: uses .metric() (st.metric or a st.columns() cell)
  ✓ PASS  app.py: queries fct_trips
  ✓ PASS  app.py: uses @st.cache_data
  ✓ PASS  Level 3: Streamlit app content (25/25 pts)
  ✓ PASS  metric_definitions.md: all five fields present
  ✓ PASS  metric_definitions.md: 4 panels documented (>=4 expected: 3 Metabase + 1 Streamlit)
  ✓ PASS  Level 4: metric definitions (20/20 pts)
  ✓ PASS  README.md: dashboard link present under 'My submission'
  ✓ PASS  Level 5: Metabase dashboard documented (10/10 pts)
  ✓ PASS  AI_ASSIST.md: filled (1088 chars, no leftover TODO lines)
  ✓ PASS  Level 6: AI assistance log (10/10 pts)

Score: 100 / 100  (passing: 60)  pass=true

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants