# nox-098/studentgig architecture

> Architecture diagram of the GitHub repository nox-098/studentgig, 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/nox-098/studentgig
- Repository: https://github.com/nox-098/studentgig

## Overview

StudentGig is a browser-based student gig marketplace. Students browse active gigs, view details, and apply; employers post and manage gigs, while both roles can maintain profiles and message. An admin dashboard provides marketplace oversight. The sampled JavaScript shows localStorage-backed data and several page behaviors, but the README is empty and the excerpts omit much of the runtime, so unverified page-to-handler links are dashed.

Main entry points: [`script.js`](https://github.com/nox-098/studentgig/blob/main/script.js) (Marketplace logic), [`messages.html`](https://github.com/nox-098/studentgig/blob/main/messages.html) (Messages), [`index.html`](https://github.com/nox-098/studentgig/blob/main/index.html) (Home page), [`find-gigs.html`](https://github.com/nox-098/studentgig/blob/main/find-gigs.html) (Gig search)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_marketplace["Gig marketplace"]
  node_home["Home page<br/>[index.html]"]
  node_gig_search["Gig search<br/>[find-gigs.html]"]
  node_gig_details["Gig details<br/>[gig-details.html]"]
  node_posting["Gig posting<br/>[post-job.html]"]
  node_marketplace_logic["Marketplace logic<br/>[script.js]"]
end

subgraph group_accounts["Accounts and profiles"]
  node_sign_in["Sign in<br/>[signin.html]"]
  node_login["Login<br/>[login.html]"]
  node_student_profile["Student profile"]
  node_employer_profile["Employer profile"]
  node_account_logic["Account logic<br/>[script.js]"]
end

subgraph group_communication["Communication"]
  node_messages["Messages<br/>[messages.html]"]
  node_messaging_logic["Messaging logic<br/>[script.js]"]
end

subgraph group_oversight["Administration"]
  node_dashboard["Admin dashboard"]
  node_admin_logic["Admin logic<br/>[script.js]"]
end

node_visitor(("Visitor"))
node_student(("Student"))
node_employer(("Employer"))
node_admin(("Administrator"))
node_local_storage[("Browser localStorage")]

node_visitor -.->|"opens"| node_home
node_student -.->|"browses"| node_gig_search
node_student -.->|"views"| node_gig_details
node_employer -.->|"posts gigs"| node_posting
node_student -.->|"manages profile"| node_student_profile
node_employer -.->|"manages profile"| node_employer_profile
node_student -.->|"messages"| node_messages
node_employer -.->|"messages"| node_messages
node_admin -.->|"oversees"| node_dashboard
node_home -.->|"uses"| node_marketplace_logic
node_gig_search -.->|"uses"| node_marketplace_logic
node_gig_details -.->|"uses"| node_marketplace_logic
node_posting -.->|"uses"| node_marketplace_logic
node_sign_in -.->|"uses"| node_account_logic
node_login -.->|"uses"| node_account_logic
node_student_profile -.->|"uses"| node_account_logic
node_employer_profile -.->|"uses"| node_account_logic
node_messages -.->|"uses"| node_messaging_logic
node_dashboard -.->|"uses"| node_admin_logic
node_account_logic -->|"reads and writes"| node_local_storage
node_marketplace_logic -.->|"reads and writes"| node_local_storage
node_messaging_logic -.->|"reads and writes"| node_local_storage
node_admin_logic -.->|"reads and writes"| node_local_storage

click node_home "https://github.com/nox-098/studentgig/blob/main/index.html"
click node_gig_search "https://github.com/nox-098/studentgig/blob/main/find-gigs.html"
click node_gig_details "https://github.com/nox-098/studentgig/blob/main/gig-details.html"
click node_posting "https://github.com/nox-098/studentgig/blob/main/post-job.html"
click node_marketplace_logic "https://github.com/nox-098/studentgig/blob/main/script.js"
click node_sign_in "https://github.com/nox-098/studentgig/blob/main/signin.html"
click node_login "https://github.com/nox-098/studentgig/blob/main/login.html"
click node_student_profile "https://github.com/nox-098/studentgig/blob/main/student-profile.html"
click node_employer_profile "https://github.com/nox-098/studentgig/blob/main/employer-profile.html"
click node_account_logic "https://github.com/nox-098/studentgig/blob/main/script.js"
click node_messages "https://github.com/nox-098/studentgig/blob/main/messages.html"
click node_messaging_logic "https://github.com/nox-098/studentgig/blob/main/script.js"
click node_dashboard "https://github.com/nox-098/studentgig/blob/main/admin-dashboard.html"
click node_admin_logic "https://github.com/nox-098/studentgig/blob/main/script.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_gig_search,node_gig_details,node_posting,node_marketplace_logic toneBlue
class node_sign_in,node_login,node_student_profile,node_employer_profile,node_account_logic,node_local_storage toneAmber
class node_messages,node_messaging_logic toneMint
class node_dashboard,node_admin_logic toneRose
class node_visitor,node_student,node_employer,node_admin toneIndigo
```

## Components

### Gig marketplace

- [Home page](https://github.com/nox-098/studentgig/blob/main/index.html): `index.html`
- [Gig search](https://github.com/nox-098/studentgig/blob/main/find-gigs.html): `find-gigs.html`
- [Gig details](https://github.com/nox-098/studentgig/blob/main/gig-details.html): `gig-details.html`
- [Gig posting](https://github.com/nox-098/studentgig/blob/main/post-job.html): `post-job.html`
- [Marketplace logic](https://github.com/nox-098/studentgig/blob/main/script.js): `script.js`

### Accounts and profiles

- [Sign in](https://github.com/nox-098/studentgig/blob/main/signin.html): `signin.html`
- [Login](https://github.com/nox-098/studentgig/blob/main/login.html): `login.html`
- [Student profile](https://github.com/nox-098/studentgig/blob/main/student-profile.html): `student-profile.html`
- [Employer profile](https://github.com/nox-098/studentgig/blob/main/employer-profile.html): `employer-profile.html`
- [Account logic](https://github.com/nox-098/studentgig/blob/main/script.js): `script.js`

### Communication

- [Messages](https://github.com/nox-098/studentgig/blob/main/messages.html): `messages.html`
- [Messaging logic](https://github.com/nox-098/studentgig/blob/main/script.js): `script.js`

### Administration

- [Admin dashboard](https://github.com/nox-098/studentgig/blob/main/admin-dashboard.html): `admin-dashboard.html`
- [Admin logic](https://github.com/nox-098/studentgig/blob/main/script.js): `script.js`

### Other components

- **Visitor**
- **Student**
- **Employer**
- **Administrator**
- **Browser localStorage**

## Connections

- Visitor → Home page: opens
- Student → Gig search: browses
- Student → Gig details: views
- Employer → Gig posting: posts gigs
- Student → Student profile: manages profile
- Employer → Employer profile: manages profile
- Student → Messages: messages
- Employer → Messages: messages
- Administrator → Admin dashboard: oversees
- Home page → Marketplace logic: uses
- Gig search → Marketplace logic: uses
- Gig details → Marketplace logic: uses
- Gig posting → Marketplace logic: uses
- Sign in → Account logic: uses
- Login → Account logic: uses
- Student profile → Account logic: uses
- Employer profile → Account logic: uses
- Messages → Messaging logic: uses
- Admin dashboard → Admin logic: uses
- Account logic → Browser localStorage: reads and writes (evidence: `script.js`)
- Marketplace logic → Browser localStorage: reads and writes
- Messaging logic → Browser localStorage: reads and writes
- Admin logic → Browser localStorage: reads and writes
