A modern, interactive portfolio website showcasing software engineering projects, skills, and professional journey. Built with React and featuring smooth animations, particle effects, and a clean, responsive design.
- Overview
- Features
- Tech Stack
- Getting Started
- Project Structure
- Development
- Deployment
- License
- Author
A dynamic portfolio website built with modern web technologies to showcase professional software engineering work. Features interactive animations, responsive design, and seamless navigation for an engaging user experience.
Key Capabilities:
- π¨ Interactive UI: Particle effects and smooth animations create an engaging experience
- π± Fully Responsive: Mobile-first design optimized for all screen sizes
- πΌοΈ Project Showcase: Comprehensive gallery with detailed project modals
- π GitHub Integration: Live contribution calendar and stats display
- π Resume Viewer: Built-in PDF viewer with download capability
- π Course Reviews: Detailed university course reviews with ratings and workload estimates
- β‘ Fast Performance: Optimized with Vite for lightning-fast load times
- Home Section: Animated header with particle background and typewriter effect
- Projects Gallery: Comprehensive showcase of personal, course, and game development projects with modals
- Course Reviews: Detailed reviews of university courses with ratings and workload estimates
- Resume Page: PDF resume viewer with download capability
- Dynamic Navigation: Responsive navbar with smooth scrolling and hash-based routing
- Timeline Component: Visual representation of education and professional experience
- Contact Form: Interactive form for project inquiries and collaboration
- GitHub Calendar: Real-time contribution activity visualization
- Particle Effects: Interactive tsParticles background animations
- Skills Display: Categorized tech stack including languages, frameworks, databases, and tools
- 3D Tilt Effects: Interactive hover animations on project cards
- Error Boundaries: Graceful error handling throughout the application
- React 18 - UI library
- Vite - Blazing fast build tool
- React Router DOM 6 - Client-side routing
- Bootstrap 5 - CSS framework for responsive design
- React Bootstrap - Bootstrap components as React
- Framer Motion - Smooth animations
- Lucide React & React Icons - Beautiful icon libraries
- react-tsparticles - Particle animation effects
- typewriter-effect - Animated typing effect
- react-parallax-tilt - 3D tilt hover effects
- react-pdf - PDF document viewer
- react-modal - Accessible modal dialogs
- react-github-calendar - GitHub contribution visualization
- react-vertical-timeline-component - Timeline UI
- react-router-hash-link - Smooth scrolling navigation
- react-tooltip - Customizable tooltips
- react-error-boundary - Error handling
- ESLint - Code linting with React-specific rules
- Prettier - Code formatting
- Husky - Git hooks for pre-commit actions
- lint-staged - Run linters on staged files
- gh-pages - GitHub Pages deployment
- Node.js (v20.0+ recommended)
- npm
-
Clone the repository
git clone https://github.com/arunike/Portfolio-React.git
-
Navigate to project directory
cd Portfolio-React -
Install Dependencies
npm install
-
Start the Development Server
npm run dev
-
Open Your Browser Navigate to
http://localhost:5173
npm run dev- Start the Vite development servernpm run build- Build for productionnpm run preview- Preview the production build locallynpm run lint- Run ESLint to check code qualitynpm run lint:fix- Automatically fix ESLint issuesnpm run prettier- Format all files with Prettiernpm run deploy- Deploy to GitHub Pages
src/
βββ App.jsx # Main application component with routing
βββ index.jsx # Application entry point
βββ components/ # Reusable UI components
β βββ Navbar.jsx # Navigation bar
β βββ Footer.jsx # Footer with social links
β βββ Particle.jsx # Particle background effect
β βββ Pre.jsx # Preloader component
β βββ ScrollToTop.jsx # Scroll to top on route change
β βββ IndexHTML.jsx # HTML content viewer
β βββ IndexFolderHTML.jsx # Folder-based HTML viewer
βββ pages/ # Page components
β βββ home/ # Home page
β β βββ HomePage.jsx # Main home layout
β β βββ components/ # Home sections
β β βββ Header.jsx # Hero section
β β βββ PDFViewer.jsx # Resume viewer
β β βββ Type.jsx # Typewriter animation
β β βββ sections/ # Main content sections
β β β βββ AboutMe.jsx
β β β βββ Contact.jsx
β β β βββ Projects.jsx
β β β βββ Skills.jsx
β β β βββ Timeline.jsx
β β βββ github/
β β β βββ Github.jsx # GitHub stats
β β βββ skills/ # Skill category components
β βββ projects/ # Projects page
β β βββ Projects.jsx # Projects gallery
β β βββ ProjectCards.jsx
β β βββ Modal.jsx # Project detail modal
β βββ course_takens/ # Courses page
β β βββ Course_Taken.jsx
β βββ resume/ # Resume page
β βββ Resume.jsx
βββ css/ # Stylesheets
β βββ components/ # Component-specific styles
β βββ pages/ # Page-specific styles
βββ assets/ # Static assets (images, videos, PDFs)
βββ imgs/ # Images organized by category
βββ video/ # Video demonstrations
βββ resume/ # Resume PDFs
βββ diploma/ # Certificates
This project maintains high code quality through:
- ESLint: React-specific linting rules, JSX accessibility checks, and React Hooks rules
- Prettier: Automatic code formatting for consistent style
- Husky Git Hooks: Pre-commit hooks for linting and formatting
- lint-staged: Runs linters only on staged files
- Component Organization: Organized by feature and page
- CSS Structure: Separate files for components and pages
- Asset Management: Images and videos organized by category
- Naming Conventions: PascalCase for components, camelCase for functions
- Import Order: External dependencies β Internal components β Styles β Assets
npm run deployThis command builds the production bundle and deploys to the gh-pages branch, making the site available at your GitHub Pages URL.
npm run buildThe optimized production build will be in the dist/ directory with minified JavaScript/CSS, optimized assets, and source maps.
This project is licensed under the MIT License - see the LICENSE file for details.
Richie Zhou
- GitHub: @arunike
- LinkedIn: richiezhou
- Portfolio: arunike.github.io