# ayushbadwaik/mltlab-cm23051 architecture

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

- Interactive diagram: https://gitdiagram.com/ayushbadwaik/mltlab-cm23051
- Repository: https://github.com/ayushbadwaik/mltlab-cm23051

## Overview

This repository is a collection of practical lab exercises, not one unified application. The clearest runtime workflows are PostLab’s HTTP-based AI resume-builder backend and Prac2’s hand-drawn digit recognition. Other practicals include HTML pages and datasets or model assets, but their behavior is not established by the sampled source; those components are shown without inferred wiring.

Main entry points: [`PostLab/server.js`](https://github.com/ayushbadwaik/mltlab-cm23051/blob/main/PostLab/server.js) (HTTP server), [`Prac2/air.py`](https://github.com/ayushbadwaik/mltlab-cm23051/blob/main/Prac2/air.py) (Gesture drawing and prediction), [`PostLab/index.html`](https://github.com/ayushbadwaik/mltlab-cm23051/blob/main/PostLab/index.html) (Resume page), [`Prac2/Ayush_digit_model.h5`](https://github.com/ayushbadwaik/mltlab-cm23051/blob/main/Prac2/Ayush_digit_model.h5) (Digit model)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_postlab["AI Resume Builder"]
  node_post_server["HTTP server<br/>[server.js]"]
  node_post_page["Resume page<br/>[index.html]"]
end

subgraph group_vision["Air Canvas"]
  node_air_app["Gesture drawing and prediction<br/>[air.py]"]
  node_digit_model["Digit model"]
  node_canvas["Drawing canvas"]
end

subgraph group_labs["Other Practicals"]
  node_lab_pages["Exercise pages"]
  node_prac1["Prac1 page<br/>[index.html]"]
  node_prac3["Prac3 page<br/>[index.html]"]
  node_prac4["Prac4 page<br/>[index.html]"]
  node_prac5["Prac5 page<br/>[index.html]"]
  node_prac6["Prac6 page<br/>[index.html]"]
  node_prac7["Prac7 page<br/>[index.html]"]
  node_prac8["Prac8 page"]
  node_prelab["Prelab page<br/>[index.html]"]
end

node_user(("User"))
node_groq{{"Groq API"}}
node_camera(("Camera"))

node_user -->|"requests page"| node_post_server
node_post_server -->|"reads file"| node_post_page
node_post_server -->|"forwards chat request"| node_groq
node_camera -->|"provides frames"| node_air_app
node_air_app -->|"loads model"| node_digit_model
node_air_app -->|"draws and predicts"| node_canvas
node_user -->|"opens"| node_prac1
node_user -->|"opens"| node_prac3
node_user -->|"opens"| node_prac4
node_user -->|"opens"| node_prac5
node_user -->|"opens"| node_prac6
node_user -->|"opens"| node_prac7
node_user -->|"opens"| node_prac8
node_user -->|"opens"| node_prelab

click node_post_server "https://github.com/ayushbadwaik/mltlab-cm23051/blob/main/PostLab/server.js"
click node_post_page "https://github.com/ayushbadwaik/mltlab-cm23051/blob/main/PostLab/index.html"
click node_air_app "https://github.com/ayushbadwaik/mltlab-cm23051/blob/main/Prac2/air.py"
click node_digit_model "https://github.com/ayushbadwaik/mltlab-cm23051/blob/main/Prac2/Ayush_digit_model.h5"
click node_prac1 "https://github.com/ayushbadwaik/mltlab-cm23051/blob/main/Prac1/index.html"
click node_prac3 "https://github.com/ayushbadwaik/mltlab-cm23051/blob/main/Prac3/index.html"
click node_prac4 "https://github.com/ayushbadwaik/mltlab-cm23051/blob/main/Prac4/index.html"
click node_prac5 "https://github.com/ayushbadwaik/mltlab-cm23051/blob/main/Prac5/index.html"
click node_prac6 "https://github.com/ayushbadwaik/mltlab-cm23051/blob/main/Prac6/index.html"
click node_prac7 "https://github.com/ayushbadwaik/mltlab-cm23051/blob/main/Prac7/index.html"
click node_prelab "https://github.com/ayushbadwaik/mltlab-cm23051/blob/main/Prelab/index.html"

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_post_server,node_post_page,node_user toneBlue
class node_air_app,node_digit_model,node_canvas toneAmber
class node_lab_pages,node_prac1,node_prac3,node_prac4,node_prac5,node_prac6,node_prac7,node_prac8,node_prelab,node_groq toneMint
class node_camera toneIndigo
```

## Components

### AI Resume Builder

- [HTTP server](https://github.com/ayushbadwaik/mltlab-cm23051/blob/main/PostLab/server.js): `PostLab/server.js`
- [Resume page](https://github.com/ayushbadwaik/mltlab-cm23051/blob/main/PostLab/index.html): `PostLab/index.html`

### Air Canvas

- [Gesture drawing and prediction](https://github.com/ayushbadwaik/mltlab-cm23051/blob/main/Prac2/air.py): `Prac2/air.py`
- [Digit model](https://github.com/ayushbadwaik/mltlab-cm23051/blob/main/Prac2/Ayush_digit_model.h5): `Prac2/Ayush_digit_model.h5`
- **Drawing canvas**

### Other Practicals

- **Exercise pages**
- [Prac1 page](https://github.com/ayushbadwaik/mltlab-cm23051/blob/main/Prac1/index.html): `Prac1/index.html`
- [Prac3 page](https://github.com/ayushbadwaik/mltlab-cm23051/blob/main/Prac3/index.html): `Prac3/index.html`
- [Prac4 page](https://github.com/ayushbadwaik/mltlab-cm23051/blob/main/Prac4/index.html): `Prac4/index.html`
- [Prac5 page](https://github.com/ayushbadwaik/mltlab-cm23051/blob/main/Prac5/index.html): `Prac5/index.html`
- [Prac6 page](https://github.com/ayushbadwaik/mltlab-cm23051/blob/main/Prac6/index.html): `Prac6/index.html`
- [Prac7 page](https://github.com/ayushbadwaik/mltlab-cm23051/blob/main/Prac7/index.html): `Prac7/index.html`
- **Prac8 page**
- [Prelab page](https://github.com/ayushbadwaik/mltlab-cm23051/blob/main/Prelab/index.html): `Prelab/index.html`

### Other components

- **User**
- **Groq API**
- **Camera**

## Connections

- User → HTTP server: requests page
- HTTP server → Resume page: reads file
- HTTP server → Groq API: forwards chat request
- Camera → Gesture drawing and prediction: provides frames
- Gesture drawing and prediction → Digit model: loads model
- Gesture drawing and prediction → Drawing canvas: draws and predicts
- User → Prac1 page: opens
- User → Prac3 page: opens
- User → Prac4 page: opens
- User → Prac5 page: opens
- User → Prac6 page: opens
- User → Prac7 page: opens
- User → Prac8 page: opens
- User → Prelab page: opens
