Here is the folder structure of 3D Portfolio.
3d_portfolio/
|- public/
|-- favicon.ico
|- src/
|-- assets/
|--- onboarding/
|--- 3d/
|--- icons/
|--- images/
|--- sakura.mp3
|-- components/
|--- index.js
|-- constants/
|--- index.js
|-- hooks/
|--- useAlert.js
|-- models/
|--- index.js
|-- pages/
|--- index.js
|-- App.jsx
|-- index.css
|-- main.jsx
|- .env.local
|- .env.example
|- vite.config.js
|- package-lock.json
|- package.json
|- postcss.config.js
|- tailwind.config.js
|- .eslintrc.cjs
- Make sure Git and NodeJS is installed.
- Clone this repository to your local computer.
- Create
.env.local
file in root folder. - Contents of
.env.local
:
# .env.local file
VITE_APP_EMAILJS_SERVICE_ID=service_xxxxxxxxxxxxx
VITE_APP_EMAILJS_TEMPLATE_ID=template_xxxxxxxxxxxx
VITE_APP_EMAILJS_PUBLIC_KEY=XXXXXXXXXXXXXXXXXXXXX
VITE_APP_EMAILJS_TO_EMAIL=<your-email-here>
-
Open terminal in root directory. Run
npm install
oryarn install
. -
Create new account in EmailJS
-
From dashboard Choose Email Services > Add New Service and connect your mail to emailjs.
NOTE: Make Sure you type same email in VITE_APP_EMAILJS_TO_EMAIL
in .env.local
-
Once, New service is configured, copy your service id to
VITE_APP_EMAILJS_SERVICE_ID
-
Now, go to Email Templates > Create New Template to create your mail template. Once it is done, you can copy Template ID to
VITE_APP_EMAILJS_TEMPLATE_ID
-
To get your Public Key, click on your username on navbar and go to account settings > Copy Public Key to
VITE_APP_EMAILJS_PUBLIC_KEY
- Now app is fully configured π and you can start using this app using
npm run dev
oryarn run dev
. The app is created using vite.
- ThreeJS Documentation: https://threejs.org/docs/
- EmailJS Documentation: https://www.emailjs.com/docs/
- Vite Documentation: https://vitejs.dev/guide/
NOTE: Please make sure to keep your API keys and configuration values secure and do not expose them publicly.
You might encounter some bugs while using this app. You are more than welcome to contribute. Just submit changes via pull request and I will review them before merging. Make sure you follow community guidelines.
Useful resources and libraries that are used in My Portfolio
- React Three Drei
- React Three Fiber
- React Vertical Timeline Component
- React Router DOM
- Prettier
- ESLint
You can also give this repository a star to show more people and they can use this repository.