# mamunbracu/portfolio-teaching architecture

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

- Interactive diagram: https://gitdiagram.com/mamunbracu/portfolio-teaching
- Repository: https://github.com/mamunbracu/portfolio-teaching

## Overview

This is a single-file teaching portfolio with a public website and an admin dashboard. Visitors browse profile and teaching information, gallery, documents, and CV; administrators log in, edit website content or teaching-library materials, and configure or back up the site. The README documents demo-mode browser saves and optional Firebase authentication, Firestore, and Cloud Storage. No source excerpts were provided, so relationships below are limited to those explicitly described in the README; all application components point to index.html.

Main entry points: [`index.html`](https://github.com/mamunbracu/portfolio-teaching/blob/main/index.html) (Admin dashboard)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_public["Public website"]
  node_public_site["Portfolio pages<br/>[index.html]"]
  node_navigation["Responsive navigation<br/>[index.html]"]
  node_gallery["Photo gallery<br/>[index.html]"]
  node_documents_cv["Documents and CV<br/>[index.html]"]
end

subgraph group_admin["Admin dashboard"]
  node_login["Login<br/>[index.html]"]
  node_dashboard["Admin dashboard<br/>[index.html]"]
  node_content_editor["Website content<br/>[index.html]"]
  node_teaching_library["Teaching library<br/>[index.html]"]
  node_settings["Settings<br/>[index.html]"]
  node_backup["Backup and import<br/>[index.html]"]
end

subgraph group_services["Persistence and services"]
  node_demo_storage[("Browser storage<br/>[index.html]")]
  node_firebase_auth["Firebase Authentication"]
  node_firestore[("Cloud Firestore")]
  node_cloud_storage[("Firebase Storage")]
end

node_visitor(("Visitor"))
node_admin_user(("Administrator"))

node_visitor -->|"browses"| node_public_site
node_public_site -->|"offers navigation"| node_navigation
node_public_site -->|"includes gallery"| node_gallery
node_public_site -->|"offers documents"| node_documents_cv
node_admin_user -->|"signs in"| node_login
node_login -.->|"authenticates with"| node_firebase_auth
node_login -->|"opens dashboard"| node_dashboard
node_dashboard -->|"edits content"| node_content_editor
node_dashboard -->|"manages classes"| node_teaching_library
node_dashboard -->|"configures site"| node_settings
node_dashboard -->|"exports or imports"| node_backup
node_content_editor -->|"saves locally"| node_demo_storage
node_teaching_library -.->|"saves locally"| node_demo_storage
node_content_editor -.->|"saves live data"| node_firestore
node_teaching_library -.->|"stores materials"| node_firestore
node_settings -.->|"configures connection"| node_firestore
node_settings -.->|"enables file storage"| node_cloud_storage
node_backup -.->|"moves browser data"| node_demo_storage

click node_public_site "https://github.com/mamunbracu/portfolio-teaching/blob/main/index.html"
click node_navigation "https://github.com/mamunbracu/portfolio-teaching/blob/main/index.html"
click node_gallery "https://github.com/mamunbracu/portfolio-teaching/blob/main/index.html"
click node_documents_cv "https://github.com/mamunbracu/portfolio-teaching/blob/main/index.html"
click node_login "https://github.com/mamunbracu/portfolio-teaching/blob/main/index.html"
click node_dashboard "https://github.com/mamunbracu/portfolio-teaching/blob/main/index.html"
click node_content_editor "https://github.com/mamunbracu/portfolio-teaching/blob/main/index.html"
click node_teaching_library "https://github.com/mamunbracu/portfolio-teaching/blob/main/index.html"
click node_settings "https://github.com/mamunbracu/portfolio-teaching/blob/main/index.html"
click node_backup "https://github.com/mamunbracu/portfolio-teaching/blob/main/index.html"
click node_demo_storage "https://github.com/mamunbracu/portfolio-teaching/blob/main/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_public_site,node_navigation,node_gallery,node_documents_cv toneBlue
class node_login,node_dashboard,node_content_editor,node_teaching_library,node_settings,node_backup toneAmber
class node_demo_storage,node_firebase_auth,node_firestore,node_cloud_storage toneMint
class node_visitor,node_admin_user toneIndigo
```

## Components

### Public website

- [Portfolio pages](https://github.com/mamunbracu/portfolio-teaching/blob/main/index.html): `index.html`
- [Responsive navigation](https://github.com/mamunbracu/portfolio-teaching/blob/main/index.html): `index.html`
- [Photo gallery](https://github.com/mamunbracu/portfolio-teaching/blob/main/index.html): `index.html`
- [Documents and CV](https://github.com/mamunbracu/portfolio-teaching/blob/main/index.html): `index.html`

### Admin dashboard

- [Login](https://github.com/mamunbracu/portfolio-teaching/blob/main/index.html): `index.html`
- [Admin dashboard](https://github.com/mamunbracu/portfolio-teaching/blob/main/index.html): `index.html`
- [Website content](https://github.com/mamunbracu/portfolio-teaching/blob/main/index.html): `index.html`
- [Teaching library](https://github.com/mamunbracu/portfolio-teaching/blob/main/index.html): `index.html`
- [Settings](https://github.com/mamunbracu/portfolio-teaching/blob/main/index.html): `index.html`
- [Backup and import](https://github.com/mamunbracu/portfolio-teaching/blob/main/index.html): `index.html`

### Persistence and services

- [Browser storage](https://github.com/mamunbracu/portfolio-teaching/blob/main/index.html): `index.html`
- **Firebase Authentication**
- **Cloud Firestore**
- **Firebase Storage**

### Other components

- **Visitor**
- **Administrator**

## Connections

- Visitor → Portfolio pages: browses (evidence: `README.md`)
- Portfolio pages → Responsive navigation: offers navigation (evidence: `README.md`)
- Portfolio pages → Photo gallery: includes gallery (evidence: `README.md`)
- Portfolio pages → Documents and CV: offers documents (evidence: `README.md`)
- Administrator → Login: signs in (evidence: `README.md`)
- Login → Firebase Authentication: authenticates with (evidence: `README.md`)
- Login → Admin dashboard: opens dashboard (evidence: `README.md`)
- Admin dashboard → Website content: edits content (evidence: `README.md`)
- Admin dashboard → Teaching library: manages classes (evidence: `README.md`)
- Admin dashboard → Settings: configures site (evidence: `README.md`)
- Admin dashboard → Backup and import: exports or imports (evidence: `README.md`)
- Website content → Browser storage: saves locally (evidence: `README.md`)
- Teaching library → Browser storage: saves locally (evidence: `README.md`)
- Website content → Cloud Firestore: saves live data (evidence: `README.md`)
- Teaching library → Cloud Firestore: stores materials (evidence: `README.md`)
- Settings → Cloud Firestore: configures connection (evidence: `README.md`)
- Settings → Firebase Storage: enables file storage (evidence: `README.md`)
- Backup and import → Browser storage: moves browser data (evidence: `README.md`)
