# meghaz1-f3/web architecture

> Architecture diagram of the GitHub repository meghaz1-f3/web, 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/meghaz1-f3/web
- Repository: https://github.com/meghaz1-f3/web

## Overview

This repository is a college department website combining people and faculty profiles, a faculty-facing student-management dashboard, and a browser-based viewer for ten web-programming experiments. A visitor selects an experiment to inspect its source and open its preview; faculty use the dashboard to manage assignments, submissions, and marks through a separate localhost API. The experiment implementations span XML, CGI, sessions, database forms, and checkout validation. Relationships shown are limited to the viewer’s explicit metadata and the dashboard’s fetch calls; other page wiring and unsampled experiment internals are not asserted.

Main entry points: [`experiment-viewer.js`](https://github.com/meghaz1-f3/web/blob/main/experiment-viewer.js) (Viewer controller), [`studen.js`](https://github.com/meghaz1-f3/web/blob/main/studen.js) (Faculty dashboard), [`intro/faculty.js`](https://github.com/meghaz1-f3/web/blob/main/intro/faculty.js) (Faculty profiles), [`intro/members.js`](https://github.com/meghaz1-f3/web/blob/main/intro/members.js) (Member profiles)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_site["Department site"]
  node_home["Home page<br/>[index.html]"]
  node_site_runtime["Clock and loader<br/>[script.js]"]
end

subgraph group_people["People profiles"]
  node_faculty_page["Faculty profile page<br/>[faculty.html]"]
  node_faculty_profiles["Faculty profiles<br/>[faculty.js]"]
  node_members_page["Member profile page<br/>[members.html]"]
  node_member_profiles["Member profiles<br/>[members.js]"]
end

subgraph group_labs["Experiment viewer"]
  node_viewer_page["Experiment viewer page"]
  node_viewer["Viewer controller"]
  node_xml_lab["XML and CSS lab"]
  node_cgi_labs["Perl CGI labs"]
  node_state_labs["Cookie and session labs"]
  node_database_labs["Database labs"]
  node_bookstore["Bookstore checkout"]
end

subgraph group_faculty["Faculty dashboard"]
  node_dashboard["Faculty dashboard<br/>[studen.js]"]
  node_student_api{{"Student and attendance API"}}
  node_assignment_api{{"Assignment API"}}
  node_submission_api{{"Submission review API"}}
  node_marks_api{{"Marks and results API"}}
end

node_visitor(("Visitor"))
node_faculty_user(("Faculty user"))

node_viewer -->|"loads source and preview"| node_xml_lab
node_viewer -->|"loads source and preview"| node_cgi_labs
node_viewer -->|"loads source and preview"| node_state_labs
node_viewer -->|"loads source and preview"| node_database_labs
node_viewer -->|"loads source and preview"| node_bookstore
node_faculty_profiles -->|"updates profile"| node_faculty_page
node_member_profiles -->|"updates profile"| node_members_page
node_faculty_user -.->|"uses"| node_dashboard
node_dashboard -->|"fetches students and attendance"| node_student_api
node_dashboard -->|"creates and loads assignments"| node_assignment_api
node_dashboard -->|"loads and reviews submissions"| node_submission_api
node_dashboard -->|"loads and saves marks; reviews results"| node_marks_api

click node_home "https://github.com/meghaz1-f3/web/blob/main/index.html"
click node_site_runtime "https://github.com/meghaz1-f3/web/blob/main/script.js"
click node_viewer_page "https://github.com/meghaz1-f3/web/blob/main/experiment-viewer.html"
click node_viewer "https://github.com/meghaz1-f3/web/blob/main/experiment-viewer.js"
click node_xml_lab "https://github.com/meghaz1-f3/web/tree/main/experiments/exp1"
click node_cgi_labs "https://github.com/meghaz1-f3/web/tree/main/experiments/exp2"
click node_state_labs "https://github.com/meghaz1-f3/web/tree/main/experiments/exp6"
click node_database_labs "https://github.com/meghaz1-f3/web/tree/main/experiments/exp9"
click node_bookstore "https://github.com/meghaz1-f3/web/tree/main/experiments/exp10"
click node_faculty_page "https://github.com/meghaz1-f3/web/blob/main/intro/faculty.html"
click node_faculty_profiles "https://github.com/meghaz1-f3/web/blob/main/intro/faculty.js"
click node_members_page "https://github.com/meghaz1-f3/web/blob/main/intro/members.html"
click node_member_profiles "https://github.com/meghaz1-f3/web/blob/main/intro/members.js"
click node_dashboard "https://github.com/meghaz1-f3/web/blob/main/studen.js"

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_home,node_site_runtime,node_faculty_user toneBlue
class node_faculty_page,node_faculty_profiles,node_members_page,node_member_profiles toneAmber
class node_viewer_page,node_viewer,node_xml_lab,node_cgi_labs,node_state_labs,node_database_labs,node_bookstore toneMint
class node_dashboard,node_student_api,node_assignment_api,node_submission_api,node_marks_api toneRose
class node_visitor toneIndigo
```

## Components

### Department site

- [Home page](https://github.com/meghaz1-f3/web/blob/main/index.html): `index.html`
- [Clock and loader](https://github.com/meghaz1-f3/web/blob/main/script.js): `script.js`

### People profiles

- [Faculty profile page](https://github.com/meghaz1-f3/web/blob/main/intro/faculty.html): `intro/faculty.html`
- [Faculty profiles](https://github.com/meghaz1-f3/web/blob/main/intro/faculty.js): `intro/faculty.js`
- [Member profile page](https://github.com/meghaz1-f3/web/blob/main/intro/members.html): `intro/members.html`
- [Member profiles](https://github.com/meghaz1-f3/web/blob/main/intro/members.js): `intro/members.js`

### Experiment viewer

- [Experiment viewer page](https://github.com/meghaz1-f3/web/blob/main/experiment-viewer.html): `experiment-viewer.html`
- [Viewer controller](https://github.com/meghaz1-f3/web/blob/main/experiment-viewer.js): `experiment-viewer.js`
- [XML and CSS lab](https://github.com/meghaz1-f3/web/tree/main/experiments/exp1): `experiments/exp1`
- [Perl CGI labs](https://github.com/meghaz1-f3/web/tree/main/experiments/exp2): `experiments/exp2`
- [Cookie and session labs](https://github.com/meghaz1-f3/web/tree/main/experiments/exp6): `experiments/exp6`
- [Database labs](https://github.com/meghaz1-f3/web/tree/main/experiments/exp9): `experiments/exp9`
- [Bookstore checkout](https://github.com/meghaz1-f3/web/tree/main/experiments/exp10): `experiments/exp10`

### Faculty dashboard

- [Faculty dashboard](https://github.com/meghaz1-f3/web/blob/main/studen.js): `studen.js`
- **Student and attendance API**
- **Assignment API**
- **Submission review API**
- **Marks and results API**

### Other components

- **Visitor**
- **Faculty user**

## Connections

- Viewer controller → XML and CSS lab: loads source and preview (evidence: `experiment-viewer.js`)
- Viewer controller → Perl CGI labs: loads source and preview (evidence: `experiment-viewer.js`)
- Viewer controller → Cookie and session labs: loads source and preview (evidence: `experiment-viewer.js`)
- Viewer controller → Database labs: loads source and preview (evidence: `experiment-viewer.js`)
- Viewer controller → Bookstore checkout: loads source and preview (evidence: `experiment-viewer.js`)
- Faculty profiles → Faculty profile page: updates profile (evidence: `intro/faculty.js`)
- Member profiles → Member profile page: updates profile (evidence: `intro/members.js`)
- Faculty user → Faculty dashboard: uses
- Faculty dashboard → Student and attendance API: fetches students and attendance (evidence: `studen.js`)
- Faculty dashboard → Assignment API: creates and loads assignments (evidence: `studen.js`)
- Faculty dashboard → Submission review API: loads and reviews submissions (evidence: `studen.js`)
- Faculty dashboard → Marks and results API: loads and saves marks; reviews results (evidence: `studen.js`)
