A feature-rich personal website showcasing professional experience, creative work, and personal interests. Built with React and Vite, featuring modern design and interactive functionality.
- Hero Section - Dynamic typewriter animation with particle background
- Introduction - About me with education timeline and DecryptedText animation
- Gallery - Photography portfolio with photo and video showcase
- Travel Map - Interactive global travel footprint with Leaflet integration
- Gaming Showcase - Personal game collection and current gaming status
- Technical Stack - Detailed skill showcase and project experience
- Responsive Design - Perfect adaptation for desktop and mobile devices
- Modern UI - Gradient backgrounds, glassmorphism effects, smooth animations
- Interactive Map - Using React Leaflet library
- Advanced Animations - Framer Motion, GSAP, and custom physics-based effects
- Modular Components - Reusable React components
- Hash Routing - GitHub Pages compatible navigation
- Frontend Framework: React 18
- Build Tool: Vite 5
- Router: React Router DOM (HashRouter)
- Maps: React Leaflet + Leaflet
- Animations:
- Framer Motion
- GSAP
- Matter.js (Physics engine)
- OGL (WebGL particle system)
- Icons: Lucide React
- Styling: CSS3 (gradients, glassmorphism, responsive design)
npm installnpm run devThe project will start at http://localhost:3000/p180/
npm run buildBuild output will be in the docs/ folder.
npm run previewsrc/
βββ components/ # React components
β βββ PillNav.jsx # Animated navigation bar
β βββ Hero.jsx # Hero section with particles
β βββ Introduction.jsx # Introduction with education
β βββ DecryptedText.jsx # Text decryption animation
β βββ Particles.jsx # WebGL particle background
β βββ Gallery.jsx # Photography portfolio
β βββ TravelMap.jsx # Interactive travel map
β βββ GamingShowcase.jsx # Gaming showcase
β βββ TechnicalStack.jsx # Technical skills
β βββ FallingText.jsx # Physics-based text animation
β βββ Footer.jsx # Footer component
βββ App.jsx # Main application component
βββ main.jsx # Entry point
βββ App.css # Application styles
βββ index.css # Global styles
- Dynamic typewriter animation
- WebGL particle background with mouse interaction
- Smooth scroll indicator
- DecryptedText animation on scroll
- Education timeline with transfer history
- Bilingual school names (English/Chinese)
- Responsive two-column layout
- Category filtering
- High-resolution image display
- Like and comment system
- Image detail modal
- Skill categorization
- Proficiency progress bars
- Project experience statistics
- Technical highlights
- Current game status
- Historical game collection
- Game ratings and reviews
- Gaming statistics
- Global travel footprint
- Click to view details
- Photo gallery display
- Travel statistics
Edit the data objects in each component to update your information:
Introduction.jsx- Update education and about me textGallery.jsx- Update photography worksTechnicalStack.jsx- Update technical skillsGamingShowcase.jsx- Update gaming informationTravelMap.jsx- Update travel locations
- Modify color variables in
src/index.css - Adjust gradient backgrounds
- Customize animation effects
- Chrome (Recommended)
- Firefox
- Safari
- Edge
This project is configured to deploy to GitHub Pages following CS571 course requirements.
-
Configure GitHub Pages
- Go to your repository Settings > Pages
- Source: "Deploy from a branch"
- Branch:
main - Folder:
/docs
-
Merge to Main Branch
# Switch to main branch
git checkout main
# Merge your changes
git merge claude/read-project-readme-011CUUMm7DB5cmqYhk9dZknX
# Install dependencies
npm install
# Build for production
npm run build
# Commit build files
git add docs/
git commit -m "Build for deployment"
# Push to GitHub
git push origin main- Access Your Site
Your website will be available at: https://cs571-f25.github.io/p180/
For future updates:
# Make your changes...
# Build
npm run build
# Commit and push
git add -A
git commit -m "Your update message"
git push origin mainImportant: Always run npm run build before pushing to main!
See DEPLOYMENT.md for detailed deployment instructions.
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production buildThe project uses Vite with the following configuration:
- Base path:
/p180/ - Output directory:
docs/ - Dev server port: 3000 (auto-increments if taken)
MIT License
Issues and Pull Requests are welcome to improve this project!
Note: This is a personal portfolio project. Please modify the content and styles according to your needs.