Skip to content

shaikhshahnawaz13/portfolioforge

Repository files navigation


Typing SVG



Portfolio GitHub LinkedIn Email


Profile Views GitHub followers


About Me

const shahnawaz = {
  name:     "Shahnawaz Shaikh",
  location: "Mumbai, India",
  role:     "Full Stack Engineer & AI Builder",

  currentlyBuilding: [
    "Portfolio Forge  — AI resume to portfolio generator",
    "Real-time collab — WebSockets + CRDT state sync",
    "AI Code Reviewer — LLM-powered PR review bot",
    "Headless UI Lib  — Tailwind + TypeScript, zero JS",
  ],

  stack: {
    ai:       ["Groq", "Gemini", "OpenAI", "LangChain"],
    backend:  ["Node.js", "FastAPI", "GraphQL", "Redis"],
    frontend: ["React", "Next.js", "Tailwind", "Vite"],
    devops:   ["Docker", "GitHub Actions", "CI/CD"],
  },

  funFact: "I turn resumes into portfolios with AI",
  openTo:  "Collabs, Freelance, Full-time roles",
};

Tech Stack

Languages

JavaScript  TypeScript  Python  HTML5  CSS3  SQL


Frontend

React  Next.js  Tailwind CSS  Vite  Redux  Zustand


Backend

Node.js  Express.js  FastAPI  GraphQL  WebSockets  REST API


Databases & Cache

PostgreSQL  MongoDB  Redis  Supabase  Firebase  SQLite


AI / ML

OpenAI  Gemini  Groq  LangChain  Hugging Face  Mistral AI


DevOps & Cloud

Docker  GitHub Actions  Vercel  Netlify  GitHub Pages  Nginx


Auth · Testing · Tools

JWT  OAuth2  Bcrypt  Vitest  Jest  Playwright  Git  VS Code  Postman  Figma  Linux


Featured Project — Portfolio Forge

Upload a resume. Get a production-ready portfolio website in seconds. 100% browser-based. Zero backend.

Repo Live CI License Stars


Feature Details
Multi-Provider AI Groq (Llama 3.3 70B) · Gemini 2.0 Flash · OpenAI GPT-4o Mini · OpenRouter (Mistral 7B)
Key Pool Rotation Add multiple API keys — auto-rotates on rate-limit, never blocks you
In-Browser Parsing PDF.js + Mammoth.js — extracts text 100% in the browser, zero server uploads
6 Design Presets Dark Minimal · Editorial · Terminal · Glassmorphism · Bold · Clean
One-Click Export Downloads a clean ZIP with separate index.html, style.css, script.js
36 Unit Tests Vitest suite — parsers, validators, file handling, typed error classes
Auto-Deploy GitHub Actions CI/CD → GitHub Pages on every main push
Privacy-First Keys in JS memory only — never localStorage, never a server
Architecture Deep-Dive (click to expand)
portfolioforge/
│
├── index.html                # App shell: semantic HTML + ARIA roles, zero inline styles
├── src/
│   ├── style.css             # Design system via CSS custom properties (20+ variables)
│   └── app.js                # All logic — vanilla ES2022, zero runtime dependencies
│       ├── STATE {}           # Single source of truth: provider, keyPool[], html/css/js
│       ├── PROVIDERS {}       # Per-provider config: endpoint, model, validate()
│       ├── Key Pool Engine    # addKeyToPool() → markKeyRateLimited() → getNextKey()
│       ├── callWithKeyRotation()  # Round-robin over keys → multi-round backoff
│       ├── extractPDF()       # PDF.js page-by-page Y-coordinate text reconstruction
│       ├── extractDOCX()      # Mammoth.js raw text extraction
│       ├── cleanResume()      # Normalise whitespace, hard-cap at 1,800 chars
│       ├── callGemini()       # Gemini-specific request format + error mapping
│       ├── parseAI()          # 4-strategy: delimiters → fences → normalised → raw HTML
│       └── renderPreview()    # Sandboxed srcdoc iframe with injected CSS + JS
│
├── tests/app.test.js         # 36 tests across 6 describe blocks
└── .github/workflows/ci.yml  # test → validate → deploy pipeline

GitHub Stats

Commits Longest Streak Repos


JavaScript  CSS  HTML


What This Repo Actually Demonstrates

Every claim below is directly evidenced by code in this repository.

Signal Evidence in Code Depth
AI / Multi-Provider 4 LLM providers, unified abstraction, prompt engineering, token budgeting █████████░
API Integration REST calls to 4 different provider APIs, correct headers, per-provider error mapping ████████░░
Key Pool & Rate Limiting Round-robin rotation, backoff, markKeyRateLimited(), multi-round retry █████████░
In-Browser File Parsing PDF.js Y-coordinate reconstruction, Mammoth.js DOCX extraction ████████░░
State Management Vanilla STATE {} pattern — single source of truth, no framework needed ████████░░
Testing 36-test Vitest suite: validators, parsers, file handling, typed error classes ████████░░
CI/CD GitHub Actions: test → HTML validate → deploy to Pages on every push █████████░
Privacy / Security Keys in JS memory only — never localStorage, never sent to a server █████████░
CSS Architecture Design system via 20+ CSS custom properties, 6 distinct design presets ████████░░
Error Handling Custom RateLimitError + ParseError classes, 4-strategy HTML parser ████████░░

Note: Auth, databases, Docker, TypeScript, WebSockets, and other skills listed in the Tech Stack badge section reflect my broader experience and other projects — not this specific repo, which is intentionally zero-dependency and serverless by design.


Currently Building

Portfolio Forge v4     ──  Claude / Anthropic streaming + live generation view
Real-time collab tool  ──  WebSockets + CRDT-based conflict-free state sync
AI code reviewer       ──  GitHub Action that reviews PRs via LLM feedback
Open-source UI lib     ──  Headless Tailwind + TypeScript components, zero JS

Engineering Philosophy

"Ship it, then improve it.
 Tests first on anything that has state.
 If it needs a server, question why.
 If it needs a framework, question harder."
Principle Practice
Simplicity over cleverness Readable 10-line function beats a smart 3-liner
Ship early, iterate fast Working v1 beats perfect v0 every time
Test behaviour, not implementation Tests describe what, not how
Security by default Keys in memory only · HTTPS always · no implicit trust
Zero-dependency where possible Vanilla JS over a framework for focused tools
Docs are code README, comments, and types are first-class citizens

Open to Opportunities

Freelance Full-time OSS Collab


If any of my work helped you — a star means the world to me.

About

Portfolio Forge is a browser-based tool that transforms resumes into fully functional portfolio websites in seconds. Generate clean, deploy-ready code with customizable design and instant live preview — all without any setup.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors