This project is a personal portfolio website built using React, TypeScript, and Vite. It showcases various projects, skills, and experiences.
- React: A JavaScript library for building user interfaces.
- TypeScript: A typed superset of JavaScript that compiles to plain JavaScript.
- Vite: A build tool that provides a fast development environment.
- Tailwind CSS: A utility-first CSS framework for rapid UI development.
- Framer Motion: A library for animations and gestures in React.
- Three.js: A JavaScript 3D library for creating 3D graphics in the browser.
.env
.github/
workflows/
deploy.yml
.gitignore
.npmrc
eslint.config.js
index.html
notes.md
package.json
pnpm-lock.yaml
postcss.config.js
public/
desktop_pc/
license.txt
scene.gltf
textures/
planet/
license.txt
scene.gltf
textures/
README.md
src/
App.tsx
assets/
company/
index.ts
tech/
components/
...
constant/
...
hoc/
index.css
main.tsx
style.ts
types/
utils/
vite-env.d.ts
tailwind.config.js
tsconfig.app.json
tsconfig.json
tsconfig.node.json
vite.config.ts
-
Clone the repository:
git clone https://github.com/your-username/portfolio.git cd portfolio -
Install dependencies:
pnpm install
-
Create a
.envfile and add necessary environment variables.
To start the development server, run:
pnpm run devTo build the project for production, run:
pnpm run buildTo lint the code, run:
pnpm run lintTo preview the production build, run:
pnpm run previewThe project is configured to deploy to GitHub Pages using a GitHub Actions workflow. The deployment configuration can be found in .github/workflows/deploy.yml.
If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:
- Configure the top-level
parserOptionsproperty like this:
export default tseslint.config({
languageOptions: {
// other options...
parserOptions: {
project: ["./tsconfig.node.json", "./tsconfig.app.json"],
tsconfigRootDir: import.meta.dirname,
},
},
});- Replace
tseslint.configs.recommendedtotseslint.configs.recommendedTypeCheckedortseslint.configs.strictTypeChecked - Optionally add
...tseslint.configs.stylisticTypeChecked - Install eslint-plugin-react and update the config:
// eslint.config.js
import react from "eslint-plugin-react";
export default tseslint.config({
// Set the react version
settings: { react: { version: "18.3" } },
plugins: {
// Add the react plugin
react,
},
rules: {
// other rules...
// Enable its recommended rules
...react.configs.recommended.rules,
...react.configs["jsx-runtime"].rules,
},
});- Javascript Mastery:
https://github.com/adrianhajdin/project_3D_developer_portfolio - Gaming Desktop PC:
https://sketchfab.com/3d-models/gaming-desktop-pc-d1d8282c9916438091f11aeb28787b66 - Stylized planet:
https://sketchfab.com/3d-models/stylized-planet-789725db86f547fc9163b00f302c3e70 - Hao-Ping Logo:
https://logo.com - Email Receiving:
https://www.emailjs.com/
