# khoaitay51/vinuni_codelab_day02_template architecture

> Architecture diagram of the GitHub repository khoaitay51/vinuni_codelab_day02_template, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/khoaitay51/vinuni_codelab_day02_template
- Repository: https://github.com/khoaitay51/vinuni_codelab_day02_template

## Overview

This repository is a student lab for AI product scoping, with a prompt-boundary prototype and an autograder for student submissions. The main workflow moves from opportunity scanning to a deep-dive and evaluation, while students also design a current-state workflow and submit written artifacts. The prototype is a starter: its Gemini call is still a TODO, so that integration is shown as unverified. The graph reflects the README and sampled source; it does not assume implementation details for unsampled worksheet or report content.

Main entry points: [`starter-code/prompt_prototype.py`](https://github.com/khoaitay51/vinuni_codelab_day02_template/blob/main/starter-code/prompt_prototype.py) (Boundary Prototype), [`autograder/autograder.py`](https://github.com/khoaitay51/vinuni_codelab_day02_template/blob/main/autograder/autograder.py) (Submission Autograder), [`01-worksheet.md`](https://github.com/khoaitay51/vinuni_codelab_day02_template/blob/main/01-worksheet.md) (Opportunity Scan), [`02-deep-dive-report.md`](https://github.com/khoaitay51/vinuni_codelab_day02_template/blob/main/02-deep-dive-report.md) (Deep-Dive Report)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_learning["Scoping Lab"]
  node_scan["Opportunity Scan<br/>[01-worksheet.md]"]
  node_deepdive["Problem Deep Dive<br/>[01-worksheet.md]"]
  node_evaluate["Readiness Evaluation<br/>[01-worksheet.md]"]
  node_workflow["Current Workflow Diagram"]
  node_report["Deep-Dive Report"]
end

subgraph group_prototype["Prompt Prototype"]
  node_prototype_code["Boundary Prototype"]
  node_prompt_rules["Safety Prompt Rules"]
  node_adversarial["Adversarial Scenarios"]
end

subgraph group_grading["Submission Grading"]
  node_autograder["Submission Autograder<br/>[autograder.py]"]
  node_deliverables["Required Deliverables<br/>[autograder.py]"]
  node_student_code["Student Prototype Code"]
  node_grade_result["Grading Result<br/>[autograder.py]"]
end

node_student(("Student"))
node_gemini{{"Google Gemini"}}

node_student -->|"identify opportunities"| node_scan
node_student -->|"analyze candidate"| node_deepdive
node_student -->|"assess readiness"| node_evaluate
node_student -->|"draw current process"| node_workflow
node_student -->|"prepare report"| node_report
node_student -->|"complete prototype"| node_prototype_code
node_prototype_code -->|"uses"| node_prompt_rules
node_prototype_code -->|"checks scenarios"| node_adversarial
node_prototype_code -.->|"intended API call"| node_gemini
node_student -->|"submit work"| node_autograder
node_autograder -->|"checks files"| node_deliverables
node_autograder -->|"loads and checks"| node_student_code
node_autograder -->|"prints score"| node_grade_result

click node_scan "https://github.com/khoaitay51/vinuni_codelab_day02_template/blob/main/01-worksheet.md"
click node_deepdive "https://github.com/khoaitay51/vinuni_codelab_day02_template/blob/main/01-worksheet.md"
click node_evaluate "https://github.com/khoaitay51/vinuni_codelab_day02_template/blob/main/01-worksheet.md"
click node_report "https://github.com/khoaitay51/vinuni_codelab_day02_template/blob/main/02-deep-dive-report.md"
click node_prototype_code "https://github.com/khoaitay51/vinuni_codelab_day02_template/blob/main/starter-code/prompt_prototype.py"
click node_prompt_rules "https://github.com/khoaitay51/vinuni_codelab_day02_template/blob/main/starter-code/prompt_prototype.py"
click node_adversarial "https://github.com/khoaitay51/vinuni_codelab_day02_template/blob/main/starter-code/prompt_prototype.py"
click node_autograder "https://github.com/khoaitay51/vinuni_codelab_day02_template/blob/main/autograder/autograder.py"
click node_deliverables "https://github.com/khoaitay51/vinuni_codelab_day02_template/blob/main/autograder/autograder.py"
click node_student_code "https://github.com/khoaitay51/vinuni_codelab_day02_template/blob/main/starter-code/prompt_prototype.py"
click node_grade_result "https://github.com/khoaitay51/vinuni_codelab_day02_template/blob/main/autograder/autograder.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_scan,node_deepdive,node_evaluate,node_workflow,node_report toneBlue
class node_prototype_code,node_prompt_rules,node_adversarial toneAmber
class node_autograder,node_deliverables,node_student_code,node_grade_result toneMint
class node_student,node_gemini toneIndigo
```

## Components

### Scoping Lab

- [Opportunity Scan](https://github.com/khoaitay51/vinuni_codelab_day02_template/blob/main/01-worksheet.md): `01-worksheet.md`
- [Problem Deep Dive](https://github.com/khoaitay51/vinuni_codelab_day02_template/blob/main/01-worksheet.md): `01-worksheet.md`
- [Readiness Evaluation](https://github.com/khoaitay51/vinuni_codelab_day02_template/blob/main/01-worksheet.md): `01-worksheet.md`
- **Current Workflow Diagram**
- [Deep-Dive Report](https://github.com/khoaitay51/vinuni_codelab_day02_template/blob/main/02-deep-dive-report.md): `02-deep-dive-report.md`

### Prompt Prototype

- [Boundary Prototype](https://github.com/khoaitay51/vinuni_codelab_day02_template/blob/main/starter-code/prompt_prototype.py): `starter-code/prompt_prototype.py`
- [Safety Prompt Rules](https://github.com/khoaitay51/vinuni_codelab_day02_template/blob/main/starter-code/prompt_prototype.py): `starter-code/prompt_prototype.py`
- [Adversarial Scenarios](https://github.com/khoaitay51/vinuni_codelab_day02_template/blob/main/starter-code/prompt_prototype.py): `starter-code/prompt_prototype.py`

### Submission Grading

- [Submission Autograder](https://github.com/khoaitay51/vinuni_codelab_day02_template/blob/main/autograder/autograder.py): `autograder/autograder.py`
- [Required Deliverables](https://github.com/khoaitay51/vinuni_codelab_day02_template/blob/main/autograder/autograder.py): `autograder/autograder.py`
- [Student Prototype Code](https://github.com/khoaitay51/vinuni_codelab_day02_template/blob/main/starter-code/prompt_prototype.py): `starter-code/prompt_prototype.py`
- [Grading Result](https://github.com/khoaitay51/vinuni_codelab_day02_template/blob/main/autograder/autograder.py): `autograder/autograder.py`

### Other components

- **Student**
- **Google Gemini**

## Connections

- Student → Opportunity Scan: identify opportunities (evidence: `README.md`)
- Student → Problem Deep Dive: analyze candidate (evidence: `README.md`)
- Student → Readiness Evaluation: assess readiness (evidence: `README.md`)
- Student → Current Workflow Diagram: draw current process (evidence: `README.md`)
- Student → Deep-Dive Report: prepare report (evidence: `README.md`)
- Student → Boundary Prototype: complete prototype (evidence: `starter-code/prompt_prototype.py`)
- Boundary Prototype → Safety Prompt Rules: uses (evidence: `starter-code/prompt_prototype.py`)
- Boundary Prototype → Adversarial Scenarios: checks scenarios (evidence: `starter-code/prompt_prototype.py`)
- Boundary Prototype → Google Gemini: intended API call
- Student → Submission Autograder: submit work (evidence: `README.md`)
- Submission Autograder → Required Deliverables: checks files (evidence: `autograder/autograder.py`)
- Submission Autograder → Student Prototype Code: loads and checks (evidence: `autograder/autograder.py`)
- Submission Autograder → Grading Result: prints score (evidence: `autograder/autograder.py`)
