How shivam5551/gaurav-kumar-portfolio works
This is a designer portfolio site with work, about, résumé, and lab pages, plus an interactive portfolio assistant. Visitors navigate the pages and browse project details; they can also ask the assistant questions, optionally grounding them in selected page text. The assistant flow is supported by the UI provider, API route, portfolio context, and Gemini client. Page-to-component wiring beyond the sampled excerpts is inferred from the repository’s route and component structure; uncertain links are omitted.
Main entry points: route.ts Assistant API · UIProvider.tsx UI state · LLMPanel.tsx Assistant panel · Nav.tsx Navigation
Components 27
Site experience
- Home route
app/page.tsx - About route
app/about/page.tsx - Résumé route
app/resume/page.tsx - Lab route
app/lab/page.tsx - Navigation
components/navigation/Nav.tsx - Page shell
components/layout/Shell.tsx - Site content
lib/data/site.ts
Portfolio content
- Work view
components/portfolio/WorkView.tsx - About view
components/about/AboutView.tsx - Lab view
components/lab/LabView.tsx - Experience
components/portfolio/Experience.tsx - Project card
components/portfolio/ProjectCard.tsx - Project viewer
components/portfolio/ProjectViewer.tsx - Project data
lib/data/projects.ts - About data
lib/data/about.ts - Lab data
lib/data/lab.ts
Portfolio assistant
- UI state
components/providers/UIProvider.tsx - Selection action
components/selection/SelectionAction.tsx - Assistant panel
components/llm/LLMPanel.tsx - Question composer
components/llm/Composer.tsx - Follow-up suggestions
components/llm/Suggestions.tsx - Assistant knowledge
lib/data/knowledge.ts - Assistant API
app/api/llm/route.ts - Portfolio context
lib/llm/context.ts - Gemini client
lib/llm/gemini.ts
Other components
- Visitor
- Google Gemini
Connections 26
- Visitor → Navigation: uses navigation
- Visitor → Home route: opens site
- Navigation → UI state: opens assistant
- Navigation → Site content: reads navigation content
- Home route → Work view: renders work
- About route → About view: renders about
- Résumé route → Experience: renders résumé
- Lab route → Lab view: renders lab
- Work view → Project data: reads projects
- Work view → Project card: renders projects
- Project card → Project viewer: opens details
- Project viewer → Project data: reads project details
- About view → About data: reads about content
- About view → Project viewer: opens selected project
- Lab view → Lab data: reads lab content
- Experience → Site content: reads experience
- Selection action → UI state: opens with selection
- UI state → Assistant API: posts question
- Assistant panel → UI state: reads and updates state
- Assistant panel → Question composer: renders composer
- Assistant panel → Follow-up suggestions: renders follow-ups
- Assistant API → Portfolio context: uses system context
- Assistant API → Gemini client: requests generation
- Assistant API → Google Gemini: generates response
- Assistant API → Assistant knowledge: not established
- Gemini client → Google Gemini: connects to model