How abhee-adhee/portfolio works
This is a React portfolio site with a gated admin dashboard. A visitor enters the public app, navigates portfolio pages, and views project, experience, skills, and contact content; the shared portfolio context supplies default data and persists editable state. The admin branch provides authentication/session handling and dashboard editing, but the top-level route is currently disabled by a flag. The README is only the Vite template and documents no product capabilities. Edges reflect the shown routing, imports, and calls; several unsampled page and admin details are represented only at their existing directory paths.
Main entry points: App.jsx Public app router · PortfolioDataContext.jsx Portfolio data · PageTransition.jsx Page transitions · main.jsx Browser entry
Components 23
Application runtime
- Browser entry
src/main.jsx - Public app router
src/App.jsx
Public portfolio
- Home
src/pages/Home.jsx - Project listing
src/pages/Projects.jsx - Project details
src/pages/ProjectDetail.jsx - About
src/pages/About.jsx - Experience
src/pages/Experience.jsx - Contact
src/pages/Contact.jsx
Portfolio content
- Portfolio data
src/context/PortfolioDataContext.jsx - Project records
src/data/projects.js - Skill records
src/data/skills.js - Event records
src/data/events.js - Browser storage
Admin dashboard
- Admin router
src/admin/AdminApp.jsx - Admin access guard
src/admin/components/auth/AdminAuthGuard.jsx - Session manager
src/admin/hooks/useSessionManager.js - Content dashboard
src/admin/pages/Dashboard.jsx - Admin sections
src/admin/pages
Shared interaction
- Theme state
src/context/ThemeContext.jsx - Sound controls
src/context/SoundContext.jsx - Sound synthesizer
src/utils/soundEngine.js - Page transitions
src/components/PageTransition.jsx
Other components
- Visitor
Connections 33
- Visitor → Browser entry: opens site
- Browser entry → Public app router: routes to
src/main.jsx - Browser entry → Portfolio data: provides data
src/main.jsx - Browser entry → Admin router: conditionally routes
src/main.jsx - Public app router → Home: routes to
src/App.jsx - Public app router → Project listing: routes to
src/App.jsx - Public app router → Project details: routes to
src/App.jsx - Public app router → About: routes to
src/App.jsx - Public app router → Experience: routes to
src/App.jsx - Public app router → Contact: routes to
src/App.jsx - Public app router → Theme state: provides theme
src/App.jsx - Public app router → Sound controls: provides sound
src/App.jsx - Portfolio data → Project records: loads defaults
src/context/PortfolioDataContext.jsx - Portfolio data → Skill records: loads defaults
src/context/PortfolioDataContext.jsx - Portfolio data → Event records: loads defaults
src/context/PortfolioDataContext.jsx - Portfolio data → Browser storage: reads and writes
src/context/PortfolioDataContext.jsx - Project listing → Portfolio data: reads content
src/pages/Projects.jsx - Contact → Portfolio data: reads content
src/pages/Contact.jsx - Project details → Project records: reads project
src/pages/ProjectDetail.jsx - Home → Page transitions: renders
src/pages/Home.jsx - Project listing → Page transitions: renders
src/pages/Projects.jsx - About → Page transitions: renders
src/pages/About.jsx - Contact → Page transitions: renders
src/pages/Contact.jsx - Page transitions → Sound controls: plays navigation sound
src/components/PageTransition.jsx - Sound controls → Sound synthesizer: dispatches effects
src/context/SoundContext.jsx - Theme state → Browser storage: persists theme
src/context/ThemeContext.jsx - Admin router → Admin access guard: guards routes
src/admin/AdminApp.jsx - Admin access guard → Session manager: uses session
src/admin/components/auth/AdminAuthGuard.jsx - Admin access guard → Content dashboard: protects dashboard
- Admin access guard → Browser storage: checks session
src/admin/components/auth/AdminAuthGuard.jsx - Session manager → Browser storage: clears auth state
src/admin/hooks/useSessionManager.js - Content dashboard → Portfolio data: edits portfolio data
src/admin/pages/Dashboard.jsx - Admin router → Admin sections: loads sections
src/admin/AdminApp.jsx