How rohannimje/portfolio works
This is a personal portfolio website with an embedded AI assistant. Visitors browse the portfolio’s project, experience, certification, and honors content, open detailed media modals, or ask the assistant questions; assistant requests are streamed through a server proxy to Gemini with fallback-model handling. The excerpts show the UI, data, chat, and server paths, but do not expose every rendering call or AI-context wiring, so uncertain links are omitted. Major portfolio sections and the AI assistant’s local FAQ, contextual answers, navigation actions, and project-modal actions are represented.
Main entry points: ai-service.js Chat and response handling · data.js Portfolio content · main.js UI interactions · index.html Portfolio page
Components 16
Portfolio experience
- Portfolio page
index.html - UI interactions
js/main.js - Portfolio content
js/data.js - Project showcases
js/data.js - Experience and skills
js/data.js - Certifications and honors
js/data.js - Project and award modals
js/main.js
AI assistant
- Assistant interface
js/main.js - Chat and response handling
js/ai/ai-service.js - FAQ and navigation
js/ai/ai-service.js - Assistant knowledge
js/ai/ai-context.js - Proxy compatibility config
js/ai/config.js
Chat backend
- Local Express server
server.js - Chat API handler
api/chat.js
Other components
- Portfolio visitor
- Gemini streaming API
Connections 17
- Portfolio visitor → Portfolio page: opens
- Portfolio page → UI interactions: loads interface
- UI interactions → Portfolio content: renders portfolio data
- Portfolio content → Project showcases: defines
js/data.js - Portfolio content → Experience and skills: defines
js/data.js - Portfolio content → Certifications and honors: defines
js/data.js - UI interactions → Project and award modals: opens and closes
js/main.js - Portfolio visitor → Assistant interface: asks questions
- Assistant interface → Chat and response handling: sends chat
- Chat and response handling → FAQ and navigation: handles common questions
js/ai/ai-service.js - Chat and response handling → Assistant knowledge: builds prompt from
- Chat and response handling → Proxy compatibility config: checks compatibility
- Chat and response handling → Chat API handler: posts stream request
js/ai/ai-service.js - Chat API handler → Gemini streaming API: streams and fails over
api/chat.js - Local Express server → Chat API handler: routes chat request
server.js - Local Express server → Portfolio page: serves static files
server.js - Chat and response handling → Project and award modals: triggers project modal