Here is my second attempt at a portfolio website, which uses React, Vite, TailwindCSS, ThreeJS, Framer Motion, React Three Fiber, & EmailJS.
- Sample Images
- Features
- Project Structure
- Steps to Run the Code/Website
- Learn More
- Acknowledgement and Thank You
![HomePage 1](https://private-user-images.githubusercontent.com/149105845/362260902-fe8b06f6-f650-418f-93cf-e1ebccc91b27.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NDAwMjcyNzcsIm5iZiI6MTc0MDAyNjk3NywicGF0aCI6Ii8xNDkxMDU4NDUvMzYyMjYwOTAyLWZlOGIwNmY2LWY2NTAtNDE4Zi05M2NmLWUxZWJjY2M5MWIyNy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjIwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIyMFQwNDQ5MzdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hNDhjYzk3MTM4MzQ2MDAxYTRlYTEzZGEzNjc2NGQyNzRjM2NmNmZiODNhMzI3MWM1ZGM2ZDY1NTZjMThmNzI3JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.l4BMxijuqxDfWgA_qQwSTT7uI9fx8YawMjRQk_NNnI4)
![About Page](https://private-user-images.githubusercontent.com/149105845/362261944-28feff48-73f7-4d3b-990e-9ac5fa174276.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NDAwMjcyNzcsIm5iZiI6MTc0MDAyNjk3NywicGF0aCI6Ii8xNDkxMDU4NDUvMzYyMjYxOTQ0LTI4ZmVmZjQ4LTczZjctNGQzYi05OTBlLTlhYzVmYTE3NDI3Ni5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjIwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIyMFQwNDQ5MzdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1iNDU1NDBhYmYzM2FkMDAwNDQ1YTJhNGM4YWU0NzY2NDFlNzcwYmQ2YTQyNDdmMzNmYzMwOTFiNWQ4MjFmYTVhJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.XA9KKyGDfTnAhI0AsRbA7o2hbItixiTNATUjHI-6s48)
![Experience Page](https://private-user-images.githubusercontent.com/149105845/362262655-0e0bb9be-ed4a-4f75-908b-c7669788af3e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NDAwMjcyNzcsIm5iZiI6MTc0MDAyNjk3NywicGF0aCI6Ii8xNDkxMDU4NDUvMzYyMjYyNjU1LTBlMGJiOWJlLWVkNGEtNGY3NS05MDhiLWM3NjY5Nzg4YWYzZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjIwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIyMFQwNDQ5MzdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1kODJmY2YwNTgxNmFhZGRmNjRjODRhNmIxMzRmNjRlYzJiNmRlZDNiMDdlYTNjM2I4NWY5Y2M2OTVhYzZkNjk3JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.EVyKxXPoXCrKyy07FcUc37I6P3tvR-sqqBSwlFLc2bI)
![Skills Page](https://private-user-images.githubusercontent.com/149105845/362263519-77cae1d9-3e2c-48c2-9698-7b274eb0fa68.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NDAwMjcyNzcsIm5iZiI6MTc0MDAyNjk3NywicGF0aCI6Ii8xNDkxMDU4NDUvMzYyMjYzNTE5LTc3Y2FlMWQ5LTNlMmMtNDhjMi05Njk4LTdiMjc0ZWIwZmE2OC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjIwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIyMFQwNDQ5MzdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT00MjIwZTBhNGY1N2UyN2Y3MGUxZGY1ZmZmYzA0ZjZhMjhhOGRkZDNlN2VmMjA3NTlkZDZmNjE0ODFmZDdiMzY4JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.47wsbBGn2-LpePtylT6UEFypFDQ2_3-nsWg32Q8K3hE)
![Projects Page](https://private-user-images.githubusercontent.com/149105845/362264725-3d7be3b9-71ca-4fe0-b043-7178db3164da.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NDAwMjcyNzcsIm5iZiI6MTc0MDAyNjk3NywicGF0aCI6Ii8xNDkxMDU4NDUvMzYyMjY0NzI1LTNkN2JlM2I5LTcxY2EtNGZlMC1iMDQzLTcxNzhkYjMxNjRkYS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjIwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIyMFQwNDQ5MzdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0wNzM1ZjUxMTM5NGU5ZWJiODFmZmVhZTQ0Yjk3NzkyOTc2MDk3MDdiN2NlZmIxODI3NjRlMDM4ZWQ2MGJlYTIzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.yQEyxlj9PrJsYlcBKGAVrIsCgM8lT9_JSQIKDaFfE5k)
![Certifications Page](https://private-user-images.githubusercontent.com/149105845/362264874-871bde17-7eb4-4528-a64a-28db4bc9beab.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NDAwMjcyNzcsIm5iZiI6MTc0MDAyNjk3NywicGF0aCI6Ii8xNDkxMDU4NDUvMzYyMjY0ODc0LTg3MWJkZTE3LTdlYjQtNDUyOC1hNjRhLTI4ZGI0YmM5YmVhYi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjIwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIyMFQwNDQ5MzdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0wYWFmYWFjNjJhOThiYjlhYzQ5ODA1OTMzNTk2MTVhZTk3NzBjZDJlMmRlNDFlMjJiZTYyMjljYjIwNmY1Mzc3JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.NC_Qu5JCL6XqLsHWzbjeTa2iqqaCk7SOUOITZHlqQsI)
![Contact Page](https://private-user-images.githubusercontent.com/149105845/362265029-bab1ece8-cc34-420c-8a88-10442350616c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NDAwMjcyNzcsIm5iZiI6MTc0MDAyNjk3NywicGF0aCI6Ii8xNDkxMDU4NDUvMzYyMjY1MDI5LWJhYjFlY2U4LWNjMzQtNDIwYy04YTg4LTEwNDQyMzUwNjE2Yy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjIwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIyMFQwNDQ5MzdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT01ZWJjYmViMWU5OTkxNzE1YTNlZWM0MzM4ZDdiZGRhMzg4YzFmZDQxNGE1ZmE3YWQzZDIzZjg0ZmZiNjg1NDZhJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.NvIBt3ERdCaHFvgx6dFS6IH4tveQO8Ig1-ApuUXfcTg)
-
3D Hero Section:3D desktop model (CURRENTLY REMOVED).
-
Experience and Work Sections: Animations powered by Framer Motion.
-
Skills Section: Shows skills Using 3D geometries with Three.js and React Three Fiber.
-
Projects and Certifications: Animated sections for projects and certifications using Framer Motion.
-
Contact Section: Includes a earth model with email functionality using EmailJS.
-
Stars Background: Generates moving stars at random positions using Three.js.
-
Scroll Animations: Scrolling animations implemented using Framer Motion.
The project is organized as follows:
-
src/assets: Contains static assets like images and icons.
-
src/components: Reusable UI components, including interactive and animated elements.
- canvas: Contains 3D models and Three.js components.
Ball.jsx
,Computers.jsx
,Earth.jsx
,Stars.jsx
: 3D elements used across various sections.index.js
: Main entry point for canvas-related components.
- About.jsx, Contact.jsx, Experience.jsx, Feedbacks.jsx, Hero.jsx, Loader.jsx, Navbar.jsx, Tech.jsx, Works.jsx: Core UI components for each section of the website.
- index.js: Central entry point for importing components.
- canvas: Contains 3D models and Three.js components.
-
src/constants: Contains the data and information.
index.js
: Main entry point for all data.
-
src/hoc: Higher Order Components for wrapping and enhancing existing components.
index.js
,SectionWrapper.jsx
: HOC components to structure and manage sections.
-
src/utils: Utility functions and helpers used throughout the project.
App.jsx
,index.css
,main.jsx
,styles.js
: Utility files managing application logic and styling.
-
src/App.jsx: Main application file.
-
src/index.jsx: application file.
Follow these steps to set up the project locally on your machine.
Prerequisites
Make sure you have the following installed on your machine:
Cloning the Repository
git clone project.git
cd project
Installation
Install the project dependencies using npm:
npm install
Set Up Environment Variables
Create a new file named .env
in the root of your project and add the following content:
REACT_APP_EMAILJS_USERID=your_emailjs_user_id
REACT_APP_EMAILJS_TEMPLATEID=your_emailjs_template_id
REACT_APP_EMAILJS_RECEIVERID=your_emailjs_receiver_id
Replace the placeholder values with your actual EmailJS credentials. You can obtain these credentials by signing up on the EmailJS website.
Running the Project
npm run dev
Open http://localhost:5173 in your browser to view the project.
For further reading and advanced topics:
- Create React App Documentation - Comprehensive guide on using Create React App.
- React Documentation - Official React documentation for learning more about React and its ecosystem.