A Next.js 15 App Router project that renders an interactive, VS Code–style portfolio experience. The UI emulates an IDE with tabs, sidebar navigation, and a terminal-like panel to showcase personal projects, experience, and achievements.
- App Shell:
src/app/layout.tsxwires global metadata and importsglobals.cssfor baseline styling;src/app/page.tsxmounts theIDEcomponent as the primary view. - Feature Components:
src/components/IDE.tsxorchestrates local state for the active tab and sidebar. Supporting UI pieces (Sidebar,Editor,Terminal,StatusBar) live alongside reusable section components insrc/components/sections/. - Content Source: Portfolio copy, metrics, and file metadata are centralized in
src/data/portfolioData.ts. Update this file to add sections, projects, or contact info without touching presentation components. - Styling: Global resets live in
src/app/globals.css; component-specific styles use CSS modules undersrc/styles/(for example,IDE.module.css). Static assets reside inpublic/.
- Install Node.js 18+ (LTS recommended) and npm.
- Clone the repository and install dependencies:
npm install
- Start the development server with hot reload:
npm run dev
- Visit
http://localhost:3000to interact with the portfolio. Edit content insrc/data/portfolioData.tsor component files and the page will refresh automatically.
- Use absolute imports via the
@/alias defined intsconfig.json(for example,import Sidebar from '@/components/Sidebar';). - Keep component files in PascalCase and colocate related styles in matching CSS module
files (e.g.,
Sidebar.tsx+Sidebar.module.css). - Extend data structures by updating the TypeScript interfaces in
src/data/portfolioData.tsto maintain type safety across the UI.
Automated tests are not yet configured. Run the lint task as the primary quality gate:
npm run lintIf you add tests, place them under src/__tests__/ and document new scripts in
package.json.
Create an optimized production build and preview it locally:
npm run build
npm run startDeploy the .next/ output to your hosting provider (Vercel or any static web hosting) or export a
static build with next export if needed.