# SecureAI Workshop Website - Build Summary

## Project Summary

This is a MkDocs Material documentation site for the **SecureAI** program - a self-paced, self-study series of **12 workshops** on cybersecurity and privacy for AI systems (Loyola University Chicago / NSF). Topics span adversarial machine learning, privacy, fairness, explainability, secure development, governance, and deployment.

The site is delivered as an on-demand online guide: learners watch recorded panel/lecture and lab-walkthrough videos, read each workshop page, and run the accompanying notebooks locally or in Google Colab. There is no live cohort, attendance requirement, or provisioned lab environment.

This summary reflects the current state of the repository. The self-study conversion (removing live-session framing and pointing all links to internal files) has been applied across `index.md` and all 12 workshop pages.

---

## Directory Structure

The repository is **flat** (all site content in the root). Because MkDocs forbids `docs_dir` from being the directory that holds `mkdocs.yml`, the build uses `build.sh` to regenerate a gitignored `_docs/` folder of symlinks to the flat content, and `mkdocs.yml` sets `docs_dir: _docs`. Build/serve via `./build.sh`.

```
SecureAI.github.io/
├── mkdocs.yml                 # Site config: Material theme, indigo palette, nav, extensions, plugins
├── build.sh                   # Regenerates the _docs/ symlink shim, then runs mkdocs
├── requirements.txt           # Build dependencies
├── README.md                  # Repository readme
├── BUILD_SUMMARY.md           # This file
├── LICENSE                    # MIT License
├── .gitignore
├── .github/workflows/
│   └── deploy.yml             # CI: build + deploy to gh-pages on push to main
│
├── index.md                   # Site landing page
├── overview.md                # Program overview
├── resources.md               # Shared resources / references
├── program_conclusion.md      # Closing page
│
├── assets/                    # Site-wide shared assets
│   ├── images/                # Speaker headshots, logos, secureai logo/favicon
│   ├── javascripts/           # external-links.js (open off-site links in a new tab)
│   └── stylesheets/
│       └── extra.css          # All custom styling
│
├── models/
│   └── General_Models/        # Shared base models (mnist10_model.keras, cifar10_model.keras)
│
└── Workshop01 … Workshop12/   # One directory per workshop
    ├── <Topic_Title>.md       # The workshop page
    └── assets/                # Per-workshop assets, present where applicable:
        ├── notebooks/         # Hands-on .ipynb lab activities
        ├── slides/            # Guest-speaker slide decks (.pdf)
        ├── datasets/          # Data for the labs (.npz / .pt / .csv)
        ├── models/            # Pre-trained attack/detector models (.keras / .pt / .pth)
        └── docs/              # Reference PDFs / notes for that workshop
```

---

## Page Inventory

### Top-level pages
- `index.md` - site landing page (team, program overview, getting started).
- `overview.md` - program overview and roadmap.
- `resources.md` - shared libraries, tools, datasets, and references.
- `program_conclusion.md` - closing page.

### Workshop pages
Twelve workshop pages, one per `WorkshopNN/` directory:

| #  | Page |
| -- | ---- |
| 1  | `Workshop01/Introduction_and_Fundamentals_in_AI.md` |
| 2  | `Workshop02/AI_and_Threat_Models.md` |
| 3  | `Workshop03/Adversarial_Attacks_-_White-Box_Attacks.md` |
| 4  | `Workshop04/Adversarial_Attacks_-_Black-Box_Attacks.md` |
| 5  | `Workshop05/Robustness_and_Resilience.md` |
| 6  | `Workshop06/AI_and_Privacy_Differential_Privacy_and_Federated_Learning.md` |
| 7  | `Workshop07/Ethics_in_AI_-_Bias_and_Fairness.md` |
| 8  | `Workshop08/Trust_in_AI_Transparency_Explainability_and_Interpretability.md` |
| 9  | `Workshop09/AI_Development_and_Security.md` |
| 10 | `Workshop10/AI_and_Data_Govern_Regulations_and_Standards.md` |
| 11 | `Workshop11/Secure_Deployment_and_Operation_of_AI_Systems.md` |
| 12 | `Workshop12/Case_Studies_RealWorld_Applications_AIShield.md` |

Each workshop page follows a common template: an at-a-glance summary, an overview, an on-demand video section (panelists or a single guest speaker), learning objectives, theoretical background, a hands-on lab section where notebooks exist, key takeaways, additional resources, and a link to the next workshop.

---

## Content Overview by Workshop

| Workshop | Focus | Lab assets |
|----------|-------|------------|
| 1  | AI fundamentals, security landscape, ethics; attack classes (poisoning/extraction/evasion) | Intro/keynote panel page; shared datasets referenced elsewhere |
| 2  | Threat modeling; evasion/poisoning/extraction/inference/backdoor | ART notebook |
| 3  | White-box attacks: FGSM, PGD, C&W; perturbation norms (L0/L2/L-inf); detector models | Full notebook set on MNIST-10 and CIFAR-10; per-attack datasets and detector models; slides (Blaine Hoak) |
| 4  | Black-box attacks: ZOO, SimBA; query-budget trade-offs | SimBA/ZOO notebooks on MNIST-10 and CIFAR-10 |
| 5  | Adversarial training, certified defenses (randomized smoothing), resilience | Certified adversarial training notebook; slides (Ryan Sheatsley) |
| 6  | Differential privacy, DP-SGD, federated learning, Deep Leakage from Gradients | Federated-learning and DLG notebooks; large per-client FL dataset tree; slides (Kai Yue) |
| 7  | Bias and fairness definitions, metrics, mitigation | Bias-mitigation notebook on Adult, COMPAS, German Credit; slides (Tamer Abuhmed) |
| 8  | Explainability and interpretability: LIME, SHAP; attacks on explanations | Interpreters notebook |
| 9  | Secure coding and secure development for ML | Secure-coding reference; slides (Jaron Mink) |
| 10 | Data governance and regulation: EU AI Act, NIST AI, AI Bill of Rights, GDPR/CCPA | Governance reference PDFs; slides (AI & Data Governance) |
| 11 | Secure deployment, framework vulnerabilities, operations | Reference notes; slides (Neophytos Christou) |
| 12 | Applied case studies (AIShield); federated learning with differential privacy | FL-with-DP notebooks; AIShield and case-study reference PDFs |

Slide decks present on disk cover Workshops 1, 3, 5, 6, 7, 9, and 11. Not every workshop ships a notebook; the hands-on lab section is included only where notebooks exist.

---

## Website Features

### Navigation
- Left sidebar hierarchy: Home > Overview > Workshops (12 items) > Resources.
- Right sidebar per-page table of contents generated from headers.
- Instant page transitions, tracking, top button, and expanded sections.
- Search with suggest, highlight, and share.

### Content support
- Mathematics (LaTeX/MathJax) via `pymdownx.arithmatex`.
- Code highlighting with Pygments, plus copy/select buttons.
- Mermaid diagrams via `pymdownx.superfences`.
- Tabbed content via `pymdownx.tabbed`.
- Task lists with custom checkboxes via `pymdownx.tasklist`.
- Admonitions, footnotes, definition lists, abbreviations, and snippets.

### Appearance
- Dark/Light mode with automatic system-preference detection (indigo palette).
- Responsive layout (desktop, tablet, mobile).
- Roboto / Roboto Mono typography.
- Minified HTML/CSS/JS via the `minify` plugin.

---

## Tools and Datasets

### Libraries used in the labs
- Adversarial Robustness Toolbox (ART)
- AI Fairness 360 (AIF360)
- Opacus (differential privacy)
- TensorFlow Federated (federated learning)
- LIME & SHAP (explainability)

### Frameworks
- PyTorch
- TensorFlow / Keras
- scikit-learn, NumPy, Pandas, Matplotlib

### Datasets
- MNIST-10, CIFAR-10 (vision labs)
- Adult, COMPAS, German Credit (fairness labs)

---

## Configuration Highlights (`mkdocs.yml`)

- `site_name`: SecureAI Workshop
- `site_url`: https://mujtabanazari.github.io/SecureAI/
  <!-- Canonical site URL taken from mkdocs.yml. Confirm this is the intended production URL. -->
- `docs_dir: _docs` (a gitignored symlink shim regenerated by `build.sh`; the repository stays flat)
- Theme: Material, indigo primary/accent, light + dark schemes
- Extensions: admonition, attr_list, def_list, footnotes, md_in_html, tables, toc, superfences (Mermaid), tabbed, highlight (Pygments), arithmatex, details, emoji, snippets, tasklist
- Plugins: search, minify (JS/CSS/HTML)
- Extra CSS: `assets/stylesheets/extra.css`

---

## Building and Serving

```bash
# Install dependencies (one time)
pip install mkdocs mkdocs-material pymdown-extensions

# Serve locally with live reload (run from the repo root, next to mkdocs.yml)
mkdocs serve
#   -> http://localhost:8000

# Build the static site (output in ./site/)
mkdocs build
```

---

## Known Naming Quirks (do not "fix" blindly)

Some asset paths contain typos or cross-referenced prefixes that notebooks and pages depend on. Preserve exact on-disk names when linking:

- `Workshop03/assets/datasets/SecAI_Workshop01_PGD_datasests/` (missing letter in "datasests").
- `Workshop06/.../server_model_weights/sever_model.pth` (missing letter in "sever").
- Workshop 3 dataset folders are prefixed `SecAI_Workshop01_*` even though they live under `Workshop03`.
- `Workshop04/.../SecAI_Workshop04_Activity03_ZOO_MNIST10.ipynb.bak` (stray backup file).

Empty or placeholder directories currently include `Workshop01/assets/` and `Workshop05/assets/datasets/`.

---

## Maintenance Notes

- Keep all cross-page links relative and internal to this repository; verify each target exists on disk.
- Preserve on-disk file names in links even where they contain typos.
- Add or reorder pages by editing the `nav:` section of `mkdocs.yml`.
- Run `mkdocs build --strict` before publishing to catch broken links and nav issues.
- Add recorded panel/lecture and lab-walkthrough video links to workshop pages as they become available.

---

**Built with:** MkDocs Material
**License:** MIT (see `LICENSE`)
**Site URL:** https://mujtabanazari.github.io/SecureAI/
