Alexander Suvorov v3.0.10

Academic Research Portfolio

Showcasing published paradigms in security architecture, information theory, and computational complexity.

Research Python GitHub Actions Zenodo Automated Static Site

Alexander Suvorov — Academic research portfolio showcasing published paradigms in security architecture, information theory, and computational complexity.

This isn't a static site — it's an automated research dashboard that fetches live publication statistics from Zenodo daily.

How It Works:

GitHub Actions (cron) → Python Script → Zenodo API → JSON Data → Static Site
         ↓                    ↓              ↓            ↓            ↓
     Runs daily        Fetches stats   4 publications    Stores     Updates all
    at midnight        for 4 DOIs       with metrics     locally     HTML pages

Features:

  • Live Research Metrics — Daily Zenodo API calls via GitHub Actions
  • Automatic Fallback — Config.js stores hardcoded values, site works even if Zenodo API is down
  • Zero Client-Side API — All data fetched at build time, no CORS issues
  • DOI Integration — Every publication has permanent DOI links
  • Zero Cost — Hosted on GitHub Pages

ParadigmDOIMetrics Displayed
Pointer-Based Security10.5281/zenodo.17204738Unique/Total Views & Downloads
Local Data Regeneration10.5281/zenodo.17264327Unique/Total Views & Downloads
Deterministic Game Engine10.5281/zenodo.17383447Unique/Total Views & Downloads
PCH Paradigm10.5281/zenodo.17614888Unique/Total Views & Downloads

Aggregate Metrics: Total unique downloads (500+), total downloads (1000+), unique views (500+), total views (1000+), 4 publications, 3 paradigms

/
├── .github/workflows/
│   └── update-zenodo.yml        # Daily cron job (runs at midnight UTC)
│
├── scripts/
│   └── fetch_zenodo.py    # Python script that hits Zenodo API for all 4 DOIs
│
├── data/
│   └── zenodo.json               # AUTO-GENERATED: Fresh statistics every day
│
├── js/
│   ├── config.js                  # CONFIG: Hardcoded fallback values + Zenodo record IDs
│   ├── stats-manager.js           # LOGIC: Reads zenodo.json, merges with config, updates DOM
│   ├── main.js                     # INIT: Bootstraps the PortfolioApp
│   └── particle-background.js      # VISUAL: Animated tech word canvas background
│
├── research/                       # Individual research detail pages (8 total)
│   ├── pointer-based-security.html
│   ├── local-data-regeneration.html
│   ├── deterministic-game-engine.html
│   └── position-candidate-hypothesis.html
│
├── index.html                      # Home page with 4 main navigation cards
├── about.html                      # Research profile, impact metrics, contact
├── research.html                   # MAIN: Detailed cards for all 4 paradigms with stats
├── expertise.html                  # Three core research areas with nested expertise items
├── sitemap.xml                     # AUTO-MAINTAINED: Includes all 8 research pages
└── css/
    └── style.css                   # Dark academic theme with CSS variables

Frontend — Presentation Layer:

  • HTML5 — Semantic academic markup, Schema.org Person markup
  • CSS3 — Dark academic theme with CSS variables
  • Bootstrap 5 — Responsive grid for research cards
  • Vanilla JavaScript (ES6+) — 6 focused classes, no frameworks

Backend — Automation Layer:

  • GitHub Actions — Scheduled automation (cron job daily at 00:00 UTC)
  • Python 3.8+ — Data fetching
  • Requests Library — HTTP client for Zenodo API
  • Zenodo API — Returns stats (unique_views, unique_downloads, views, downloads)
  • JSON Storage — Local cache at /data/zenodo.json

1. Pointer-Based Security Paradigm

  • DOI: 10.5281/zenodo.17204738
  • Published: September 26, 2025
  • Concept: Architectural transition from data protection to no vulnerable data
  • Transformations: Data Transmission → Synchronous Discovery, Secret Storage → Deterministic Regeneration

2. Local Data Regeneration Paradigm

  • DOI: 10.5281/zenodo.17264327
  • Published: October 4, 2025
  • Concept: Ontological shift from data transmission to synchronous state discovery
  • Postulates: Data as System State, Synchronous Local Regeneration (D = F(S, P))

3. Deterministic Game Engine (Tech Report)

  • DOI: 10.5281/zenodo.17383447
  • Published: October 18, 2025
  • Concept: Practical implementation validating both paradigms
  • Results: 2.8M elements/sec, O(1) constant-time state access, Linear O(n) entity simulation

4. Position-Candidate-Hypothesis (PCH) Paradigm

  • DOI: 10.5281/zenodo.17614888
  • Published: November 15, 2025
  • Concept: Structural-statistical approach to NP-complete problems
  • Components: Positions (n), Candidates (n), Hypotheses (n)

Core Logic (stats-manager.js):

1. constructor() calls loadFromFile()
2. loadFromFile() fetches /data/zenodo.json
3. If fetch succeeds → uses file data
4. If fetch fails → uses CONFIG.COUNTERS.RESEARCH_STATS (from config.js)
5. updateAllStats() merges file data with config (per-paradigm)
6. updateParadigmStats() updates each research card's view/download numbers
7. updateHeaderStats() updates header stats (total unique downloads/views)
8. updateMetricsStats() updates about page metrics

Data Format (zenodo.json):

{
  "pointerParadigm": {
    "unique_views": 359,
    "unique_downloads": 308,
    "total_views": 573,
    "total_downloads": 597
  }
}

Setup:

# 1. Clone the repository
git clone https://github.com/smartlegionlab/alexander-suvorov.git
cd alexander-suvorov

# 2. Create virtual environment
python -m venv venv

# 3. Install requirements
pip install -r scripts/requirements.txt

# 4. Manually fetch latest Zenodo stats
python scripts/fetch_zenodo_stats.py

# 5. Start local server
python -m http.server 8000

By using this software, you agree to the full disclaimer terms.

Software provided "AS IS" without warranty. You assume all risks.

Full legal disclaimer: See DISCLAIMER.md

License: BSD 3-Clause License