Academic Research Portfolio
Showcasing published paradigms in security architecture, information theory, and computational complexity.
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:
| Paradigm | DOI | Metrics Displayed |
|---|---|---|
| Pointer-Based Security | 10.5281/zenodo.17204738 | Unique/Total Views & Downloads |
| Local Data Regeneration | 10.5281/zenodo.17264327 | Unique/Total Views & Downloads |
| Deterministic Game Engine | 10.5281/zenodo.17383447 | Unique/Total Views & Downloads |
| PCH Paradigm | 10.5281/zenodo.17614888 | Unique/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:
Backend — Automation Layer:
/data/zenodo.json1. Pointer-Based Security Paradigm
10.5281/zenodo.172047382. Local Data Regeneration Paradigm
10.5281/zenodo.17264327D = F(S, P))3. Deterministic Game Engine (Tech Report)
10.5281/zenodo.173834474. Position-Candidate-Hypothesis (PCH) Paradigm
10.5281/zenodo.17614888Core 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