Skip to content

Baraah A. - #11

Open
thebaraah wants to merge 1 commit into
HackYourAssignment:mainfrom
thebaraah:main
Open

Baraah A.#11
thebaraah wants to merge 1 commit into
HackYourAssignment:mainfrom
thebaraah:main

Conversation

@thebaraah

Copy link
Copy Markdown

Metabase Dashboard

The link is in Readme.md file
The screenshot proof is metabase_dashboard_baraah.png

Streamlit Dashboard

The screenshot proof is Streamlit_dashboard_baraah.png

Presentation Recording
Recording: the URL is in the Readme.md file
What I built

  1. A Metabase dashboard with three SQL-based questions :
    • Trip Count by Payment Type
    • Average Fare per Mile by Dropoff Borough
    • Average Trip Duration by Hour of Day
  2. A Streamlit metrics dashboard connected to my dbt mart (fct_trips) that includes:
    • Headline KPIs (Total Trips, Average Trip Distance, Average Fare per Mile)
    • Trips by Hour of Day line chart
    • Data Freshness panel (row count and latest pickup datetime)
    • Sidebar filter for payment_type_label
  3. Metric documentation for both dashboards.

Notes
The application connects to my Week 10 dbt mart (fct_trips) in PostgreSQL. Database credentials are stored in environment variables and are not committed to the repository.

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

@thebaraah thebaraah changed the title completed week 11 assignment Baraah A Jul 16, 2026
@thebaraah thebaraah changed the title Baraah A Baraah A. Jul 16, 2026
@jrnhofman

Copy link
Copy Markdown

Nice write-up in the PR description!

@jrnhofman

Copy link
Copy Markdown

as you can see the PR body check fails, you wrote a good PR description but please follow the outline required so the check passes!

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think something went wrong with your last graph, both axis have the same label and there is a linear line (probably plotting pickup hour vs pickup hour)

@lassebenni lassebenni closed this Jul 17, 2026
@lassebenni lassebenni reopened this Jul 17, 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 sqlalchemy
  ✓ 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: 6 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 (1997 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.

3 participants