Skip to content

Repository files navigation

Roles Stack Ticker

Live Site Built with Hugo GitHub Pages CI/CD


Status Branch Theme CSS JS Deploy


Profile Views

"First, solve the problem. Then, write the code." — John Johnson

About

name:         Muhammad Awais
role:         AI Engineer · Managing Director @ AI GenMat
education:    BS Software Engineering — FAST-NUCES Islamabad (2026-2029)
education:    BS Artificial Intelligence — FAST-NUCES Peshawar (2025-2026)
site:         https://ik-awais.github.io

portfolio:
  generator:  Hugo v0.154.5 (extended)
  deploy:     GitHub Pages via GitHub Actions
  branch:     main
  build_time: ~90 seconds
  css:        1600+ lines — zero framework
  js:         520+ lines — vanilla, zero dependencies

specialization:
  - Agentic AI & Multi-Agent Systems
  - LLM Fine-tuning & RAG Pipelines
  - NLP & Computer Vision
  - GenAI Automation & AI Infrastructure

projects:     4 AI/ML projects
blog_posts:   4 (Tech Survival Series)

contact:
  work:       m.awais@aigenmat.com
  linkedin:   linkedin.com/in/muhammad-awais-ai-engineer
  upwork:     upwork.com/freelancers/~018a2d0e2f88ac4838

Tech Stack

Stack Ticker











Featured Projects

Project Description Stack
LectureLens Full RAG lecture Q&A system — Flask backend, ChromaDB vector store, BAAI/bge embeddings, SQLite FTS5, dark-themed Chat UI + admin dashboard Flask ChromaDB HuggingFace SQLite Python
AI Research Assistant Agent Autonomous agentic system that searches the web, deduplicates sources, and generates structured research reports with citations LangChain OpenAI Streamlit Python
Document Q&A System RAG pipeline for uploading documents and asking natural language questions with source citations LangChain FAISS Streamlit Python
MediScan AI End-to-end medical imaging pipeline — ViT classification, IsolationForest anomaly scoring, LLaMA 3.1 radiology report generation PyTorch HuggingFace FastAPI OpenCV LLaMA 3.1

Blog — Tech Survival Series

# Post Topics
01 Hypervisors, KVM & QEMU Complete Guide KVM · QEMU · virt-manager · Ubuntu 24.04 · Windows 11 VM · Kali · Parrot OS
02 How I Built This Portfolio with Hugo from Scratch Hugo · CI/CD · GitHub Actions · GitHub Pages · Bug Fixes
03 You Don't Need to Be a Programmer to Be a Tech Person CLI · Docker · Git · APIs · Cloud · AI Tools · Networking
04 Operating Systems Explained for Normal People Windows 11 · macOS · Linux · OS Fundamentals

GitHub Stats

Contribution Graph

contribution snake

Site Architecture

portfolio/
├── .github/workflows/deploy.yml     <- GitHub Actions CI/CD (triggers on main)
├── content/
│   ├── blog/                        <- 4 published posts (Tech Survival Series)
│   └── projects/                    <- 4 AI/ML project pages (incl. LectureLens)
├── layouts/
│   ├── _default/
│   │   ├── baseof.html              <- Base template (nav, footer, head, scripts)
│   │   ├── list.html                <- Archive pages (/projects/, /blog/)
│   │   └── single.html             <- Post/project pages + sticky ToC
│   └── index.html                  <- Homepage template
├── static/
│   ├── css/main.css                 <- 1600+ lines — dark/light theme, responsive
│   ├── js/main.js                   <- 520+ lines — cursor, animations, form, theme
│   └── _headers                    <- CSP security headers (Netlify/Cloudflare ready)
└── hugo.toml                        <- Site configuration

CI/CD Pipeline

git push main
      |
      v
GitHub Actions triggers deploy.yml
      |
      v
Checkout repo -> Setup Hugo v0.154.5 extended
      |
      v
hugo --minify --baseURL "${{ steps.pages.outputs.base_url }}/"
      |
      v
Upload public/ as GitHub Pages artifact
      |
      v
Deploy -> https://ik-awais.github.io  (~90 seconds total)

Security Layers

Layer Implementation
Email Validation RFC 5321 format · TLD 2-12 chars · blocks consecutive dots
Disposable Blocking 50+ throwaway providers blocked (Mailinator, YOPmail, etc.)
Honeypot Hidden field — invisible to humans, filled by bots
Rate Limiting 3 submissions/session · 60s cooldown between sends
CSP Headers Content-Security-Policy · X-Frame-Options · X-Content-Type-Options

Development Journey

# Problem Fix
1 Raw HTML to Hugo migration Rebuilt index.html into full content/layout/template structure
2 No templates found layouts/default/ -> layouts/_default/ (missing underscore)
3 CSS/JS not loading locally baseURL set to production URL — fixed with baseURL = "/"
4 Blog content invisible .reveal set opacity: 0 — removed, added opacity: 1 !important
5 ToC sidebar empty JS approach failed — switched to Hugo native TableOfContents
6 Formspree rejecting AJAX reCAPTCHA blocked free plan — honeypot + validation + rate limiting
7 Branch migration portfolio -> main: conflicts resolved, deploy.yml updated
8 GH Pages deploy failing Deploy branch not in github-pages environment allowlist
9 Light theme washed out #f5f5ef -> #f0f2f5 (GitHub/VS Code cool grey convention)
10 Wrong data on project cards .WordCount -> .Date.Format "Jan 2006"
11 Footer icon links dull/white Added explicit color:#00d4ff !important + purple hover to .footer-right a
12 Work email dull purple in footer Set .footer-brand-email to #00d4ff natural, purple on hover
13 Card-thumb showing 2-letter text icon Replaced with 8 deterministic SVG geometric glyphs (title+tag hash)
14 Homepage cards missing thumbnail Added card-thumb.html partial to index.html project grid
15 Constellation nodes too large/slow Reduced radius by 2px, increased count 34→55, boosted velocity 0.22→0.38

Local Development

# Clone
git clone https://github.com/ik-awais/ik-awais.github.io.git
cd ik-awais.github.io

# Serve locally
hugo server -D
# -> http://localhost:1313/

# Build for production
hugo --minify
# -> output in public/

Troubleshooting

Issue Cause Fix
CSS/JS not loading locally baseURL set to production URL Set baseURL = "/" for local dev
Blog content invisible .reveal sets opacity: 0 Remove .reveal from content wrapper
ToC sidebar empty JS ran before DOM ready Use Hugo's native TableOfContents
Formspree rejecting submissions reCAPTCHA on free plan blocks AJAX Disable reCAPTCHA in Formspree dashboard
Deploy fails on GitHub Actions Branch not in environment allowlist Add main in Settings -> Environments -> github-pages
Old content after push GitHub Pages cache git commit --allow-empty -m "force rebuild" && git push
Theme not persisting localStorage key mismatch Confirm main.js uses theme as storage key
Missing files after merge --theirs skips unique files Run git checkout -- . to force-sync

Contact

Live Site GitHub LinkedIn Upwork

About

Muhammad Awais | AI Engineer & BS Artificial Intelligence student at FAST-NUCES Peshawar. Personal portfolio & blog built with Hugo, custom CSS, GitHub Actions CI/CD. Features AI projects (RAG, LLM, Computer Vision), dark/light theme, and animated UI. Live at ik-awais.github.io

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages