Skip to content
naitik-workPublic

About

A dual-mode web desktop portfolio (macOS Sonoma & Windows 11) built with React 19, Vite, GSAP, and modular SCSS. Features draggable/resizable windows, an interactive CLI terminal, virtual file explorer, in-app browser, markdown reader, and an embedded AI portfolio assistant.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

9 Commits

Folders and files

Repository files navigation

Mac OS & Windows Interactive Portfolio

A fully interactive, dual-mode (macOS Sonoma & Windows 11) web desktop portfolio built with React 19, Vite, GSAP, and modular SCSS.

Live Demo React Vite GSAP SCSS


🌐 Live Demo

πŸ”— https://mac-os-y6za.onrender.com


πŸ“Œ Project Overview

Traditional developer portfolios are often static, single-page resumes that look identical to one another. This project re-imagines the portfolio experience as an interactive operating system desktop.

Visitors can interact with real draggable and resizable windows, launch an interactive CLI terminal to inspect commands, browse projects inside a simulated web browser, navigate a virtual filesystem through Finder or File Explorer, and query an embedded AI assistant. It provides an engaging, memorable showcase of full-stack engineering skills, component architecture, and modern UI/UX design.


✨ Key Features

  • Dual-OS Environment (macOS Sonoma & Windows 11): Instant switching between macOS and Windows 11 design languages with smooth GSAP crossfade transitions, preserving open window states across environments.
  • Window Management System: Multi-window multitasking powered by react-rnd, featuring dragging, resizing, minimizing, maximizing, focus layering (dynamic z-index), and outside-click dismissal.
  • Interactive Terminal (CLI): A functional developer terminal powered by react-console-emulator supporting custom commands: whoami, about, skills, projects, education, experience, contact, and resume.
  • Virtual File Explorer & Filesystem: Hierarchical file navigation through Finder (macOS) and File Explorer (Windows), featuring breadcrumbs, grid/list view toggles, documents, and clickable project directories.
  • Embedded AI Assistant (Siri / Copilot): An interactive conversational assistant that answers recruiter questions about skills, background, university education, projects, and contact info, complete with one-click action triggers that open corresponding apps.
  • Simulated Web Browser (Safari / Edge): An in-app browser with back/forward history navigation, reload capability, URL address bar, and routed views for Home, Projects, About, and Contact.
  • Markdown & Syntax-Highlighted Note Viewer: A native Notes application reading markdown content with code syntax highlighting via react-markdown and react-syntax-highlighter.
  • Resume Viewer with Resilient Fallback: An in-window document viewer with an integrated fallback card displaying verified credentials and direct download options if the PDF is loading or unavailable.
  • Spotlight & Universal Search: Global search overlay accessible via keyboard shortcut (Cmd+Space on macOS, Win+S or Ctrl+K on Windows) to quickly filter and launch applications, documents, and contacts.
  • Control Center & Customization: Quick Settings panel with working toggles for system appearance, animation performance, desktop wallpapers, and volume/brightness sliders.
  • System Boot & Lock Screen Sequences: Realistic Apple / Windows boot sequence animations and an interactive lock screen with real-time clock and date display.

πŸ› οΈ Tech Stack

Frontend & Core

  • React 19: Component-based UI architecture, custom hooks, and React Context API.
  • Vite 7: Next-generation frontend tooling for rapid development and optimized production builds.

UI & Styling

Desktop & Windowing Engine

  • react-rnd: Draggable and resizable windowing framework with responsive boundaries.
  • react-console-emulator: Interactive CLI terminal emulator with command registration.

Content & Rendering

State & Storage

  • React Context API: Centralized CreateWindowContext coordinating window states, z-index layers, search modals, and active OS modes.
  • HTML5 LocalStorage: Persistent storage for wallpaper preferences, desktop icon coordinates, and appearance settings.

βš™οΈ How It Works

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                      WindowContext                          β”‚
β”‚  (Window States, Z-Index, OS Mode, Notifications, Modals)   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚                               β”‚
       β”Œβ”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”             β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”
       β”‚   Mac Desktop  β”‚             β”‚ WindowsDesktop β”‚
       β”‚ (Nav + Dock)   β”‚             β”‚(Taskbar+Start) β”‚
       β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜             β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚                               β”‚
               β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                               β”‚
                β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                β”‚        Shared Windows       β”‚
                β”‚ ─────────────────────────── β”‚
                β”‚ β€’ Terminal (CLI)            β”‚
                β”‚ β€’ File Explorer / Finder    β”‚
                β”‚ β€’ GitHub Projects Window    β”‚
                β”‚ β€’ Notes (Markdown Viewer)   β”‚
                β”‚ β€’ Web Browser (Safari/Edge) β”‚
                β”‚ β€’ Resume Viewer             β”‚
                β”‚ β€’ Hire Me / Contact Card    β”‚
                β”‚ β€’ Settings & Control Center β”‚
                β”‚ β€’ AI Assistant (Siri/Copilotβ”‚
                β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  1. Boot & Unlock: When the user opens the application, an initial boot timeline is executed via GSAP. Once booted, the lock screen displays the current time and user profile, unlocking upon click or keypress.
  2. Context-Driven State Management: Every application window is registered in src/assets/appRegistry.js. The CreateWindowContext tracks visibility (windowState), minimization (minimizedState), and stacking order (zIndexMap).
  3. Multitasking & Window Layering: Clicking any window brings it to the top by incrementing its z-index through bringToFront(appName). Windows can be dragged freely across the desktop or maximized to fill the workspace.
  4. OS Mode Switching: Toggling between macOS and Windows swaps the outer shell (Dock + Top Bar vs. Taskbar + Start Menu) while keeping active window instances open and mounted seamlessly.
  5. AI Assistant Intent Matching: Queries entered into the AI chat assistant are parsed through an intent matcher in chatFaqData.js that maps keywords to verified developer information and triggers direct app actions.

πŸ“ Project Structure

Mac-OS/
β”œβ”€β”€ public/                     # Static assets, icons, wallpapers & notes
β”‚   β”œβ”€β”€ doc-icons/              # Dock and taskbar SVG icons
β”‚   β”œβ”€β”€ navbar-icons/           # Top bar icons (Apple logo, controls)
β”‚   β”œβ”€β”€ project_img/            # Project showcase preview graphics
β”‚   β”œβ”€β”€ note.md                 # Markdown document loaded by Notes app
β”‚   └── Wallpaper.jpg           # Default desktop wallpaper
β”‚
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ assets/
β”‚   β”‚   β”œβ”€β”€ appRegistry.js      # Central definitions & titles for all windows
β”‚   β”‚   β”œβ”€β”€ github.json         # Featured projects & verified repositories
β”‚   β”‚   β”œβ”€β”€ profile.js          # Re-exported central profile data
β”‚   β”‚   └── wallpapers.js       # Curated wallpaper collection & gradient styles
β”‚   β”‚
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ apps/               # Standalone application components
β”‚   β”‚   β”‚   β”œβ”€β”€ Browser.jsx     # In-app web browser (Safari / Edge)
β”‚   β”‚   β”‚   β”œβ”€β”€ Explorer.jsx    # Finder / Windows File Explorer
β”‚   β”‚   β”‚   β”œβ”€β”€ HireMe.jsx      # Contact card & direct action buttons
β”‚   β”‚   β”‚   └── SettingsApp.jsx # Appearance, wallpapers & OS preferences
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ boot/               # Boot sequence & lock screen
β”‚   β”‚   β”‚   β”œβ”€β”€ BootScreen.jsx  # GSAP-animated boot screen
β”‚   β”‚   β”‚   └── LockScreen.jsx  # Clock lock screen with click-to-unlock
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ notifications/      # Notification Center flyout
β”‚   β”‚   β”‚   └── NotificationCenter.jsx
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ shared/             # Overlays common to both OS environments
β”‚   β”‚   β”‚   β”œβ”€β”€ AIChatAssistant.jsx # Siri / Copilot conversational assistant
β”‚   β”‚   β”‚   β”œβ”€β”€ QuickSettingsPanel.jsx # macOS Control Center / Win Action Center
β”‚   β”‚   β”‚   β”œβ”€β”€ ShortcutsModal.jsx  # Keyboard shortcuts reference guide
β”‚   β”‚   β”‚   └── UniversalSearch.jsx # Spotlight / Windows Search (Cmd+Space / Win+S)
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ widgets/            # Interactive desktop widgets (Clock, Profile, Stats)
β”‚   β”‚   β”‚   └── DesktopWidgets.jsx
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ windows/            # Core draggable desktop window views
β”‚   β”‚   β”‚   β”œβ”€β”€ Cli.jsx         # Terminal emulator with registered commands
β”‚   β”‚   β”‚   β”œβ”€β”€ Github.jsx      # Repository showcase cards
β”‚   β”‚   β”‚   β”œβ”€β”€ MacWindow.jsx   # Window shell wrapper with RND controls
β”‚   β”‚   β”‚   β”œβ”€β”€ Note.jsx        # Markdown reader with syntax highlighting
β”‚   β”‚   β”‚   β”œβ”€β”€ Resume.jsx      # PDF viewer with fallback credentials card
β”‚   β”‚   β”‚   └── Spotify.jsx     # Music player embed window
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ Dock.jsx            # macOS-style bottom application dock
β”‚   β”‚   β”œβ”€β”€ MacDesktop.jsx      # macOS shell layout
β”‚   β”‚   β”œβ”€β”€ Nav.jsx             # macOS top menu bar
β”‚   β”‚   └── WindowsDesktop.jsx  # Windows 11 shell (Taskbar, Start Menu, Desktop)
β”‚   β”‚
β”‚   β”œβ”€β”€ config/                 # Static data & configurations
β”‚   β”‚   β”œβ”€β”€ chatFaqData.js      # Intent matching engine & FAQ knowledge base
β”‚   β”‚   β”œβ”€β”€ filesystemData.js   # Hierarchical virtual filesystem structure
β”‚   β”‚   β”œβ”€β”€ portfolioData.js    # Central profile, experience & project details
β”‚   β”‚   └── shortcutsData.js    # OS-specific shortcut configurations
β”‚   β”‚
β”‚   β”œβ”€β”€ context/
β”‚   β”‚   └── WindowContext.jsx   # Global state for windows, modes & overlays
β”‚   β”‚
β”‚   β”œβ”€β”€ hooks/                  # Custom React hooks
β”‚   β”‚   β”œβ”€β”€ useAIChat.js        # AI chat state, typing delay & action triggers
β”‚   β”‚   β”œβ”€β”€ useKeyboardShortcuts.js # Global shortcut key listeners
β”‚   β”‚   └── useOutsideClick.js  # Click-outside detection for popups & modals
β”‚   β”‚
β”‚   β”œβ”€β”€ App.jsx                 # Root component orchestrating OS modes
β”‚   β”œβ”€β”€ app.scss                # Global styles and resets
β”‚   └── main.jsx                # Application entry point
β”‚
β”œβ”€β”€ index.html                  # HTML entry point with SEO meta tags
β”œβ”€β”€ package.json                # Project dependencies and npm scripts
β”œβ”€β”€ vite.config.js              # Vite configuration
└── README.md                   # Project documentation

πŸš€ Installation & Setup

To run this project locally, make sure you have Node.js (version 18 or higher recommended) installed.

1. Clone the repository

git clone https://github.com/naitik-work/Mac-OS.git
cd Mac-OS

2. Install dependencies

npm install

3. Start the development server

npm run dev

The application will start locally at:

http://localhost:5173/

4. Build for production

npm run build

To preview the production build locally:

npm run preview

5. Lint code

npm run lint

⌨️ Keyboard Shortcuts

Shortcut macOS Action Windows Action
Cmd + Space / Win + S Spotlight Search Windows Search
Ctrl + K Universal Search Universal Search
Win + D / F11 Minimize All Windows Minimize All Windows
Cmd + W / Alt + F4 Close Active Window Close Active Window
Escape Close Open Modals / Menus Close Open Modals / Menus

πŸ‘€ Author

Naitik Chitransh


πŸ“„ License

This project is open-source and available under the MIT License.

About

A dual-mode web desktop portfolio (macOS Sonoma & Windows 11) built with React 19, Vite, GSAP, and modular SCSS. Features draggable/resizable windows, an interactive CLI terminal, virtual file explorer, in-app browser, markdown reader, and an embedded AI portfolio assistant.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages