Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 20 additions & 6 deletions .hyf/test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -182,13 +182,27 @@ if [ -s task-2/AI_DEBUG.md ]; then
fi
fi

# --- Task 3: HYF Azure Proof (20 points) ---
# --- Task 3: Azure Blob Storage Upload (20 points) ---
# Screenshot is required (10 pts); blob_url.txt with a valid Azure Storage
# URL earns the remaining 10 pts. Both checks live inside the screenshot
# branch — no screenshot means 0/20 regardless of blob_url.txt.
task3=0
task3_msg="missing task-3/azure_proof.png|jpg|jpeg"
task3_msg="missing task-3/assets/azure_blob_week2.png (or .jpg/.jpeg)"
Comment thread
lassebenni marked this conversation as resolved.
for ext in png jpg jpeg; do
if [ -s "task-3/azure_proof.$ext" ]; then
task3=20
task3_msg="azure_proof.$ext present"
if [ -s "task-3/assets/azure_blob_week2.$ext" ]; then
task3=10
if [ -s "task-3/assets/blob_url.txt" ]; then
# Require at least <container>/<blob> after the host so a bare
# storage-account root URL doesn't satisfy the check.
if grep -qE "https://[a-z0-9]+\.blob\.core\.windows\.net/[^/]+/[^/]+" task-3/assets/blob_url.txt; then
task3=20
task3_msg="screenshot and blob URL both present"
else
task3_msg="blob_url.txt present but URL format is wrong — expected https://<account>.blob.core.windows.net/<container>/<blob>"
fi
else
task3_msg="screenshot present but task-3/assets/blob_url.txt is missing"
fi
break
fi
done
Expand All @@ -206,6 +220,6 @@ EOF

echo "Task 1 (Cleaner Pipeline): $task1/60 — $task1_msg"
echo "Task 2 (AI Debug Report): $task2/20 — $task2_msg"
echo "Task 3 (Azure Proof): $task3/20 — $task3_msg"
echo "Task 3 (Azure Blob Upload): $task3/20 — $task3_msg"
echo "----------------------------------------"
echo "Total: $score/100 — pass=$pass (passing threshold: $PASSING)"
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ cohort copies.
|---|---|---|---|
| **Task 1** — Cleaner Pipeline | `task-1/` | 60 | A modular Python pipeline with `config.py` (env-var loading), `models.py` (`Transaction` dataclass with `__post_init__` validation), `transforms.py` (4+ pure composable functions, no mutation), `pipeline.py` (orchestrator), and `tests/test_transforms.py` (4+ pytest tests). Reads `data/messy_sales.csv`, writes `output/clean_sales.csv`. |
| **Task 2** — AI Debug Report | `task-2/` | 20 | Document one debugging session where you used an LLM to fix a bug. Fill in the four sections of `AI_DEBUG.md`. |
| **Task 3** — HYF Azure proof | `task-3/` | 20 | Confirm your HYF Azure tenant access still works. Screenshot proof at `task-3/azure_proof.png` (or `.jpg` / `.jpeg`) showing resource group + region + €0 cost. |
| **Task 3** — Azure Blob Upload | `task-3/` | 20 | Upload `task-1/output/clean_sales.csv` to a private Blob container in the HYF Azure storage account using the portal's Storage Browser. Save your screenshot as `task-3/assets/azure_blob_week2.png` (`.jpg`/`.jpeg` also accepted) and the blob URL in `task-3/assets/blob_url.txt`. |

Total: 100 · Passing: 60.

Expand All @@ -50,7 +50,9 @@ Total: 100 · Passing: 60.
├── task-2/
│ └── AI_DEBUG.md # fill in the four sections
├── task-3/
│ └── azure_proof.png # add your screenshot here
│ └── assets/
│ ├── azure_blob_week2.png # add your screenshot here (jpg/jpeg also accepted)
│ └── blob_url.txt # paste your Azure Storage blob URL here
├── .hyf/
│ └── test.sh # auto-grader (read it to see exactly what it checks)
└── .github/workflows/
Expand Down
File renamed without changes.