A modern, interactive portfolio website built as a web-based macOS desktop simulation. This project showcases my skills, projects, and experience through an intuitive desktop interface with resizable windows, a functional dock, and various applications.
- macOS-inspired Design: Clean, minimalist interface mimicking macOS desktop environment
- Responsive Layout: Adapts to different screen sizes while maintaining the desktop aesthetic
- Smooth Animations: CSS transitions and animations for window interactions
- Top Navigation Bar: Displays current date and time with a clean, macOS-style menu bar
- Interactive Dock: Bottom dock with app icons that bounce on hover and launch applications
- Window Management: Click dock icons to open/close corresponding windows
All windows are resizable, draggable, and can be minimized/maximized using the window controls.
- Interactive Terminal: Built with
react-console-emulator - Custom Commands:
about: Display personal informationprojects: List featured projectsskills: Show technical skillshelp: Display available commands
- Realistic Terminal Experience: Typing animation and command history
- Project Showcase: Displays featured projects with images, descriptions, and tech stacks
- Interactive Cards: Hover effects and links to repositories and live demos
- Dynamic Data: Projects loaded from JSON data for easy updates
- Simple Notepad: Basic text editor for quick notes
- Persistent Storage: Notes saved in local storage (future enhancement)
- Clean Interface: Minimalist design for distraction-free writing
- Professional Resume Display: Clean layout showcasing experience, education, and skills
- Printable Format: Optimized for printing and PDF export
- Responsive Design: Adapts to different window sizes
- Music Player Interface: Simulated Spotify player with album art and controls
- Play/Pause Controls: Interactive playback buttons
- Track Information: Display current song, artist, and album details
- Window System: Resizable and draggable windows using
react-rnd - State Management: React hooks for managing window states and interactions
- Performance Optimized: Lazy loading and efficient rendering
- Accessibility: Keyboard navigation and screen reader support
- React 19: Latest React with modern hooks and concurrent features
- Vite: Fast build tool and development server
- Sass/SCSS: Advanced CSS preprocessing for maintainable styles
- CSS Modules: Scoped styling for component isolation
- react-rnd: Resizable and draggable components for windows
- react-console-emulator: Terminal emulator for CLI functionality
- react-markdown: Markdown rendering (used in various components)
- react-syntax-highlighter: Code syntax highlighting
- ESLint: Code linting and formatting
- Vite Plugins: React plugin for optimized builds
-
Clone the repository:
git clone https://github.com/yourusername/portfolio.git cd portfolio -
Install dependencies:
npm install
-
Start development server:
npm run dev
-
Open in browser: Navigate to
http://localhost:5173(or the port shown in terminal)
- Use
npm run devfor development with hot reload - Use
npm run buildto create a production build - Use
npm run previewto preview the production build locally
- Open Applications: Click icons in the dock to launch windows
- Move Windows: Drag window title bars to reposition
- Resize Windows: Drag window edges/corners to resize
- Close Windows: Click the 'Γ' button or use dock icons
- Use CLI: Type commands like
about,projects,skillsin the terminal window
- Update Projects: Edit
src/assets/github.jsonto add/remove projects - Modify CLI Commands: Update commands in
src/components/Windows/Cli.jsx - Change Styling: Modify SCSS files in component directories
- Add New Apps: Create new components in
src/components/Windows/and integrate into App.jsx
portfolio/
βββ public/
β βββ doc-icons/ # Document icons
β βββ navbar-icons/ # Navigation bar icons
β βββ note.txt # Sample note content
βββ src/
β βββ assets/
β β βββ github.json # Projects data
β βββ components/
β β βββ DateTime.jsx # Date/time display
β β βββ Dock.jsx # Bottom application dock
β β βββ Nav.jsx # Top navigation bar
β β βββ Windows/ # Application windows
β β βββ Cli.jsx # Terminal emulator
β β βββ Github.jsx # Projects showcase
β β βββ MacWindow.jsx # Base window component
β β βββ Note.jsx # Notepad application
β β βββ Resume.jsx # Resume viewer
β β βββ Spotify.jsx # Music player
β βββ App.jsx # Main application component
β βββ main.jsx # Application entry point
β βββ app.scss # Global styles
βββ package.json
βββ vite.config.js
βββ eslint.config.js
βββ README.md
Main component managing window states and rendering the desktop interface.
Base window component providing drag, resize, and close functionality.
Interactive dock component handling app launches and window state management.
Each application (CLI, GitHub, etc.) extends MacWindow with specific functionality.
npm run dev: Start development servernpm run build: Build for productionnpm run lint: Run ESLint for code qualitynpm run preview: Preview production build
- ESLint configuration ensures consistent code style
- Prettier formatting for readable code
- TypeScript types for better development experience
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by macOS desktop interface
- Built with modern React and Vite
- Icons and assets from various free sources
- Special thanks to the open-source community
Feel free to reach out for collaborations or questions!
- Email: dev.subhambhuin@gmail.com
- LinkedIn: Your LinkedIn
- GitHub: Your GitHub
Built with β€οΈ using React and Vite