# adjest1211/final-requirement-itws02 architecture

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

- Interactive diagram: https://gitdiagram.com/adjest1211/final-requirement-itws02
- Repository: https://github.com/adjest1211/final-requirement-itws02

## Overview

This is a browser-based book-discovery and reader site with reader/admin account pages, profile editing, and a genre-organized book catalog. The principal flow is account access, browsing books by genre, and opening a listed story link. The sampled JavaScript also shows profile and password updates persisted in browser storage and catalog rendering; unsampled page wiring and admin behavior are not inferred.

Main entry points: [`script.js`](https://github.com/adjest1211/final-requirement-itws02/blob/main/script.js) (Genre Book Data), [`adminHomepage.html`](https://github.com/adjest1211/final-requirement-itws02/blob/main/adminHomepage.html) (Admin Home), [`welcome.html`](https://github.com/adjest1211/final-requirement-itws02/blob/main/welcome.html) (Welcome Page), [`userHomepage.html`](https://github.com/adjest1211/final-requirement-itws02/blob/main/userHomepage.html) (Reader Home)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_accounts["Accounts and Profiles"]
  node_login["Reader Login<br/>[login_reader.html]"]
  node_signup["Sign Up<br/>[signup.html]"]
  node_forgot["Password Recovery<br/>[forgot.html]"]
  node_profile["Profile Page<br/>[profile.html]"]
  node_profile_editor["Profile Editing<br/>[script.js]"]
  node_password_reset["Password Reset<br/>[script.js]"]
end

subgraph group_catalog["Book Catalog"]
  node_reader_home["Reader Home<br/>[userHomepage.html]"]
  node_book_data["Genre Book Data<br/>[script.js]"]
  node_catalog_view["Catalog Rendering<br/>[script.js]"]
  node_story_links["Story Links<br/>[script.js]"]
end

subgraph group_admin["Catalog Administration"]
  node_admin_login["Admin Login<br/>[login_admin.html]"]
  node_admin_home["Admin Home<br/>[adminHomepage.html]"]
  node_catalog_editor["Book Editor<br/>[script.js]"]
end

subgraph group_presentation["Site Presentation"]
  node_welcome["Welcome Page<br/>[welcome.html]"]
  node_carousel["Carousel Controls<br/>[script.js]"]
  node_page_transition["Page Transitions<br/>[script.js]"]
  node_about["About Page<br/>[about.html]"]
end

node_reader(("Reader"))
node_admin_actor(("Administrator"))
node_browser_store[("Browser Storage")]

node_reader -.->|"opens"| node_login
node_reader -.->|"registers"| node_signup
node_reader -.->|"recovers access"| node_forgot
node_reader -.->|"views profile"| node_profile
node_admin_actor -.->|"opens"| node_admin_login
node_admin_actor -.->|"manages catalog"| node_admin_home
node_profile_editor -->|"updates user data"| node_browser_store
node_password_reset -->|"saves password"| node_browser_store
node_book_data -->|"loads genres"| node_browser_store
node_catalog_view -->|"renders books"| node_book_data
node_admin_home -.->|"uses editor"| node_catalog_editor
node_reader_home -.->|"displays catalog"| node_catalog_view
node_welcome -.->|"navigates via"| node_page_transition
node_carousel -->|"rotates items"| node_welcome

click node_login "https://github.com/adjest1211/final-requirement-itws02/blob/main/login_reader.html"
click node_signup "https://github.com/adjest1211/final-requirement-itws02/blob/main/signup.html"
click node_forgot "https://github.com/adjest1211/final-requirement-itws02/blob/main/forgot.html"
click node_profile "https://github.com/adjest1211/final-requirement-itws02/blob/main/profile.html"
click node_profile_editor "https://github.com/adjest1211/final-requirement-itws02/blob/main/script.js"
click node_password_reset "https://github.com/adjest1211/final-requirement-itws02/blob/main/script.js"
click node_reader_home "https://github.com/adjest1211/final-requirement-itws02/blob/main/userHomepage.html"
click node_book_data "https://github.com/adjest1211/final-requirement-itws02/blob/main/script.js"
click node_catalog_view "https://github.com/adjest1211/final-requirement-itws02/blob/main/script.js"
click node_story_links "https://github.com/adjest1211/final-requirement-itws02/blob/main/script.js"
click node_admin_login "https://github.com/adjest1211/final-requirement-itws02/blob/main/login_admin.html"
click node_admin_home "https://github.com/adjest1211/final-requirement-itws02/blob/main/adminHomepage.html"
click node_catalog_editor "https://github.com/adjest1211/final-requirement-itws02/blob/main/script.js"
click node_welcome "https://github.com/adjest1211/final-requirement-itws02/blob/main/welcome.html"
click node_carousel "https://github.com/adjest1211/final-requirement-itws02/blob/main/script.js"
click node_page_transition "https://github.com/adjest1211/final-requirement-itws02/blob/main/script.js"
click node_about "https://github.com/adjest1211/final-requirement-itws02/blob/main/about.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_login,node_signup,node_forgot,node_profile,node_profile_editor,node_password_reset toneBlue
class node_reader_home,node_book_data,node_catalog_view,node_story_links,node_browser_store toneAmber
class node_admin_login,node_admin_home,node_catalog_editor toneMint
class node_welcome,node_carousel,node_page_transition,node_about toneRose
class node_reader,node_admin_actor toneIndigo
```

## Components

### Accounts and Profiles

- [Reader Login](https://github.com/adjest1211/final-requirement-itws02/blob/main/login_reader.html): `login_reader.html`
- [Sign Up](https://github.com/adjest1211/final-requirement-itws02/blob/main/signup.html): `signup.html`
- [Password Recovery](https://github.com/adjest1211/final-requirement-itws02/blob/main/forgot.html): `forgot.html`
- [Profile Page](https://github.com/adjest1211/final-requirement-itws02/blob/main/profile.html): `profile.html`
- [Profile Editing](https://github.com/adjest1211/final-requirement-itws02/blob/main/script.js): `script.js`
- [Password Reset](https://github.com/adjest1211/final-requirement-itws02/blob/main/script.js): `script.js`

### Book Catalog

- [Reader Home](https://github.com/adjest1211/final-requirement-itws02/blob/main/userHomepage.html): `userHomepage.html`
- [Genre Book Data](https://github.com/adjest1211/final-requirement-itws02/blob/main/script.js): `script.js`
- [Catalog Rendering](https://github.com/adjest1211/final-requirement-itws02/blob/main/script.js): `script.js`
- [Story Links](https://github.com/adjest1211/final-requirement-itws02/blob/main/script.js): `script.js`

### Catalog Administration

- [Admin Login](https://github.com/adjest1211/final-requirement-itws02/blob/main/login_admin.html): `login_admin.html`
- [Admin Home](https://github.com/adjest1211/final-requirement-itws02/blob/main/adminHomepage.html): `adminHomepage.html`
- [Book Editor](https://github.com/adjest1211/final-requirement-itws02/blob/main/script.js): `script.js`

### Site Presentation

- [Welcome Page](https://github.com/adjest1211/final-requirement-itws02/blob/main/welcome.html): `welcome.html`
- [Carousel Controls](https://github.com/adjest1211/final-requirement-itws02/blob/main/script.js): `script.js`
- [Page Transitions](https://github.com/adjest1211/final-requirement-itws02/blob/main/script.js): `script.js`
- [About Page](https://github.com/adjest1211/final-requirement-itws02/blob/main/about.html): `about.html`

### Other components

- **Reader**
- **Administrator**
- **Browser Storage**

## Connections

- Reader → Reader Login: opens
- Reader → Sign Up: registers
- Reader → Password Recovery: recovers access
- Reader → Profile Page: views profile
- Administrator → Admin Login: opens
- Administrator → Admin Home: manages catalog
- Profile Editing → Browser Storage: updates user data (evidence: `script.js`)
- Password Reset → Browser Storage: saves password (evidence: `script.js`)
- Genre Book Data → Browser Storage: loads genres (evidence: `script.js`)
- Catalog Rendering → Genre Book Data: renders books (evidence: `script.js`)
- Admin Home → Book Editor: uses editor
- Reader Home → Catalog Rendering: displays catalog
- Welcome Page → Page Transitions: navigates via
- Carousel Controls → Welcome Page: rotates items (evidence: `script.js`)
