How jigar-sable/portfolio-website works
1. This repository is a static personal portfolio site, not a server-backed application. The runtime is the browser; deployment is likely a static host such as Netlify, as indicated by the README.
2. The site is split into multiple entry pages rather than a single SPA:
- index.html for the main portfolio landing page
- experience/index.html for work/history content
- projects/index.html for project listings
- 404.html for the custom error page
3. Shared presentation lives under assets/:
- assets/css/style.css for global styling
- assets/js/app.js and assets/js/script.js for shared client-side behavior
- assets/images/ for reusable media, organized into educat, projects, and skills
4. Each section/page also has its own local CSS and JS:
- experience/style.css and experience/script.js
- projects/style.css and projects/script.js
- assets/css/404.css and assets/js/404.js
This suggests a clear boundary between global site behavior and page-specific interactions.
5. Data-driven content is stored in JSON rather than hardcoded in HTML:
- projects/projects.json likely feeds the projects page
- skills.json likely feeds the skills section on the main page
The JS files are probably responsible for fetching these files, parsing them, and rendering DOM elements.
6. The main page is the most feature-rich integration point. Based on the README, it likely combines:
- animated intro text via Typed.js
- visual effects via Particle.js
- reveal-on-scroll behavior via ScrollReveal
- card/image tilt effects via Tilt.js
- iconography via Font Awesome
- embedded live chat via Tawk.to
7. jQuery is part of the client stack, so some DOM manipulation and event handling are probably written with jQuery rather than plain vanilla JS. That matters for understanding how page scripts interact with the DOM and external plugins.
8. The architecture is purely front-end and componentized by page/section. There is no evidence of an API layer, database, build pipeline, or backend service. Data flow is mostly:
static HTML shell -> page JS -> JSON/assets -> rendered DOM.
9. The projects area is a self-contained sub-application of sorts: its own HTML, CSS, JS, and data file. That separation makes it the clearest example of a content module with its own rendering pipeline.
10. The custom 404 page is also isolated, which means even error handling is handled client-side at the static hosting layer rather than by application routing.
11. In diagram terms, the key boundaries are:
- shared assets vs. page-specific assets
- static content vs. JSON-driven content
- browser-only UI logic vs. external third-party widgets/libraries
12. Overall, the repository is a modular static portfolio site where each page loads a small set of local assets, optionally fetches JSON for dynamic rendering, and enhances the experience with a handful of browser-side libraries.
Main entry points: index.html Home · projects/index.html Projects · experience/index.html Experience · style.css Site CSS
Components 26
Pages
Top-level HTML entry points and section pages
- Home · Main portfolio landing page
index.html - Experience · Work and history section
experience/index.html - Projects · Project listings section
projects/index.html - 404 Page · Custom static-hosting error page
404.html
Shared Assets
Reusable CSS, JavaScript, and media used across pages
- Site CSS · Shared presentation across the site
assets/css/style.css - Site JS · Shared browser behavior for the portfolio
assets/js/app.js - Shared Script · Additional shared interaction logic
assets/js/script.js - Media Library · Reusable visual assets for sections and projects
assets/images - Education Media · Education-related images
assets/images/educat - Project Media · Project-related images
assets/images/projects - Skill Media · Skill-related images
assets/images/skills - Exp CSS · Experience page styling
experience/style.css - Exp JS · Experience page behavior
experience/script.js - Proj CSS · Projects page styling
projects/style.css - Proj JS · Projects page behavior
projects/script.js - 404 CSS · 404 page styling
assets/css/404.css - 404 JS · 404 page behavior
assets/js/404.js
Content Data
JSON-driven content used by page scripts
- Projects Data · Structured content for project cards
projects/projects.json - Skills Data · Structured skills content for the home page
skills.json
Browser Integrations
External client-side libraries and widgets mentioned by the site
- Typed.js · Animated typing effect used on the home page
- Particle.js · Background particle animation on the home page
- ScrollReveal · Reveal-on-scroll interactions
- Tilt.js · Card and image tilt effects
- Font Awesome · Site iconography
- jQuery · DOM manipulation and event handling helper
- Tawk.to · Embedded live chat integration
Connections 28
- Home → Site CSS: styles · Loads shared site styling
- Home → Site JS: boot · Starts shared browser behavior
- Home → Shared Script: extras · Adds shared interaction logic
- Home → Skills Data: fetch · Renders skills content from JSON
- Home → Media Library: media · Uses shared visual assets
- Home → Typed.js: uses · Animated intro text
- Home → Particle.js: uses · Particle background effect
- Home → ScrollReveal: uses · Scroll-based reveal effects
- Home → Tilt.js: uses · Tilt interactions for cards/images
- Home → Font Awesome: uses · Icons in the UI
- Home → Tawk.to: embeds · Live chat widget
- Home → jQuery: depends on · jQuery-based DOM behavior
- Experience → Site CSS: styles · Shares the site-wide visual language
- Experience → Exp CSS: styles · Page-specific styling
- Experience → Exp JS: boot · Page-specific interactions
- Experience → Education Media: media · Uses education-related imagery
- Experience → jQuery: depends on · Likely uses jQuery for interactions
- Projects → Site CSS: styles · Shared base styles
- Projects → Proj CSS: styles · Project page styling
- Projects → Proj JS: boot · Project list rendering and interactions
- Projects → Projects Data: fetch · Loads project listings from JSON
- Projects → Project Media: media · Uses project imagery
- Projects → jQuery: depends on · Likely uses jQuery for DOM work
- 404 Page → 404 CSS: styles · 404-specific styling
- 404 Page → 404 JS: boot · 404 page behavior
- 404 Page → Site CSS: styles · May share base styling
- Site JS → jQuery: depends on · Shared scripts likely build on jQuery
- Site JS → Font Awesome: uses · Shared UI icon usage