A stunning frontend-only 3D portfolio showcasing expertise in Game Development, Full Stack Web Development, and AI.
- 🎮 Immersive 3D Experience - Floating geometric shapes with enhanced animations
- ⭐ Particle Systems - Dynamic starfield with 7000+ stars and 250+ particles
- 💼 Project Showcase - Detailed project pages with GitHub links
- 📱 Fully Responsive - Works seamlessly on all devices
- 🎨 Glass-morphism UI - Modern design with gradient effects
- 🚀 Single Page Application - Fast navigation with React Router
- 📧 Contact Integration - Email contact form (mailto)
- Node.js (v16 or higher)
- Yarn package manager
-
Install Dependencies
yarn install
-
Start Development Server
yarn start
-
Open Browser
- Navigate to: http://localhost:3000
- Enjoy your 3D portfolio!
yarn buildThe build folder will contain optimized production files ready for deployment.
Edit src/config.js:
export const portfolioConfig = {
name: "YOUR NAME",
title: "YOUR TITLE",
tagline: "Your tagline here...",
profilePicture: "/your-profile.jpg",
contact: {
email: "your.email@example.com",
github: "https://github.com/yourusername",
linkedin: "https://linkedin.com/in/yourusername",
twitter: "https://twitter.com/yourusername"
}
};- Add your image to
public/folder - Update the path in
src/config.js:profilePicture: "/your-profile-photo.jpg"
Edit src/projectsData.js:
export const projectsData = [
{
id: "unique-project-id",
title: "Your Project Title",
category: "Category",
shortDescription: "Brief description...",
fullDescription: "Detailed description...",
tech: ["React", "Node.js", "etc"],
features: [
"Feature 1",
"Feature 2"
],
github: "https://github.com/yourusername/project",
demo: "https://your-demo-url.com",
color: "cyber-cyan", // cyber-cyan, cyber-purple, or cyber-gold
year: "2024",
duration: "X months"
},
// Add more projects...
];Edit tailwind.config.js:
colors: {
'space-dark': '#0a0a1a', // Background
'space-blue': '#1a1a3e', // Secondary background
'cyber-cyan': '#00f0ff', // Primary accent
'cyber-purple': '#a855f7', // Secondary accent
'cyber-gold': '#fbbf24', // Tertiary accent
}Edit src/components/Enhanced3D.js and src/components/EnhancedScene3D.js:
- Adjust floating speeds
- Change colors
- Add/remove 3D shapes
- Modify particle counts
portfolio/
├── public/
│ ├── index.html
│ ├── profile-placeholder.svg
│ └── [your images]
├── src/
│ ├── components/
│ │ ├── Hero.js
│ │ ├── About.js
│ │ ├── Projects.js
│ │ ├── ProjectDetail.js
│ │ ├── Contact.js
│ │ ├── Enhanced3D.js
│ │ └── EnhancedScene3D.js
│ ├── config.js # ⭐ Edit your info here
│ ├── projectsData.js # ⭐ Edit your projects here
│ ├── App.js
│ ├── App.css
│ └── index.js
├── package.json
├── tailwind.config.js
└── README.md
- Home (#home) - Hero section with 3D background
- About (#about) - Profile, skills, and expertise
- Projects (#projects) - Project showcase grid
- Project Detail (/project/:id) - Individual project pages
- Contact (#contact) - Contact form and social links
- Install Vercel CLI:
npm i -g vercel - Run:
vercel - Follow prompts
- Run:
yarn build - Drag & drop
build/folder to Netlify - Done!
- Install gh-pages:
yarn add --dev gh-pages - Add to package.json:
"homepage": "https://yourusername.github.io/portfolio", "scripts": { "predeploy": "yarn build", "deploy": "gh-pages -d build" }
- Run:
yarn deploy
- Frontend: React 18
- 3D Graphics: Three.js, React Three Fiber, @react-three/drei
- Routing: React Router v6
- Animations: Framer Motion
- Styling: Tailwind CSS
- Icons: React Icons
The contact form uses mailto: protocol which opens the user's default email client.
For form backend integration, consider using:
- Formspree
- EmailJS
- SendGrid
- Your own backend API
- Replace placeholder images with your actual project screenshots
- Update GitHub links to your real repositories
- Customize colors to match your personal brand
- Add your actual work experience and skills
- Test on multiple devices for responsiveness
3D elements not loading:
- Check browser console for errors
- Ensure Three.js dependencies are installed:
yarn install
Build fails:
- Clear cache:
rm -rf node_modules && yarn install - Check Node.js version:
node --version(should be 16+)
Port already in use:
- Change port in package.json or use:
PORT=3001 yarn start
MIT License - Free to use for your personal portfolio!
Built by OMAR KHLIFI with React, Three.js, and passion for creative development.
Need help? Open an issue or reach out via social media links in the portfolio.
Happy coding! 🚀