754 Commits

Author SHA1 Message Date
dependabot[bot]
72cb82dad4 Bump vite-plugin-pwa from 0.18.1 to 0.18.2
Bumps [vite-plugin-pwa](https://github.com/vite-pwa/vite-plugin-pwa) from 0.18.1 to 0.18.2.
- [Release notes](https://github.com/vite-pwa/vite-plugin-pwa/releases)
- [Commits](https://github.com/vite-pwa/vite-plugin-pwa/compare/v0.18.1...v0.18.2)

---
updated-dependencies:
- dependency-name: vite-plugin-pwa
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-16 11:32:22 +00:00
Ariful Alam
d73902c9ad Merge pull request #504 from arifszn/dockerize
Dockerize the application
2024-02-16 17:31:33 +06:00
Ariful Alam
0ec8198cb6 Dockerize the application 2024-02-16 17:29:36 +06:00
Ariful Alam
4a5e9a8928 Merge pull request #495 from arifszn/dependabot/npm_and_yarn/vite-plugin-pwa-0.18.1
Bump vite-plugin-pwa from 0.17.4 to 0.18.1
2024-02-16 16:34:58 +06:00
Ariful Alam
30efe53c2f Merge pull request #501 from arifszn/update-versions-github-actions
Update the versions of Github Actions
2024-02-16 16:20:56 +06:00
Ariful Alam
16a9ab0296 Update the versions of Github Actions 2024-02-16 16:18:28 +06:00
Ariful Alam
911af25776 Merge pull request #500 from arifszn/update-node-version-github-actions
Update node version from 16 to 20 in `actions/setup-node`
2024-02-16 16:08:22 +06:00
Ariful Alam
71cfb3bc3d Update node version from 16 to 20 in actions/setup-node 2024-02-16 16:06:30 +06:00
Ariful Alam
c25f3e716a Merge pull request #494 from arifszn/dependabot/npm_and_yarn/types/react-18.2.55
Bump @types/react from 18.2.48 to 18.2.55
2024-02-13 19:05:54 +06:00
dependabot[bot]
69f6e0f908 Bump vite-plugin-pwa from 0.17.4 to 0.18.1
Bumps [vite-plugin-pwa](https://github.com/vite-pwa/vite-plugin-pwa) from 0.17.4 to 0.18.1.
- [Release notes](https://github.com/vite-pwa/vite-plugin-pwa/releases)
- [Commits](https://github.com/vite-pwa/vite-plugin-pwa/compare/v0.17.4...v0.18.1)

---
updated-dependencies:
- dependency-name: vite-plugin-pwa
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-12 08:39:47 +00:00
dependabot[bot]
b0248e1080 Bump @types/react from 18.2.48 to 18.2.55
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.2.48 to 18.2.55.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-12 08:39:25 +00:00
Ariful Alam
d2d606650c Merge pull request #488 from arifszn/dependabot/npm_and_yarn/date-fns-3.3.1
Bump date-fns from 3.3.0 to 3.3.1
2024-02-02 19:17:34 +06:00
Ariful Alam
3b7b0cd1a8 Merge pull request #489 from arifszn/dependabot/npm_and_yarn/axios-1.6.7
Bump axios from 1.6.5 to 1.6.7
2024-02-02 19:17:24 +06:00
dependabot[bot]
947abd1b8e Bump axios from 1.6.5 to 1.6.7
Bumps [axios](https://github.com/axios/axios) from 1.6.5 to 1.6.7.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.6.5...v1.6.7)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-29 08:34:21 +00:00
dependabot[bot]
1d2c043008 Bump date-fns from 3.3.0 to 3.3.1
Bumps [date-fns](https://github.com/date-fns/date-fns) from 3.3.0 to 3.3.1.
- [Release notes](https://github.com/date-fns/date-fns/releases)
- [Changelog](https://github.com/date-fns/date-fns/blob/main/CHANGELOG.md)
- [Commits](https://github.com/date-fns/date-fns/compare/v3.3.0...v3.3.1)

---
updated-dependencies:
- dependency-name: date-fns
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-29 08:33:59 +00:00
Ariful Alam
f6a3c8457d Merge pull request #483 from putuwahyu29/main
Remove semicolon (;) in website build
2024-01-29 07:39:10 +06:00
I Putu Agus Wahyu Dupayana
521f9deb55 Remove semicolon (;) in website build 2024-01-29 07:33:43 +08:00
Ariful Alam
d87be16c26 Merge pull request #479 from arifszn/dependabot/npm_and_yarn/vite-5.0.12
Bump vite from 5.0.11 to 5.0.12
2024-01-20 20:18:58 +06:00
Ariful Alam
eed84cf977 Merge pull request #480 from arifszn/dependabot/npm_and_yarn/date-fns-3.3.0
Bump date-fns from 3.2.0 to 3.3.0
2024-01-20 20:18:47 +06:00
dependabot[bot]
7904a16bd2 Bump date-fns from 3.2.0 to 3.3.0
Bumps [date-fns](https://github.com/date-fns/date-fns) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/date-fns/date-fns/releases)
- [Changelog](https://github.com/date-fns/date-fns/blob/main/CHANGELOG.md)
- [Commits](https://github.com/date-fns/date-fns/compare/v3.2.0...v3.3.0)

---
updated-dependencies:
- dependency-name: date-fns
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-20 14:17:31 +00:00
dependabot[bot]
1286062a2b Bump vite from 5.0.11 to 5.0.12
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.0.11 to 5.0.12.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.0.12/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.0.12/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-20 14:17:03 +00:00
Ariful Alam
f6750b939b Merge pull request #478 from arifszn/migrate-to-typescript
Migrate to TypeScript
2024-01-20 20:06:26 +06:00
Ariful Alam
cac7ee3a16 Update docs 2024-01-20 19:55:48 +06:00
Ariful Alam
c7db8ee0b8 Add 3 new themes and change default theme 2024-01-20 18:48:02 +06:00
Ariful Alam
034dbe0d2c Decide if the card should be displayed at higher level 2024-01-20 18:34:32 +06:00
Ariful Alam
c5318da457 Remove App component 2024-01-20 18:28:08 +06:00
Ariful Alam
aa4c6928d6 Migrate to TypeScript 2024-01-20 18:24:26 +06:00
Ariful Alam
fdf75dabeb Merge pull request #473 from arifszn/dependabot/npm_and_yarn/eslint-8.56.0
Bump eslint from 8.45.0 to 8.56.0
2024-01-08 13:59:37 +06:00
Ariful Alam
34130dd2a1 Merge pull request #465 from arifszn/dependabot/npm_and_yarn/react-icons-4.12.0
Bump react-icons from 4.10.1 to 4.12.0
2023-12-19 20:31:35 +06:00
dependabot[bot]
d2489d1c6f Bump eslint from 8.45.0 to 8.56.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.45.0 to 8.56.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.45.0...v8.56.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-18 08:53:40 +00:00
dependabot[bot]
93a55a4c32 Bump react-icons from 4.10.1 to 4.12.0
Bumps [react-icons](https://github.com/react-icons/react-icons) from 4.10.1 to 4.12.0.
- [Release notes](https://github.com/react-icons/react-icons/releases)
- [Commits](https://github.com/react-icons/react-icons/compare/v4.10.1...v4.12.0)

---
updated-dependencies:
- dependency-name: react-icons
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-20 08:23:17 +00:00
Ariful Alam
ac61808161 Merge pull request #451 from arifszn/dependabot/npm_and_yarn/daisyui-3.6.4
Bump daisyui from 3.2.1 to 3.6.4
2023-09-11 08:56:29 +06:00
dependabot[bot]
f707b702c2 Bump daisyui from 3.2.1 to 3.6.4
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 3.2.1 to 3.6.4.
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/compare/v3.2.1...v3.6.4)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-04 08:20:28 +00:00
Ariful Alam
cdd8362156 Merge pull request #427 from arifszn/dependabot/npm_and_yarn/postcss-8.4.27
Bump postcss from 8.4.26 to 8.4.27
2023-07-26 21:27:35 +06:00
dependabot[bot]
d3c3881782 Bump postcss from 8.4.26 to 8.4.27
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.26 to 8.4.27.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.26...8.4.27)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-24 15:22:54 +00:00
Ariful Alam
f47963ad43 Merge pull request #428 from arifszn/dependabot/npm_and_yarn/eslint-plugin-react-7.33.0
Bump eslint-plugin-react from 7.32.2 to 7.33.0
2023-07-24 21:21:54 +06:00
Ariful Alam
e3200cd3b7 Merge pull request #429 from arifszn/dependabot/npm_and_yarn/tailwindcss-3.3.3
Bump tailwindcss from 3.3.2 to 3.3.3
2023-07-24 21:21:46 +06:00
Ariful Alam
0838994060 Merge pull request #430 from arifszn/dependabot/npm_and_yarn/eslint-8.45.0
Bump eslint from 8.44.0 to 8.45.0
2023-07-24 21:21:37 +06:00
dependabot[bot]
f71f205054 Bump eslint from 8.44.0 to 8.45.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.44.0 to 8.45.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.44.0...v8.45.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-24 08:51:42 +00:00
dependabot[bot]
3dd80aeb26 Bump tailwindcss from 3.3.2 to 3.3.3
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.3.2 to 3.3.3.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/v3.3.3/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.3.2...v3.3.3)

---
updated-dependencies:
- dependency-name: tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-24 08:51:29 +00:00
dependabot[bot]
6750afe52f Bump eslint-plugin-react from 7.32.2 to 7.33.0
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.32.2 to 7.33.0.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.32.2...v7.33.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-24 08:51:17 +00:00
Ariful Alam
3dae9bb7ec Merge pull request #420 from arifszn/dependabot/npm_and_yarn/vitejs/plugin-react-4.0.3
Bump @vitejs/plugin-react from 4.0.1 to 4.0.3
2023-07-23 09:37:44 +06:00
Ariful Alam
1608c0ff7b Merge pull request #422 from arifszn/dependabot/npm_and_yarn/arifszn/blog-js-2.0.5
Bump @arifszn/blog-js from 2.0.4 to 2.0.5
2023-07-18 10:27:44 +06:00
Ariful Alam
838ae6a5b9 Merge pull request #424 from arifszn/dependabot/npm_and_yarn/daisyui-3.2.1
Bump daisyui from 3.1.7 to 3.2.1
2023-07-18 10:27:32 +06:00
Ariful Alam
90b94304d7 Merge pull request #426 from arifszn/dependabot/npm_and_yarn/vite-4.4.4
Bump vite from 4.3.9 to 4.4.4
2023-07-18 10:27:19 +06:00
dependabot[bot]
12a367c25f Bump vite from 4.3.9 to 4.4.4
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.3.9 to 4.4.4.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v4.4.4/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-17 08:16:54 +00:00
dependabot[bot]
a4f63fbc98 Bump daisyui from 3.1.7 to 3.2.1
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 3.1.7 to 3.2.1.
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/compare/v3.1.7...v3.2.1)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-10 08:57:47 +00:00
dependabot[bot]
9813f0853f Bump @arifszn/blog-js from 2.0.4 to 2.0.5
Bumps [@arifszn/blog-js](https://github.com/arifszn/blog.js) from 2.0.4 to 2.0.5.
- [Release notes](https://github.com/arifszn/blog.js/releases)
- [Commits](https://github.com/arifszn/blog.js/compare/v2.0.4...v2.0.5)

---
updated-dependencies:
- dependency-name: "@arifszn/blog-js"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-10 08:57:24 +00:00
dependabot[bot]
8d7fc38f45 Bump @vitejs/plugin-react from 4.0.1 to 4.0.3
Bumps [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) from 4.0.1 to 4.0.3.
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/v4.0.3/packages/plugin-react)

---
updated-dependencies:
- dependency-name: "@vitejs/plugin-react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-10 08:57:08 +00:00
Ariful Alam
731301d857 Merge pull request #413 from arifszn/dependabot/npm_and_yarn/eslint-8.44.0
Bump eslint from 8.43.0 to 8.44.0
2023-07-08 13:32:44 +06:00
Ariful Alam
4ebf2b9742 Merge pull request #418 from arifszn/arifszn-patch-1
Add last commit badge
2023-07-03 16:04:03 +06:00
Ariful Alam
cb0ff53588 Add last commit badge 2023-07-03 16:02:26 +06:00
Ariful Alam
d14c8fb1a7 Merge pull request #417 from arifszn/2.6.0
Bump version to 2.6.0 🚀
2023-07-03 15:43:23 +06:00
Ariful Alam
3cbba324b1 Bump version to 2.6.0 🚀 2023-07-03 15:41:53 +06:00
Ariful Alam
7e714b6a8d Merge pull request #416 from arifszn/social-youtube
Add YouTube as social link
2023-07-03 15:40:31 +06:00
Ariful Alam
f482c2e7b6 Add YouTube as social link 2023-07-03 15:38:04 +06:00
Ariful Alam
205a547439 Merge pull request #414 from arifszn/dependabot/npm_and_yarn/daisyui-3.1.7
Bump daisyui from 3.1.6 to 3.1.7
2023-07-03 11:57:59 +06:00
Ariful Alam
ae5345b33b Merge pull request #415 from arifszn/arifszn-patch-1
Update README.md
2023-07-03 11:56:57 +06:00
dependabot[bot]
d5317bf0c7 Bump daisyui from 3.1.6 to 3.1.7
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 3.1.6 to 3.1.7.
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/compare/v3.1.6...v3.1.7)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-03 05:56:35 +00:00
dependabot[bot]
31bf2f27d2 Bump eslint from 8.43.0 to 8.44.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.43.0 to 8.44.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.43.0...v8.44.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-03 05:56:28 +00:00
Ariful Alam
30f8d05014 Update README.md 2023-07-03 11:52:50 +06:00
Ariful Alam
365f3f25ea Merge pull request #412 from arifszn/arifszn-patch-1
Update deployment guide
2023-07-03 11:50:45 +06:00
Ariful Alam
9abe133b1c Update README.md 2023-07-03 11:50:16 +06:00
Ariful Alam
ac8e6941ab Merge pull request #411 from arifszn/fix/409
Set undefined navigateFallback so that it can redirect to 404
2023-06-28 17:24:44 +06:00
Ariful Alam
b4bb68ae06 Set undefined navigateFallback so that it can redirect to 404 2023-06-28 17:22:56 +06:00
Ariful Alam
1bd77a785f Merge pull request #410 from arifszn/deps
Update dependencies
2023-06-28 17:08:24 +06:00
Ariful Alam
9ae2d382ad Update dependencies 2023-06-28 17:00:11 +06:00
Ariful Alam
06a428a96f Merge pull request #407 from arifszn/dependabot/npm_and_yarn/vitejs/plugin-react-4.0.1
Bump @vitejs/plugin-react from 4.0.0 to 4.0.1
2023-06-26 20:06:38 +06:00
Ariful Alam
8c2224047e Merge pull request #406 from arifszn/dependabot/npm_and_yarn/daisyui-3.1.6
Bump daisyui from 3.1.1 to 3.1.6
2023-06-26 13:48:45 +06:00
dependabot[bot]
d0f67b6c29 Bump @vitejs/plugin-react from 4.0.0 to 4.0.1
Bumps [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@4.0.1/packages/plugin-react)

---
updated-dependencies:
- dependency-name: "@vitejs/plugin-react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-26 05:01:42 +00:00
dependabot[bot]
788640358f Bump daisyui from 3.1.1 to 3.1.6
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 3.1.1 to 3.1.6.
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/compare/v3.1.1...v3.1.6)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-26 05:01:23 +00:00
Ariful Alam
7ceb0a12e9 Merge pull request #404 from arifszn/dependabot/npm_and_yarn/eslint-8.43.0
Bump eslint from 8.42.0 to 8.43.0
2023-06-21 20:35:09 +06:00
Ariful Alam
e58fb509b0 Merge pull request #405 from arifszn/dependabot/npm_and_yarn/daisyui-3.1.1
Bump daisyui from 3.1.0 to 3.1.1
2023-06-21 20:34:50 +06:00
dependabot[bot]
3dc1b74042 Bump daisyui from 3.1.0 to 3.1.1
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 3.1.0 to 3.1.1.
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/compare/v3.1.0...v3.1.1)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-19 08:59:12 +00:00
dependabot[bot]
92115ca1b6 Bump eslint from 8.42.0 to 8.43.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.42.0 to 8.43.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.42.0...v8.43.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-19 08:59:02 +00:00
Ariful Alam
a873ab7a8f Merge pull request #403 from arifszn/readme-image
Fix broken images
2023-06-18 18:24:15 +06:00
Ariful Alam
8b798f8dea Fix broken images 2023-06-18 18:18:44 +06:00
Ariful Alam
a91de444a2 Merge pull request #398 from arifszn/dependabot/npm_and_yarn/vite-plugin-pwa-0.16.4
Bump vite-plugin-pwa from 0.16.3 to 0.16.4
2023-06-16 00:02:21 +06:00
Ariful Alam
98d550de69 Merge pull request #399 from arifszn/dependabot/npm_and_yarn/daisyui-3.1.0
Bump daisyui from 3.0.20 to 3.1.0
2023-06-12 21:48:39 +06:00
dependabot[bot]
80954fce9f Bump daisyui from 3.0.20 to 3.1.0
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 3.0.20 to 3.1.0.
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/compare/v3.0.20...v3.1.0)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-12 08:59:03 +00:00
dependabot[bot]
2a4a10d032 Bump vite-plugin-pwa from 0.16.3 to 0.16.4
Bumps [vite-plugin-pwa](https://github.com/antfu/vite-plugin-pwa) from 0.16.3 to 0.16.4.
- [Release notes](https://github.com/antfu/vite-plugin-pwa/releases)
- [Commits](https://github.com/antfu/vite-plugin-pwa/compare/v0.16.3...v0.16.4)

---
updated-dependencies:
- dependency-name: vite-plugin-pwa
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-12 08:58:51 +00:00
Ariful Alam
80a7f5fd1c Merge pull request #397 from arifszn/theme
Update default theme
2023-06-09 15:31:57 +06:00
Ariful Alam
0f36c6f33c Update default theme 2023-06-09 15:30:39 +06:00
Ariful Alam
f137ffd6fa Merge pull request #395 from arifszn/2.5.0
Version 2.5.0
2023-06-09 11:17:28 +06:00
Ariful Alam
0fd4107ce6 Bump version to 2.5.0 🚀 2023-06-09 11:15:25 +06:00
Ariful Alam
639d346cb9 Update thank you note 2023-06-09 11:14:20 +06:00
Ariful Alam
054b94983c Update dependencies 2023-06-09 11:12:59 +06:00
Ariful Alam
27d763d3f9 Update deploy guide 2023-06-09 11:09:01 +06:00
Ariful Alam
f9ce8bd292 Merge pull request #394 from arifszn/dependabot/npm_and_yarn/daisyui-3.0.20
Bump daisyui from 3.0.4 to 3.0.20
2023-06-09 10:59:25 +06:00
dependabot[bot]
8705fa0a65 Bump daisyui from 3.0.4 to 3.0.20
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 3.0.4 to 3.0.20.
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/compare/v3.0.4...v3.0.20)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-09 04:57:27 +00:00
Ariful Alam
9274119f87 Merge pull request #393 from aashay28/main
Hidden theme dropdown menu behind the profile card
2023-06-07 18:13:54 +06:00
aashay shah
2285d21799 Hidden theme dropdown menu behind the profile card 2023-06-07 17:25:44 +05:30
Ariful Alam
18a5096d94 Merge pull request #392 from arifszn/dependabot/npm_and_yarn/daisyui-3.0.4
Bump daisyui from 3.0.3 to 3.0.4
2023-06-07 17:24:10 +06:00
dependabot[bot]
cb1359c2af Bump daisyui from 3.0.3 to 3.0.4
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 3.0.3 to 3.0.4.
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/commits/v3.0.4)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-07 11:22:51 +00:00
Ariful Alam
8e93cf38a7 Merge pull request #385 from arifszn/dependabot/npm_and_yarn/postcss-8.4.24
Bump postcss from 8.4.23 to 8.4.24
2023-06-06 11:04:03 +06:00
Ariful Alam
a1e3e94057 Merge pull request #389 from arifszn/dependabot/npm_and_yarn/eslint-8.42.0
Bump eslint from 8.41.0 to 8.42.0
2023-06-06 11:03:30 +06:00
Ariful Alam
cb7f37e054 Merge pull request #387 from arifszn/dependabot/npm_and_yarn/daisyui-3.0.3
Bump daisyui from 2.51.6 to 3.0.3
2023-06-06 11:03:18 +06:00
Ariful Alam
f0ad3c95c2 Merge pull request #383 from arifszn/dependabot/npm_and_yarn/react-icons-4.9.0
Bump react-icons from 4.8.0 to 4.9.0
2023-06-06 10:59:04 +06:00
dependabot[bot]
ffdf1a7175 Bump react-icons from 4.8.0 to 4.9.0
Bumps [react-icons](https://github.com/react-icons/react-icons) from 4.8.0 to 4.9.0.
- [Release notes](https://github.com/react-icons/react-icons/releases)
- [Commits](https://github.com/react-icons/react-icons/compare/v4.8.0...v4.9.0)

---
updated-dependencies:
- dependency-name: react-icons
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-05 18:55:14 +00:00
Ariful Alam
4f9ba8df17 Merge pull request #388 from arifszn/dependabot/npm_and_yarn/vite-plugin-pwa-0.16.3
Bump vite-plugin-pwa from 0.15.1 to 0.16.3
2023-06-06 00:54:37 +06:00
dependabot[bot]
0a7cbd0985 Bump eslint from 8.41.0 to 8.42.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.41.0 to 8.42.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.41.0...v8.42.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-05 09:00:21 +00:00
dependabot[bot]
6ce0feef7e Bump vite-plugin-pwa from 0.15.1 to 0.16.3
Bumps [vite-plugin-pwa](https://github.com/antfu/vite-plugin-pwa) from 0.15.1 to 0.16.3.
- [Release notes](https://github.com/antfu/vite-plugin-pwa/releases)
- [Commits](https://github.com/antfu/vite-plugin-pwa/compare/v0.15.1...v0.16.3)

---
updated-dependencies:
- dependency-name: vite-plugin-pwa
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-05 08:59:56 +00:00
dependabot[bot]
5de48c11fd Bump daisyui from 2.51.6 to 3.0.3
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 2.51.6 to 3.0.3.
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/commits)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-05 08:59:00 +00:00
Ariful Alam
5c766305ea Merge pull request #381 from arifszn/dependabot/npm_and_yarn/vite-plugin-pwa-0.15.1
Bump vite-plugin-pwa from 0.15.0 to 0.15.1
2023-06-03 13:40:47 +06:00
Ariful Alam
815f2ec64e Merge pull request #382 from arifszn/dependabot/npm_and_yarn/vite-4.3.9
Bump vite from 4.3.8 to 4.3.9
2023-06-03 13:40:40 +06:00
dependabot[bot]
ceb84a1562 Bump postcss from 8.4.23 to 8.4.24
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.23 to 8.4.24.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.23...8.4.24)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-29 09:00:28 +00:00
dependabot[bot]
4b9dfb3c20 Bump vite from 4.3.8 to 4.3.9
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.3.8 to 4.3.9.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v4.3.9/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-29 08:59:12 +00:00
dependabot[bot]
46c84582e9 Bump vite-plugin-pwa from 0.15.0 to 0.15.1
Bumps [vite-plugin-pwa](https://github.com/antfu/vite-plugin-pwa) from 0.15.0 to 0.15.1.
- [Release notes](https://github.com/antfu/vite-plugin-pwa/releases)
- [Commits](https://github.com/antfu/vite-plugin-pwa/compare/v0.15.0...v0.15.1)

---
updated-dependencies:
- dependency-name: vite-plugin-pwa
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-26 05:03:53 +00:00
Ariful Alam
b3907304bf Merge pull request #377 from arifszn/dependabot/npm_and_yarn/vite-4.3.8
Bump vite from 4.3.3 to 4.3.8
2023-05-26 11:02:49 +06:00
Ariful Alam
7f28179920 Merge pull request #378 from arifszn/dependabot/npm_and_yarn/eslint-8.41.0
Bump eslint from 8.40.0 to 8.41.0
2023-05-26 11:02:39 +06:00
Ariful Alam
a65fb9bfd0 Merge pull request #379 from arifszn/dependabot/npm_and_yarn/vite-plugin-pwa-0.15.0
Bump vite-plugin-pwa from 0.14.7 to 0.15.0
2023-05-26 11:02:30 +06:00
dependabot[bot]
24892e5f27 Bump vite-plugin-pwa from 0.14.7 to 0.15.0
Bumps [vite-plugin-pwa](https://github.com/antfu/vite-plugin-pwa) from 0.14.7 to 0.15.0.
- [Release notes](https://github.com/antfu/vite-plugin-pwa/releases)
- [Commits](https://github.com/antfu/vite-plugin-pwa/compare/v0.14.7...v0.15.0)

---
updated-dependencies:
- dependency-name: vite-plugin-pwa
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-21 16:37:25 +00:00
dependabot[bot]
800f61e0ec Bump eslint from 8.40.0 to 8.41.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.40.0 to 8.41.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.40.0...v8.41.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-21 16:36:48 +00:00
dependabot[bot]
c96ae81e13 Bump vite from 4.3.3 to 4.3.8
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.3.3 to 4.3.8.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v4.3.8/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-21 16:36:28 +00:00
Ariful Alam
58aad33f32 Merge pull request #372 from arifszn/dependabot/npm_and_yarn/date-fns-2.30.0
Bump date-fns from 2.29.3 to 2.30.0
2023-05-21 22:36:01 +06:00
Ariful Alam
81fe01c092 Merge pull request #366 from arifszn/dependabot/npm_and_yarn/prettier-2.8.8
Bump prettier from 2.8.7 to 2.8.8
2023-05-21 22:35:51 +06:00
Ariful Alam
87126da8c7 Merge pull request #374 from arifszn/dependabot/npm_and_yarn/eslint-8.40.0
Bump eslint from 8.39.0 to 8.40.0
2023-05-21 22:35:44 +06:00
Ariful Alam
37e1fc11ec Merge pull request #376 from arifszn/PWA
Install as Progressive Web App
2023-05-21 22:35:32 +06:00
Ariful Alam
ef87189024 Update README 2023-05-21 22:33:43 +06:00
Ariful Alam
90f38bec5f Add manifest for PWA 2023-05-21 22:28:20 +06:00
Ariful Alam
ce2711fbdf Validate package lock 2023-05-21 22:24:27 +06:00
Ariful Alam
35edab65db Valid package lock 2023-05-21 20:48:19 +06:00
Michel Doré
7c601dbea3 Added PWA functionality 2023-05-21 20:46:52 +06:00
dependabot[bot]
4f74eed832 Bump eslint from 8.39.0 to 8.40.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.39.0 to 8.40.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.39.0...v8.40.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-08 08:58:50 +00:00
Ariful Alam
fecce68262 Merge pull request #371 from arifszn/dependabot/npm_and_yarn/axios-1.4.0
Bump axios from 1.3.6 to 1.4.0
2023-05-01 16:25:17 +06:00
dependabot[bot]
265c42cbc3 Bump date-fns from 2.29.3 to 2.30.0
Bumps [date-fns](https://github.com/date-fns/date-fns) from 2.29.3 to 2.30.0.
- [Release notes](https://github.com/date-fns/date-fns/releases)
- [Changelog](https://github.com/date-fns/date-fns/blob/v2.30.0/CHANGELOG.md)
- [Commits](https://github.com/date-fns/date-fns/compare/v2.29.3...v2.30.0)

---
updated-dependencies:
- dependency-name: date-fns
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-01 09:01:49 +00:00
dependabot[bot]
634f5f4d51 Bump axios from 1.3.6 to 1.4.0
Bumps [axios](https://github.com/axios/axios) from 1.3.6 to 1.4.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.3.6...v1.4.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-01 09:01:28 +00:00
Ariful Alam
cccb649cd2 Merge pull request #367 from arifszn/dependabot/npm_and_yarn/daisyui-2.51.6
Bump daisyui from 2.51.5 to 2.51.6
2023-05-01 11:39:54 +06:00
Ariful Alam
9ce0d8d3f3 Merge pull request #365 from arifszn/dependabot/npm_and_yarn/vite-4.3.3
Bump vite from 4.2.1 to 4.3.3
2023-05-01 10:11:57 +06:00
dependabot[bot]
f481d9c25d Bump vite from 4.2.1 to 4.3.3
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.2.1 to 4.3.3.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v4.3.3/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-01 03:15:04 +00:00
dependabot[bot]
2cd12b5e82 Bump daisyui from 2.51.5 to 2.51.6
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 2.51.5 to 2.51.6.
- [Release notes](https://github.com/saadeghi/daisyui/releases)
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/compare/v2.51.5...v2.51.6)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-01 03:14:09 +00:00
Ariful Alam
09edcddf1e Merge pull request #368 from arifszn/dependabot/npm_and_yarn/vitejs/plugin-react-4.0.0
Bump @vitejs/plugin-react from 3.1.0 to 4.0.0
2023-05-01 09:08:09 +06:00
Ariful Alam
937c762cf4 Merge pull request #369 from arifszn/dependabot/npm_and_yarn/tailwindcss-3.3.2
Bump tailwindcss from 3.3.1 to 3.3.2
2023-05-01 09:07:56 +06:00
dependabot[bot]
ceaa281c34 Bump tailwindcss from 3.3.1 to 3.3.2
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.3.1 to 3.3.2.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.3.1...v3.3.2)

---
updated-dependencies:
- dependency-name: tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-27 11:07:21 +00:00
dependabot[bot]
1d6001a065 Bump @vitejs/plugin-react from 3.1.0 to 4.0.0
Bumps [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) from 3.1.0 to 4.0.0.
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@4.0.0/packages/plugin-react)

---
updated-dependencies:
- dependency-name: "@vitejs/plugin-react"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-27 11:06:35 +00:00
dependabot[bot]
506c3c47bc Bump prettier from 2.8.7 to 2.8.8
Bumps [prettier](https://github.com/prettier/prettier) from 2.8.7 to 2.8.8.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.8.7...2.8.8)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-27 11:06:01 +00:00
Ariful Alam
76f3f5eedd Merge pull request #359 from arifszn/dependabot/npm_and_yarn/react-hotjar-6.1.0
Bump react-hotjar from 5.5.0 to 6.1.0
2023-04-27 17:04:38 +06:00
Ariful Alam
70815d0f18 Merge pull request #361 from arifszn/dependabot/npm_and_yarn/postcss-8.4.23
Bump postcss from 8.4.21 to 8.4.23
2023-04-27 17:03:54 +06:00
Ariful Alam
171407b98f Merge pull request #362 from arifszn/dependabot/npm_and_yarn/eslint-8.39.0
Bump eslint from 8.37.0 to 8.39.0
2023-04-27 17:02:19 +06:00
Ariful Alam
4893129df0 Merge pull request #363 from arifszn/dependabot/npm_and_yarn/axios-1.3.6
Bump axios from 1.3.4 to 1.3.6
2023-04-27 17:01:44 +06:00
dependabot[bot]
cb99de5994 Bump axios from 1.3.4 to 1.3.6
Bumps [axios](https://github.com/axios/axios) from 1.3.4 to 1.3.6.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.3.4...v1.3.6)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-24 09:00:36 +00:00
dependabot[bot]
99891187c4 Bump eslint from 8.37.0 to 8.39.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.37.0 to 8.39.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.37.0...v8.39.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-24 09:00:17 +00:00
dependabot[bot]
4ad60a28fc Bump postcss from 8.4.21 to 8.4.23
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.21 to 8.4.23.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.21...8.4.23)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-24 08:59:46 +00:00
dependabot[bot]
97bfff7d67 Bump react-hotjar from 5.5.0 to 6.1.0
Bumps [react-hotjar](https://github.com/abdalla/react-hotjar) from 5.5.0 to 6.1.0.
- [Release notes](https://github.com/abdalla/react-hotjar/releases)
- [Changelog](https://github.com/abdalla/react-hotjar/blob/master/CHANGELOG.md)
- [Commits](https://github.com/abdalla/react-hotjar/commits)

---
updated-dependencies:
- dependency-name: react-hotjar
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-17 08:59:37 +00:00
Ariful Alam
6bc2028f28 Merge pull request #353 from arifszn/dependabot/npm_and_yarn/tailwindcss-3.3.1
Bump tailwindcss from 3.2.7 to 3.3.1
2023-04-03 15:12:17 +06:00
Ariful Alam
8b9e6697eb Merge pull request #354 from arifszn/dependabot/npm_and_yarn/eslint-8.37.0
Bump eslint from 8.36.0 to 8.37.0
2023-04-03 15:12:09 +06:00
dependabot[bot]
12eb053631 Bump eslint from 8.36.0 to 8.37.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.36.0 to 8.37.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.36.0...v8.37.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-03 08:59:33 +00:00
dependabot[bot]
c82002bbcf Bump tailwindcss from 3.2.7 to 3.3.1
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.2.7 to 3.3.1.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.2.7...v3.3.1)

---
updated-dependencies:
- dependency-name: tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-03 08:59:15 +00:00
Ariful Alam
b9b71301a6 Merge pull request #352 from hkrvikrant/remove_capitalizing
Removed Capitalizing githib project #351
2023-04-02 15:00:05 +06:00
Vikrant Tomar
4eb7f0a376 Removed Capitalizing githib project #351 2023-04-02 13:35:47 +05:30
Ariful Alam
6b3e56f57b Merge pull request #349 from arifszn/dependabot/npm_and_yarn/prettier-2.8.7
Bump prettier from 2.8.6 to 2.8.7
2023-03-27 15:01:45 +06:00
dependabot[bot]
70845a7e56 Bump prettier from 2.8.6 to 2.8.7
Bumps [prettier](https://github.com/prettier/prettier) from 2.8.6 to 2.8.7.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.8.6...2.8.7)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-27 08:59:52 +00:00
Ariful Alam
2f1e506d69 Merge pull request #347 from arifszn/dependabot/npm_and_yarn/eslint-config-prettier-8.8.0
Bump eslint-config-prettier from 8.7.0 to 8.8.0
2023-03-24 10:46:31 +06:00
Ariful Alam
417bbb1ab3 Merge pull request #345 from arifszn/dependabot/npm_and_yarn/prettier-2.8.6
Bump prettier from 2.8.5 to 2.8.6
2023-03-24 10:46:21 +06:00
Ariful Alam
0bf13d0443 Merge pull request #346 from arifszn/dependabot/npm_and_yarn/daisyui-2.51.5
Bump daisyui from 2.51.4 to 2.51.5
2023-03-24 10:46:13 +06:00
dependabot[bot]
ea157d40be Bump eslint-config-prettier from 8.7.0 to 8.8.0
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 8.7.0 to 8.8.0.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v8.7.0...v8.8.0)

---
updated-dependencies:
- dependency-name: eslint-config-prettier
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-24 04:45:15 +00:00
dependabot[bot]
7d0d750bdb Bump daisyui from 2.51.4 to 2.51.5
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 2.51.4 to 2.51.5.
- [Release notes](https://github.com/saadeghi/daisyui/releases)
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/compare/v2.51.4...v2.51.5)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-24 04:45:07 +00:00
dependabot[bot]
a2335c49ea Bump prettier from 2.8.5 to 2.8.6
Bumps [prettier](https://github.com/prettier/prettier) from 2.8.5 to 2.8.6.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.8.5...2.8.6)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-24 04:44:56 +00:00
Ariful Alam
d689ea8157 Merge pull request #340 from arifszn/dependabot/npm_and_yarn/prettier-2.8.5
Bump prettier from 2.8.4 to 2.8.5
2023-03-24 10:44:13 +06:00
Ariful Alam
81c968e01d Merge pull request #344 from arifszn/dependabot/npm_and_yarn/vite-4.2.1
Bump vite from 4.1.4 to 4.2.1
2023-03-24 10:44:05 +06:00
Ariful Alam
f9218b343d Merge pull request #337 from arifszn/dependabot/npm_and_yarn/daisyui-2.51.4
Bump daisyui from 2.51.3 to 2.51.4
2023-03-24 10:43:56 +06:00
dependabot[bot]
8e6d0d8b56 Bump vite from 4.1.4 to 4.2.1
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.1.4 to 4.2.1.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v4.2.1/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-24 04:40:01 +00:00
Ariful Alam
5db163a98e Merge pull request #343 from arifszn/fix/blog
Update `@arifszn/blog-js` to 2.0.4
2023-03-24 10:39:08 +06:00
Ariful Alam
eb545d13f0 Update @arifszn/blog-js to 2.0.4 2023-03-24 10:32:39 +06:00
Ariful Alam
4979fbefc6 Merge pull request #339 from arifszn/dependabot/npm_and_yarn/react-hotjar-5.5.0
Bump react-hotjar from 5.4.1 to 5.5.0
2023-03-21 11:05:42 +06:00
dependabot[bot]
a209f1bed2 Bump prettier from 2.8.4 to 2.8.5
Bumps [prettier](https://github.com/prettier/prettier) from 2.8.4 to 2.8.5.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.8.4...2.8.5)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-20 06:38:51 +00:00
dependabot[bot]
d6c316abd9 Bump react-hotjar from 5.4.1 to 5.5.0
Bumps [react-hotjar](https://github.com/abdalla/react-hotjar) from 5.4.1 to 5.5.0.
- [Release notes](https://github.com/abdalla/react-hotjar/releases)
- [Commits](https://github.com/abdalla/react-hotjar/commits)

---
updated-dependencies:
- dependency-name: react-hotjar
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-20 06:38:42 +00:00
dependabot[bot]
3e00c068c3 Bump daisyui from 2.51.3 to 2.51.4
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 2.51.3 to 2.51.4.
- [Release notes](https://github.com/saadeghi/daisyui/releases)
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/compare/v2.51.3...v2.51.4)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-20 06:38:15 +00:00
Ariful Alam
5ddf1ed649 Merge pull request #333 from arifszn/dependabot/npm_and_yarn/autoprefixer-10.4.14
Bump autoprefixer from 10.4.13 to 10.4.14
2023-03-20 12:37:15 +06:00
Ariful Alam
4f063ade73 Merge pull request #326 from arifszn/dependabot/npm_and_yarn/eslint-config-prettier-8.7.0
Bump eslint-config-prettier from 8.6.0 to 8.7.0
2023-03-20 12:37:06 +06:00
Ariful Alam
fc3f58c0db Merge pull request #334 from arifszn/dependabot/npm_and_yarn/eslint-8.36.0
Bump eslint from 8.35.0 to 8.36.0
2023-03-20 12:36:55 +06:00
dependabot[bot]
19fb3e1e64 Bump eslint from 8.35.0 to 8.36.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.35.0 to 8.36.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.35.0...v8.36.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-13 09:00:18 +00:00
dependabot[bot]
ffe04ecf33 Bump autoprefixer from 10.4.13 to 10.4.14
Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.4.13 to 10.4.14.
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.13...10.4.14)

---
updated-dependencies:
- dependency-name: autoprefixer
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-13 09:00:06 +00:00
Ariful Alam
521efd3d07 Merge pull request #328 from arifszn/dependabot/npm_and_yarn/arifszn/blog-js-2.0.3
Bump @arifszn/blog-js from 2.0.2 to 2.0.3
2023-03-08 18:48:00 +06:00
Ariful Alam
7a53d4aea4 Merge pull request #325 from arifszn/dependabot/npm_and_yarn/daisyui-2.51.3
Bump daisyui from 2.51.1 to 2.51.3
2023-03-08 18:47:51 +06:00
Ariful Alam
98f44262a9 Merge pull request #327 from arifszn/dependabot/npm_and_yarn/react-icons-4.8.0
Bump react-icons from 4.7.1 to 4.8.0
2023-03-08 18:44:14 +06:00
Ariful Alam
0c1c378055 Merge pull request #329 from arifszn/arifszn-patch-313
Update actions/configure-pages
2023-03-08 18:41:50 +06:00
Ariful Alam
58eb3a841d Update actions/configure-pages 2023-03-08 18:39:54 +06:00
dependabot[bot]
b7ca57e6a9 Bump @arifszn/blog-js from 2.0.2 to 2.0.3
Bumps [@arifszn/blog-js](https://github.com/arifszn/blog.js) from 2.0.2 to 2.0.3.
- [Release notes](https://github.com/arifszn/blog.js/releases)
- [Commits](https://github.com/arifszn/blog.js/compare/v2.0.2...v2.0.3)

---
updated-dependencies:
- dependency-name: "@arifszn/blog-js"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-06 09:01:46 +00:00
dependabot[bot]
20e93593af Bump react-icons from 4.7.1 to 4.8.0
Bumps [react-icons](https://github.com/react-icons/react-icons) from 4.7.1 to 4.8.0.
- [Release notes](https://github.com/react-icons/react-icons/releases)
- [Commits](https://github.com/react-icons/react-icons/compare/v4.7.1...v4.8.0)

---
updated-dependencies:
- dependency-name: react-icons
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-06 09:01:38 +00:00
dependabot[bot]
157b3f85a5 Bump eslint-config-prettier from 8.6.0 to 8.7.0
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 8.6.0 to 8.7.0.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v8.6.0...v8.7.0)

---
updated-dependencies:
- dependency-name: eslint-config-prettier
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-06 09:01:27 +00:00
dependabot[bot]
a7d342601b Bump daisyui from 2.51.1 to 2.51.3
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 2.51.1 to 2.51.3.
- [Release notes](https://github.com/saadeghi/daisyui/releases)
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/compare/v2.51.1...v2.51.3)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-06 09:01:22 +00:00
Ariful Alam
cf0a344550 Merge pull request #321 from arifszn/dependabot/npm_and_yarn/vite-4.1.4
Bump vite from 4.1.1 to 4.1.4
2023-03-02 07:54:37 +06:00
Ariful Alam
268f70d53e Merge pull request #318 from arifszn/dependabot/npm_and_yarn/tailwindcss-3.2.7
Bump tailwindcss from 3.2.4 to 3.2.7
2023-03-02 07:54:25 +06:00
Ariful Alam
bfa599a508 Merge pull request #320 from arifszn/dependabot/npm_and_yarn/eslint-8.35.0
Bump eslint from 8.33.0 to 8.35.0
2023-03-02 07:54:16 +06:00
Ariful Alam
83bfb85b4f Merge pull request #322 from arifszn/dependabot/npm_and_yarn/axios-1.3.4
Bump axios from 1.3.2 to 1.3.4
2023-03-02 07:54:06 +06:00
Ariful Alam
86b313d143 Merge pull request #323 from arifszn/dependabot/npm_and_yarn/daisyui-2.51.1
Bump daisyui from 2.50.0 to 2.51.1
2023-03-02 07:53:53 +06:00
dependabot[bot]
d6e6213991 Bump daisyui from 2.50.0 to 2.51.1
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 2.50.0 to 2.51.1.
- [Release notes](https://github.com/saadeghi/daisyui/releases)
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/commits)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-27 09:03:13 +00:00
dependabot[bot]
1a0af42ba6 Bump axios from 1.3.2 to 1.3.4
Bumps [axios](https://github.com/axios/axios) from 1.3.2 to 1.3.4.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.3.2...v1.3.4)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-27 09:02:58 +00:00
dependabot[bot]
30cd7cb152 Bump vite from 4.1.1 to 4.1.4
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.1.1 to 4.1.4.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v4.1.4/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-27 09:02:45 +00:00
dependabot[bot]
b3de46ba51 Bump eslint from 8.33.0 to 8.35.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.33.0 to 8.35.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.33.0...v8.35.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-27 09:02:17 +00:00
dependabot[bot]
4ee69ffd98 Bump tailwindcss from 3.2.4 to 3.2.7
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.2.4 to 3.2.7.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.2.4...v3.2.7)

---
updated-dependencies:
- dependency-name: tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-20 09:05:16 +00:00
Ariful Alam
22d6ee0d0f Merge pull request #312 from arifszn/icon-placement
Fix icon placement
2023-02-19 00:05:53 +06:00
Ariful Alam
f5b9ed4afb Change email icon 2023-02-19 00:03:15 +06:00
Ariful Alam
76fa0740e6 Update readme 2023-02-18 23:51:08 +06:00
Ariful Alam
5803c2149c Change icon style for social links 2023-02-18 23:11:43 +06:00
Ariful Alam
78413294ea Increase border radius of theme dropdown 2023-02-18 22:37:25 +06:00
Ariful Alam
5631516710 Merge pull request #311 from arifszn/format-mastodon
Allow Github style mastodon format
2023-02-18 22:12:39 +06:00
Ariful Alam
13a715a1a5 Merge pull request #306 from csarnataro/add-skype-and-telegram-to-social-links
Add social links to Skype and Telegram
2023-02-18 22:06:37 +06:00
Ariful Alam
ca63dc0b5d Bump version to 2.4.0 🚀 2023-02-18 21:58:05 +06:00
Ariful Alam
f90076df3f Remove skype and telegram info 2023-02-18 21:57:08 +06:00
Ariful Alam
30ea06d78e Allow Github style mastodon format 2023-02-18 21:11:45 +06:00
Christian Sarnataro
17156c1dad Minor fixes (prettier) 2023-02-15 10:10:14 +01:00
Christian Sarnataro
f0c3098ad6 Merge branch 'add-skype-and-telegram-to-social-links' of https://github.com/csarnataro/gitprofile into add-skype-and-telegram-to-social-links 2023-02-15 10:05:11 +01:00
Christian Sarnataro
efaebb7892 Added skype and telegram to GitProfile props
* Added skype and telegram to GitProfile props via PropTypes.
* Added skype and telegram to types.d.ts
2023-02-15 10:03:32 +01:00
Christian Sarnataro
1b4a87b16f Merge branch 'main' of https://github.com/csarnataro/gitprofile into add-skype-and-telegram-to-social-links 2023-02-15 09:59:51 +01:00
Ariful Alam
41279736f5 Merge pull request #301 from arifszn/dependabot/npm_and_yarn/vitejs/plugin-react-3.1.0
Bump @vitejs/plugin-react from 3.0.1 to 3.1.0
2023-02-15 12:27:07 +06:00
Ariful Alam
d31d14ddd9 Merge pull request #302 from arifszn/dependabot/npm_and_yarn/vite-4.1.1
Bump vite from 4.0.4 to 4.1.1
2023-02-15 12:26:56 +06:00
Ariful Alam
85a515638a Merge pull request #303 from arifszn/dependabot/npm_and_yarn/daisyui-2.50.0
Bump daisyui from 2.49.0 to 2.50.0
2023-02-15 12:26:45 +06:00
Ariful Alam
5fb622858e Merge pull request #304 from arifszn/dependabot/npm_and_yarn/axios-1.3.2
Bump axios from 1.2.6 to 1.3.2
2023-02-15 12:26:28 +06:00
Ariful Alam
9ebb6debc4 Merge pull request #308 from arifszn/dependabot/npm_and_yarn/prettier-2.8.4
Bump prettier from 2.8.3 to 2.8.4
2023-02-15 12:26:14 +06:00
Ariful Alam
b06ddf911a Merge pull request #266 from csarnataro/add-mastodon-to-social-links
Added Mastodon social link
2023-02-14 21:10:53 +06:00
Ariful Alam
2c9700d47e Add missing prop type for Mastodon 2023-02-14 21:07:59 +06:00
Ariful Alam
1229633a77 Allow different formats of Mastodon link 2023-02-14 21:06:07 +06:00
dependabot[bot]
da5e690de0 Bump prettier from 2.8.3 to 2.8.4
Bumps [prettier](https://github.com/prettier/prettier) from 2.8.3 to 2.8.4.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.8.3...2.8.4)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-13 09:03:05 +00:00
Christian Sarnataro
e1ee10a39c Merge branch 'main' into add-skype-and-telegram-to-social-links 2023-02-11 00:13:10 +01:00
Christian Sarnataro
e7a343c1c0 Bumped version to 2.3.1 2023-02-11 00:12:23 +01:00
Christian Sarnataro
e643996019 Added social links to Skype and Telegram 2023-02-11 00:10:29 +01:00
Christian Sarnataro
f38bbafb2d Removed 'verification link' instructions from README 2023-02-10 23:44:35 +01:00
Christian Sarnataro
de4b91f282 Merge branch 'main' into add-mastodon-to-social-links 2023-02-10 23:41:45 +01:00
dependabot[bot]
fec425195d Bump axios from 1.2.6 to 1.3.2
Bumps [axios](https://github.com/axios/axios) from 1.2.6 to 1.3.2.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.2.6...v1.3.2)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-06 08:06:46 +00:00
dependabot[bot]
a15c278f08 Bump daisyui from 2.49.0 to 2.50.0
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 2.49.0 to 2.50.0.
- [Release notes](https://github.com/saadeghi/daisyui/releases)
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/commits)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-06 08:06:34 +00:00
dependabot[bot]
9f32665a7a Bump vite from 4.0.4 to 4.1.1
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.0.4 to 4.1.1.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v4.1.1/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-06 08:06:22 +00:00
dependabot[bot]
62ae9293d4 Bump @vitejs/plugin-react from 3.0.1 to 3.1.0
Bumps [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) from 3.0.1 to 3.1.0.
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@3.1.0/packages/plugin-react)

---
updated-dependencies:
- dependency-name: "@vitejs/plugin-react"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-06 08:05:47 +00:00
Ariful Alam
c964a40478 Merge pull request #297 from arifszn/dependabot/npm_and_yarn/daisyui-2.49.0
Bump daisyui from 2.47.0 to 2.49.0
2023-01-31 01:27:31 +06:00
Ariful Alam
e2f0e76f7a Merge pull request #299 from arifszn/dependabot/npm_and_yarn/eslint-plugin-react-7.32.2
Bump eslint-plugin-react from 7.32.1 to 7.32.2
2023-01-31 01:27:20 +06:00
Ariful Alam
52907c78ff Merge pull request #300 from arifszn/dependabot/npm_and_yarn/eslint-8.33.0
Bump eslint from 8.32.0 to 8.33.0
2023-01-30 14:50:11 +06:00
Ariful Alam
d16f45702d Merge pull request #298 from arifszn/dependabot/npm_and_yarn/axios-1.2.6
Bump axios from 1.2.3 to 1.2.6
2023-01-30 14:47:36 +06:00
dependabot[bot]
9258c1de46 Bump eslint from 8.32.0 to 8.33.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.32.0 to 8.33.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.32.0...v8.33.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-30 08:08:28 +00:00
dependabot[bot]
28bdd6c3fe Bump eslint-plugin-react from 7.32.1 to 7.32.2
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.32.1 to 7.32.2.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.32.1...v7.32.2)

---
updated-dependencies:
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-30 08:08:02 +00:00
dependabot[bot]
444e220657 Bump axios from 1.2.3 to 1.2.6
Bumps [axios](https://github.com/axios/axios) from 1.2.3 to 1.2.6.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.2.3...v1.2.6)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-30 08:07:45 +00:00
dependabot[bot]
a1525e87b2 Bump daisyui from 2.47.0 to 2.49.0
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 2.47.0 to 2.49.0.
- [Release notes](https://github.com/saadeghi/daisyui/releases)
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/commits)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-30 08:07:23 +00:00
Ariful Alam
f141ef4a1d Merge pull request #289 from arifszn/dependabot/npm_and_yarn/axios-1.2.3
Bump axios from 1.2.2 to 1.2.3
2023-01-24 12:25:15 +06:00
Ariful Alam
8373d93ba5 Merge pull request #290 from arifszn/dependabot/npm_and_yarn/eslint-plugin-react-7.32.1
Bump eslint-plugin-react from 7.32.0 to 7.32.1
2023-01-24 12:24:59 +06:00
Ariful Alam
e56dc34e1e Merge pull request #291 from daffaharizal/main
Ref(index.jsx): hover: underline class for See All text
2023-01-23 17:19:18 +06:00
daffaharizal
027d427db9 Ref(index.jsx): hover: underline class for See All text 2023-01-23 18:09:12 +07:00
Ariful Alam
394c7f2476 Merge pull request #287 from arifszn/dependabot/npm_and_yarn/react-hotjar-5.4.1
Bump react-hotjar from 5.4.0 to 5.4.1
2023-01-23 14:36:56 +06:00
Ariful Alam
80d93e976a Merge pull request #288 from arifszn/dependabot/npm_and_yarn/daisyui-2.47.0
Bump daisyui from 2.46.1 to 2.47.0
2023-01-23 14:08:14 +06:00
dependabot[bot]
7fd43fac48 Bump eslint-plugin-react from 7.32.0 to 7.32.1
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.32.0 to 7.32.1.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.32.0...v7.32.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-23 08:06:19 +00:00
dependabot[bot]
2ff2e301e9 Bump axios from 1.2.2 to 1.2.3
Bumps [axios](https://github.com/axios/axios) from 1.2.2 to 1.2.3.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/1.2.2...v1.2.3)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-23 08:05:58 +00:00
dependabot[bot]
0515e2ec62 Bump daisyui from 2.46.1 to 2.47.0
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 2.46.1 to 2.47.0.
- [Release notes](https://github.com/saadeghi/daisyui/releases)
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/compare/v2.46.1...v2.47.0)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-23 08:05:41 +00:00
dependabot[bot]
8853f2f2b5 Bump react-hotjar from 5.4.0 to 5.4.1
Bumps [react-hotjar](https://github.com/abdalla/react-hotjar) from 5.4.0 to 5.4.1.
- [Release notes](https://github.com/abdalla/react-hotjar/releases)
- [Commits](https://github.com/abdalla/react-hotjar/commits)

---
updated-dependencies:
- dependency-name: react-hotjar
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-23 08:05:23 +00:00
Ariful Alam
c888fb77a5 Merge pull request #286 from arifszn/285-truncate-long-text
Truncate long text
2023-01-19 17:04:29 +06:00
Ariful Alam
5a30b610b3 Truncate long text 2023-01-19 17:02:52 +06:00
Ariful Alam
46b228615a Merge pull request #283 from arifszn/dependabot/npm_and_yarn/eslint-plugin-react-7.32.0
Bump eslint-plugin-react from 7.31.11 to 7.32.0
2023-01-16 15:13:10 +06:00
Ariful Alam
07d4595738 Merge pull request #281 from arifszn/dependabot/npm_and_yarn/react-hotjar-5.4.0
Bump react-hotjar from 5.3.0 to 5.4.0
2023-01-16 15:13:01 +06:00
Ariful Alam
1226b4436b Merge pull request #282 from arifszn/dependabot/npm_and_yarn/eslint-8.32.0
Bump eslint from 8.31.0 to 8.32.0
2023-01-16 15:12:53 +06:00
Ariful Alam
101882f503 Merge pull request #284 from arifszn/dependabot/npm_and_yarn/prettier-2.8.3
Bump prettier from 2.8.2 to 2.8.3
2023-01-16 15:12:43 +06:00
dependabot[bot]
d7e05033c5 Bump prettier from 2.8.2 to 2.8.3
Bumps [prettier](https://github.com/prettier/prettier) from 2.8.2 to 2.8.3.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.8.2...2.8.3)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-16 08:06:25 +00:00
dependabot[bot]
f1c07e98cb Bump eslint-plugin-react from 7.31.11 to 7.32.0
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.31.11 to 7.32.0.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.31.11...v7.32.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-16 08:06:10 +00:00
dependabot[bot]
3a10225e81 Bump eslint from 8.31.0 to 8.32.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.31.0 to 8.32.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.31.0...v8.32.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-16 08:05:55 +00:00
dependabot[bot]
ad6e7aaddb Bump react-hotjar from 5.3.0 to 5.4.0
Bumps [react-hotjar](https://github.com/abdalla/react-hotjar) from 5.3.0 to 5.4.0.
- [Release notes](https://github.com/abdalla/react-hotjar/releases)
- [Commits](https://github.com/abdalla/react-hotjar/commits/v5.4.0)

---
updated-dependencies:
- dependency-name: react-hotjar
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-16 08:05:34 +00:00
Ariful Alam
f15703f68c Merge pull request #280 from arifszn/2.3.0
Bump version to 2.3.0 🚀
2023-01-14 19:52:03 +06:00
Ariful Alam
2db8bf69e6 Bump version to 2.3.0 🚀 2023-01-14 19:51:43 +06:00
Ariful Alam
223a2de0a3 Merge pull request #279 from arifszn/card-bg
Change project card background color
2023-01-14 19:46:57 +06:00
Ariful Alam
65b427481c Change project card background color 2023-01-14 19:46:39 +06:00
Ariful Alam
302071014e Merge pull request #275 from arifszn/dependabot/npm_and_yarn/postcss-8.4.21
Bump postcss from 8.4.20 to 8.4.21
2023-01-14 19:40:28 +06:00
Ariful Alam
59151b02f4 Merge pull request #274 from arifszn/dependabot/npm_and_yarn/vitejs/plugin-react-3.0.1
Bump @vitejs/plugin-react from 3.0.0 to 3.0.1
2023-01-14 19:40:22 +06:00
Ariful Alam
7220ff4c92 Merge pull request #276 from arifszn/dependabot/npm_and_yarn/prettier-2.8.2
Bump prettier from 2.8.1 to 2.8.2
2023-01-14 19:40:13 +06:00
Ariful Alam
0a89bc8233 Merge pull request #277 from arifszn/footer
Display custom footer
2023-01-14 19:39:54 +06:00
Ariful Alam
02ed553904 Add type definition for footer 2023-01-13 16:31:28 +06:00
Ariful Alam
5575e6c5f2 Add prop definition for resume and footer 2023-01-13 16:30:05 +06:00
Ariful Alam
03ee76d815 Refactor footer config 2023-01-13 16:26:04 +06:00
Ariful Alam
15dce3a539 Change default theme 2023-01-13 16:23:31 +06:00
Ariful Alam
38a7adffc8 Merge pull request #272 from csarnataro/add-option-to-display-footer
Add option to display footer
2023-01-13 16:12:40 +06:00
Christian Sarnataro
82ce615ff6 Added some clarifications as comments. 2023-01-09 23:55:10 +01:00
Christian Sarnataro
8d85ac349c Updated README with prettier fixes 2023-01-09 23:51:28 +01:00
Christian Sarnataro
c7ac31bb99 Updated code after code review 2023-01-09 23:49:52 +01:00
dependabot[bot]
d307af49ac Bump prettier from 2.8.1 to 2.8.2
Bumps [prettier](https://github.com/prettier/prettier) from 2.8.1 to 2.8.2.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.8.1...2.8.2)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-09 08:05:40 +00:00
dependabot[bot]
42dd2303be Bump postcss from 8.4.20 to 8.4.21
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.20 to 8.4.21.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.20...8.4.21)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-09 08:05:23 +00:00
dependabot[bot]
8fbbc0e0c5 Bump @vitejs/plugin-react from 3.0.0 to 3.0.1
Bumps [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@3.0.1/packages/plugin-react)

---
updated-dependencies:
- dependency-name: "@vitejs/plugin-react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-09 08:05:14 +00:00
Christian Sarnataro
2364f267cf Merge branch 'main' of https://github.com/csarnataro/gitprofile into add-option-to-display-footer 2023-01-04 20:52:23 +01:00
Christian Sarnataro
fff850f94f Added an option to display a custom footer
Added an option in config file.
Added a component which renders the custom footer or a default footer if
no custom footer is defined.
Updated readme file with related instructions.
2023-01-04 20:36:03 +01:00
Ariful Alam
382e3835b2 Update instruction for external project section 2023-01-04 14:59:44 +06:00
Ariful Alam
8988fde115 Bump version to 2.2.1 2023-01-03 22:27:35 +06:00
Ariful Alam
203273f349 Reduce blog post limit 2023-01-03 18:13:16 +06:00
Ariful Alam
bf0404222d Fix class name 2023-01-03 18:06:31 +06:00
Ariful Alam
62fc6941ed Update dependencies 2023-01-03 18:06:25 +06:00
Ariful Alam
01f6a21083 Merge pull request #271 from arifszn/icon
Update project icons
2023-01-03 18:05:07 +06:00
Ariful Alam
45fd66e595 Update project icons 2023-01-03 18:04:44 +06:00
Ariful Alam
4eeb320f92 Merge pull request #197 from arifszn/showcase
Showcase external projects
2023-01-03 17:12:50 +06:00
Ariful Alam
9cd95eb08d Bump version to 2.2.0 2023-01-03 17:11:34 +06:00
Ariful Alam
32740ede32 Add section for external projects 2023-01-03 17:09:10 +06:00
Ariful Alam
984bee1fcf Fix prop definition of externalProjects 2023-01-03 14:23:03 +06:00
Ariful Alam
53b4a1ee39 Refactor external projects 2023-01-03 14:23:03 +06:00
Ariful Alam
7ec5802b54 Apply prettier 2023-01-03 14:23:03 +06:00
Michel Doré
71223e4c04 Update README.md for Showcases 2023-01-03 14:23:03 +06:00
Michel Doré
04603e7bd3 Added type and new styling for showcases 2023-01-03 14:23:03 +06:00
Michel Doré
422e0ba12f Clean commit for showcases with image possibility 2023-01-03 14:23:03 +06:00
Ariful Alam
9382fcd1cd Merge pull request #264 from arifszn/dependabot/npm_and_yarn/vite-and-vitejs/plugin-react-4.0.3
Bump vite and @vitejs/plugin-react
2023-01-03 14:19:23 +06:00
Ariful Alam
dab07bebf7 Merge pull request #268 from arifszn/dependabot/npm_and_yarn/daisyui-2.46.1
Bump daisyui from 2.46.0 to 2.46.1
2023-01-03 14:09:43 +06:00
Ariful Alam
4ecbe62332 Merge pull request #269 from arifszn/dependabot/npm_and_yarn/eslint-8.31.0
Bump eslint from 8.30.0 to 8.31.0
2023-01-03 14:09:34 +06:00
Ariful Alam
37587c5e7a Merge pull request #270 from arifszn/dependabot/npm_and_yarn/axios-1.2.2
Bump axios from 1.2.1 to 1.2.2
2023-01-03 14:09:25 +06:00
dependabot[bot]
cdcd39beaf Bump axios from 1.2.1 to 1.2.2
Bumps [axios](https://github.com/axios/axios) from 1.2.1 to 1.2.2.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.2.1...1.2.2)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-02 08:05:41 +00:00
dependabot[bot]
7c94acfc53 Bump eslint from 8.30.0 to 8.31.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.30.0 to 8.31.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.30.0...v8.31.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-02 08:05:30 +00:00
dependabot[bot]
dd01541a98 Bump daisyui from 2.46.0 to 2.46.1
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 2.46.0 to 2.46.1.
- [Release notes](https://github.com/saadeghi/daisyui/releases)
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/commits)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-02 08:05:10 +00:00
Ariful Alam
3cf6c15103 Merge pull request #265 from arifszn/dependabot/npm_and_yarn/daisyui-2.46.0
Bump daisyui from 2.45.0 to 2.46.0
2022-12-31 16:04:39 +06:00
Christian Sarnataro
c91974514c Added Mastodon social link
Added a configuration for Mastodon social, updated the list of social link.
Updated README accordingly.
2022-12-30 16:58:12 +01:00
dependabot[bot]
02a568bf90 Bump daisyui from 2.45.0 to 2.46.0
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 2.45.0 to 2.46.0.
- [Release notes](https://github.com/saadeghi/daisyui/releases)
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/compare/v2.45.0...v2.46.0)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-26 08:15:00 +00:00
dependabot[bot]
ecf1b42136 Bump vite and @vitejs/plugin-react
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) and [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react). These dependencies needed to be updated together.

Updates `vite` from 3.2.4 to 4.0.3
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v4.0.3/packages/vite)

Updates `@vitejs/plugin-react` from 2.2.0 to 3.0.0
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@3.0.0/packages/plugin-react)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-major
- dependency-name: "@vitejs/plugin-react"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-26 08:14:43 +00:00
Ariful Alam
a7fa79b3ee Merge pull request #255 from arifszn/dependabot/npm_and_yarn/react-hotjar-5.3.0
Bump react-hotjar from 5.2.0 to 5.3.0
2022-12-26 12:16:28 +06:00
Ariful Alam
939a4b789b Merge pull request #260 from arifszn/dependabot/npm_and_yarn/eslint-8.30.0
Bump eslint from 8.29.0 to 8.30.0
2022-12-25 16:33:14 +06:00
Ariful Alam
5497a6f095 Update website 2022-12-25 16:27:38 +06:00
Ariful Alam
307d0cbc4c Merge pull request #261 from arifszn/dependabot/npm_and_yarn/prettier-2.8.1
Bump prettier from 2.8.0 to 2.8.1
2022-12-25 16:16:40 +06:00
Ariful Alam
dd540ed60d Update website 2022-12-25 16:16:10 +06:00
Ariful Alam
50eef86608 Merge pull request #262 from arifszn/dependabot/npm_and_yarn/daisyui-2.45.0
Bump daisyui from 2.42.1 to 2.45.0
2022-12-22 21:48:25 +06:00
dependabot[bot]
4c2c40bbbd Bump daisyui from 2.42.1 to 2.45.0
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 2.42.1 to 2.45.0.
- [Release notes](https://github.com/saadeghi/daisyui/releases)
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/commits)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-19 08:06:30 +00:00
dependabot[bot]
bb0eae5d7a Bump prettier from 2.8.0 to 2.8.1
Bumps [prettier](https://github.com/prettier/prettier) from 2.8.0 to 2.8.1.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.8.0...2.8.1)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-19 08:06:06 +00:00
dependabot[bot]
0beb2c6adc Bump eslint from 8.29.0 to 8.30.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.29.0 to 8.30.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.29.0...v8.30.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-19 08:05:58 +00:00
Ariful Alam
16a8fccdd9 Merge pull request #259 from Ali-Fani/patch-1
Update Deploy Action
2022-12-19 11:29:02 +06:00
Ali Fani
51655eecf1 Update Deploy Action
The old version has a warning and won't deploy
`Warning: Input 'emit_telemetry' has been deprecated with message: Use of this input causes the action to do nothing. You should remove this build step from your workflow.`
2022-12-18 20:04:52 +03:30
Ariful Alam
cf39d43367 Merge pull request #254 from arifszn/dependabot/npm_and_yarn/axios-1.2.1
Bump axios from 1.2.0 to 1.2.1
2022-12-15 11:55:28 +06:00
Ariful Alam
87c18a2d1f Merge pull request #258 from arifszn/dependabot/npm_and_yarn/postcss-8.4.20
Bump postcss from 8.4.19 to 8.4.20
2022-12-15 11:55:15 +06:00
dependabot[bot]
d35e145106 Bump postcss from 8.4.19 to 8.4.20
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.19 to 8.4.20.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.19...8.4.20)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-12 08:06:20 +00:00
dependabot[bot]
6891901bc4 Bump react-hotjar from 5.2.0 to 5.3.0
Bumps [react-hotjar](https://github.com/abdalla/react-hotjar) from 5.2.0 to 5.3.0.
- [Release notes](https://github.com/abdalla/react-hotjar/releases)
- [Commits](https://github.com/abdalla/react-hotjar/commits)

---
updated-dependencies:
- dependency-name: react-hotjar
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-12 08:05:29 +00:00
dependabot[bot]
cb7c233787 Bump axios from 1.2.0 to 1.2.1
Bumps [axios](https://github.com/axios/axios) from 1.2.0 to 1.2.1.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.2.0...v1.2.1)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-12 08:05:15 +00:00
Ariful Alam
f3fdb85d7c Merge pull request #249 from arifszn/dependabot/npm_and_yarn/daisyui-2.42.1
Bump daisyui from 2.41.0 to 2.42.1
2022-12-09 20:53:11 +06:00
Ariful Alam
d05e70788d Merge pull request #250 from arifszn/dependabot/npm_and_yarn/axios-1.2.0
Bump axios from 1.1.3 to 1.2.0
2022-12-09 20:53:03 +06:00
Ariful Alam
f1b5243926 Merge pull request #248 from arifszn/dependabot/npm_and_yarn/prettier-2.8.0
Bump prettier from 2.7.1 to 2.8.0
2022-12-09 20:52:56 +06:00
Ariful Alam
2b619792de Merge pull request #251 from arifszn/dependabot/npm_and_yarn/eslint-8.29.0
Bump eslint from 8.28.0 to 8.29.0
2022-12-09 20:52:47 +06:00
Ariful Alam
89c85fe4e8 Merge pull request #253 from arifszn/certificate-section
Merge certification section
2022-12-09 20:52:29 +06:00
Ariful Alam
ae8cc57533 Refactor certification section 2022-12-09 20:51:21 +06:00
Ariful Alam
fcbc08d483 Update resume link 2022-12-09 20:23:54 +06:00
Ariful Alam
d1b2404e97 Merge pull request #234 from nathen418/add_certifications_section
Add a certificate section
2022-12-09 20:17:28 +06:00
Ariful Alam
b236d19940 Merge pull request #252 from arifszn/dependabot/npm_and_yarn/react-icons-4.7.1
Bump react-icons from 4.6.0 to 4.7.1
2022-12-05 14:44:19 +06:00
dependabot[bot]
26f4d47b17 Bump react-icons from 4.6.0 to 4.7.1
Bumps [react-icons](https://github.com/react-icons/react-icons) from 4.6.0 to 4.7.1.
- [Release notes](https://github.com/react-icons/react-icons/releases)
- [Commits](https://github.com/react-icons/react-icons/compare/v4.6.0...v4.7.1)

---
updated-dependencies:
- dependency-name: react-icons
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-05 08:06:17 +00:00
dependabot[bot]
9cc38ca819 Bump eslint from 8.28.0 to 8.29.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.28.0 to 8.29.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.28.0...v8.29.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-05 08:06:12 +00:00
dependabot[bot]
f8bae71a00 Bump axios from 1.1.3 to 1.2.0
Bumps [axios](https://github.com/axios/axios) from 1.1.3 to 1.2.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.1.3...v1.2.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-28 08:05:12 +00:00
dependabot[bot]
c07cd59c06 Bump daisyui from 2.41.0 to 2.42.1
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 2.41.0 to 2.42.1.
- [Release notes](https://github.com/saadeghi/daisyui/releases)
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/compare/v2.41.0...v2.42.1)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-28 08:04:55 +00:00
dependabot[bot]
d1bd06f05f Bump prettier from 2.7.1 to 2.8.0
Bumps [prettier](https://github.com/prettier/prettier) from 2.7.1 to 2.8.0.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.7.1...2.8.0)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-28 08:04:35 +00:00
Ariful Alam
078b79eb95 Merge pull request #245 from arifszn/dependabot/npm_and_yarn/eslint-8.28.0
Bump eslint from 8.27.0 to 8.28.0
2022-11-23 17:51:24 +06:00
dependabot[bot]
0c9051bf64 Bump eslint from 8.27.0 to 8.28.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.27.0 to 8.28.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.27.0...v8.28.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-23 11:51:18 +00:00
Ariful Alam
7ad35bb66b Merge pull request #243 from arifszn/dependabot/npm_and_yarn/vite-3.2.4
Bump vite from 3.2.3 to 3.2.4
2022-11-23 17:50:59 +06:00
Ariful Alam
ba45cabee5 Merge pull request #244 from arifszn/dependabot/npm_and_yarn/daisyui-2.41.0
Bump daisyui from 2.39.1 to 2.41.0
2022-11-23 17:50:48 +06:00
Ariful Alam
11f54ff5c7 Merge pull request #246 from arifszn/dependabot/npm_and_yarn/eslint-plugin-react-7.31.11
Bump eslint-plugin-react from 7.31.10 to 7.31.11
2022-11-23 17:50:28 +06:00
dependabot[bot]
d70f5408b3 Bump eslint-plugin-react from 7.31.10 to 7.31.11
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.31.10 to 7.31.11.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.31.10...v7.31.11)

---
updated-dependencies:
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-21 08:19:33 +00:00
dependabot[bot]
49bd7c1108 Bump daisyui from 2.39.1 to 2.41.0
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 2.39.1 to 2.41.0.
- [Release notes](https://github.com/saadeghi/daisyui/releases)
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/commits)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-21 08:19:04 +00:00
dependabot[bot]
c519cbc0c9 Bump vite from 3.2.3 to 3.2.4
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 3.2.3 to 3.2.4.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v3.2.4/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v3.2.4/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-21 08:18:55 +00:00
Ariful Alam
79a9e0704a Update README.md 2022-11-16 13:51:41 +06:00
Ariful Alam
6805d6eac1 Merge pull request #240 from arifszn/dependabot/npm_and_yarn/postcss-8.4.19
Bump postcss from 8.4.18 to 8.4.19
2022-11-14 17:19:48 +06:00
Ariful Alam
dda3e18544 Merge pull request #236 from arifszn/dependabot/npm_and_yarn/eslint-8.27.0
Bump eslint from 8.26.0 to 8.27.0
2022-11-14 17:19:41 +06:00
Ariful Alam
3cbea96846 Merge pull request #241 from arifszn/dependabot/npm_and_yarn/daisyui-2.39.1
Bump daisyui from 2.37.0 to 2.39.1
2022-11-14 17:19:33 +06:00
Ariful Alam
6854a7b80c Merge pull request #242 from arifszn/dependabot/npm_and_yarn/tailwindcss-3.2.4
Bump tailwindcss from 3.2.1 to 3.2.4
2022-11-14 17:19:23 +06:00
Ariful Alam
438ba16020 Merge pull request #239 from arifszn/dependabot/npm_and_yarn/vite-3.2.3
Bump vite from 3.2.2 to 3.2.3
2022-11-14 15:30:18 +06:00
dependabot[bot]
91c3a36f1e Bump tailwindcss from 3.2.1 to 3.2.4
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.2.1 to 3.2.4.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.2.1...v3.2.4)

---
updated-dependencies:
- dependency-name: tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-14 08:08:13 +00:00
dependabot[bot]
23732a7c16 Bump daisyui from 2.37.0 to 2.39.1
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 2.37.0 to 2.39.1.
- [Release notes](https://github.com/saadeghi/daisyui/releases)
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/compare/v2.37.0...v2.39.1)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-14 08:07:53 +00:00
dependabot[bot]
697ca9f179 Bump postcss from 8.4.18 to 8.4.19
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.18 to 8.4.19.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.18...8.4.19)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-14 08:07:35 +00:00
dependabot[bot]
6faf857173 Bump vite from 3.2.2 to 3.2.3
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 3.2.2 to 3.2.3.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v3.2.3/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-14 08:07:33 +00:00
Ariful Alam
dd34d0155c Merge pull request #230 from arifszn/dependabot/npm_and_yarn/vitejs/plugin-react-2.2.0
Bump @vitejs/plugin-react from 2.1.0 to 2.2.0
2022-11-07 16:21:48 +06:00
dependabot[bot]
ed2e832599 Bump eslint from 8.26.0 to 8.27.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.26.0 to 8.27.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.26.0...v8.27.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-07 08:04:07 +00:00
Nate Goldsborough
8d4462c700 Add cert section to README.md 2022-11-04 18:49:15 -05:00
Nate Goldsborough
2619676c6e add certLink to certification 2022-11-04 13:45:27 -05:00
Ariful Alam
194503f386 Bump version to 2.1.0 🚀 2022-11-01 13:05:02 +06:00
Ariful Alam
57933cceb8 Merge pull request #235 from arifszn/dependencies
Update dependencies
2022-11-01 13:02:02 +06:00
Ariful Alam
1baf8bd460 Update dependencies 2022-11-01 13:00:49 +06:00
Ariful Alam
4edb171236 Merge pull request #232 from arifszn/dependabot/npm_and_yarn/vite-3.2.1
Bump vite from 3.1.8 to 3.2.1
2022-11-01 12:01:52 +06:00
Nate Goldsborough
9e34239877 Adds a Certifications section 2022-11-01 00:36:23 -05:00
dependabot[bot]
9d8a5ab51b Bump vite from 3.1.8 to 3.2.1
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 3.1.8 to 3.2.1.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v3.2.1/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-31 08:25:25 +00:00
dependabot[bot]
e895b2e8f3 Bump @vitejs/plugin-react from 2.1.0 to 2.2.0
Bumps [@vitejs/plugin-react](https://github.com/vitejs/vite/tree/HEAD/packages/plugin-react) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v2.2.0/packages/plugin-react)

---
updated-dependencies:
- dependency-name: "@vitejs/plugin-react"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-31 08:25:08 +00:00
Ariful Alam
cdb3542844 Merge pull request #227 from knittl/226-social-stackexchange
Allow users to link their Stack Overflow profile #226
2022-10-31 11:52:03 +06:00
Ariful Alam
a8abc23735 Merge pull request #228 from knittl/198-eslint-endofline-auto
Allow CRLF when linting #198
2022-10-29 14:16:54 +06:00
Daniel Knittl-Frank
fe6974d58e Allow CRLF when linting #198 2022-10-27 18:47:30 +02:00
Daniel Knittl-Frank
939ecb6112 Document Stack Overflow social link #226 2022-10-27 14:14:24 +02:00
Daniel Knittl-Frank
8498ad8ada Allow linking Stack Overflow account/profile #226 2022-10-27 12:37:56 +02:00
Ariful Alam
b52c9b80a4 Update contributing guide 2022-10-27 16:00:17 +06:00
Ariful Alam
5ca5cff5d2 Merge pull request #224 from knittl/221-github-workflows-cache-v3
Upgrade GitHub action/cache to v3 #221
2022-10-26 14:56:07 +06:00
Daniel Knittl-Frank
c06a0929be Upgrade GitHub action/cache to v3 #221 2022-10-26 10:27:07 +02:00
Ariful Alam
18afaccd24 Merge pull request #223 from arifszn/meta-tags-empty-name
Handle empty name in meta tags
2022-10-25 18:08:31 +06:00
Ariful Alam
89e5c29d80 Handle empty name in meta tags 2022-10-25 18:07:06 +06:00
Ariful Alam
20cc39d7ce Merge pull request #220 from Revortni/hide-if-no-public-repo
Hide project section if no public github repo available for user
2022-10-25 17:37:30 +06:00
Your Name~
e4f06638f9 Hide project section if no public github repo available for user 2022-10-25 16:50:46 +05:45
Ariful Alam
7349310873 Decrease opacity of resume download button 2022-10-24 18:57:25 +06:00
Ariful Alam
dc3724eb2c Merge pull request #217 from arifszn/216-bg-color
Tweak background color
2022-10-24 15:34:25 +06:00
Ariful Alam
b69f052c54 Set default theme to business 2022-10-24 15:30:56 +06:00
Ariful Alam
c9b2c46495 Change bg color of projects and blog section 2022-10-24 15:18:47 +06:00
Ariful Alam
ab035d13e5 Change background color of the body 2022-10-24 15:02:47 +06:00
Ariful Alam
17ff018f87 Merge pull request #214 from arifszn/dependabot/npm_and_yarn/eslint-8.26.0
Bump eslint from 8.25.0 to 8.26.0
2022-10-24 14:41:25 +06:00
Ariful Alam
17abae3915 Merge pull request #213 from arifszn/dependabot/npm_and_yarn/daisyui-2.33.0
Bump daisyui from 2.31.0 to 2.33.0
2022-10-24 14:41:19 +06:00
Ariful Alam
b3ab995397 Merge pull request #215 from arifszn/dependabot/npm_and_yarn/tailwindcss-3.2.1
Bump tailwindcss from 3.2.0 to 3.2.1
2022-10-24 14:41:13 +06:00
dependabot[bot]
5d3eacb694 Bump tailwindcss from 3.2.0 to 3.2.1
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.2.0 to 3.2.1.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.2.0...v3.2.1)

---
updated-dependencies:
- dependency-name: tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-24 08:32:56 +00:00
dependabot[bot]
6f1c0db559 Bump eslint from 8.25.0 to 8.26.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.25.0 to 8.26.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.25.0...v8.26.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-24 08:32:45 +00:00
dependabot[bot]
1c320a4e82 Bump daisyui from 2.31.0 to 2.33.0
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 2.31.0 to 2.33.0.
- [Release notes](https://github.com/saadeghi/daisyui/releases)
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/commits)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-24 08:32:26 +00:00
Ariful Alam
de44eb7a48 Merge pull request #210 from arifszn/dependabot/npm_and_yarn/tailwindcss-3.2.0
Bump tailwindcss from 3.1.8 to 3.2.0
2022-10-23 12:17:35 +06:00
Ariful Alam
af9b0ea531 Merge pull request #212 from arifszn/201-upgrade-actions-configure-pages
Upgrade `actions/configure-pages` to v2
2022-10-23 12:11:08 +06:00
Ariful Alam
c64cd57a95 Upgrade actions/configure-pages to v2 2022-10-23 12:07:58 +06:00
Ariful Alam
76de845b46 Merge pull request #209 from arifszn/dependabot/npm_and_yarn/react-hotjar-5.2.0
Bump react-hotjar from 5.1.0 to 5.2.0
2022-10-20 21:48:34 +06:00
dependabot[bot]
c03487cb5b Bump tailwindcss from 3.1.8 to 3.2.0
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.1.8 to 3.2.0.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.1.8...v3.2.0)

---
updated-dependencies:
- dependency-name: tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-20 15:47:35 +00:00
dependabot[bot]
f30a588abc Bump react-hotjar from 5.1.0 to 5.2.0
Bumps [react-hotjar](https://github.com/abdalla/react-hotjar) from 5.1.0 to 5.2.0.
- [Release notes](https://github.com/abdalla/react-hotjar/releases)
- [Commits](https://github.com/abdalla/react-hotjar/compare/v5.1.0...v5.2.0)

---
updated-dependencies:
- dependency-name: react-hotjar
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-20 15:47:25 +00:00
Ariful Alam
569e73859d Update README.md 2022-10-19 13:54:04 +06:00
Ariful Alam
caf2d55af8 Merge pull request #191 from arifszn/dependabot/npm_and_yarn/eslint-8.25.0
Bump eslint from 8.24.0 to 8.25.0
2022-10-19 13:00:10 +06:00
Ariful Alam
36d8c0ac01 Merge pull request #204 from arifszn/dependabot/npm_and_yarn/eslint-plugin-react-7.31.10
Bump eslint-plugin-react from 7.31.8 to 7.31.10
2022-10-19 13:00:00 +06:00
dependabot[bot]
b23e4956e6 Bump eslint from 8.24.0 to 8.25.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.24.0 to 8.25.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.24.0...v8.25.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-19 06:58:44 +00:00
Ariful Alam
6e0dac1050 Merge pull request #208 from arifszn/dependabot/npm_and_yarn/react-icons-4.6.0
Bump react-icons from 4.4.0 to 4.6.0
2022-10-19 12:58:19 +06:00
Ariful Alam
98678e7a1c Merge pull request #205 from arifszn/dependabot/npm_and_yarn/postcss-8.4.18
Bump postcss from 8.4.16 to 8.4.18
2022-10-19 12:57:52 +06:00
dependabot[bot]
ffa7f99109 Bump postcss from 8.4.16 to 8.4.18
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.16 to 8.4.18.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.16...8.4.18)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-19 06:57:46 +00:00
Ariful Alam
c81123c804 Merge pull request #202 from arifszn/dependabot/npm_and_yarn/axios-1.1.3
Bump axios from 0.27.2 to 1.1.3
2022-10-19 12:57:20 +06:00
dependabot[bot]
b13209b956 Bump react-icons from 4.4.0 to 4.6.0
Bumps [react-icons](https://github.com/react-icons/react-icons) from 4.4.0 to 4.6.0.
- [Release notes](https://github.com/react-icons/react-icons/releases)
- [Commits](https://github.com/react-icons/react-icons/compare/v4.4.0...v4.6.0)

---
updated-dependencies:
- dependency-name: react-icons
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-19 06:57:08 +00:00
Ariful Alam
afa89fca4f Merge pull request #203 from arifszn/dependabot/npm_and_yarn/vite-3.1.8
Bump vite from 3.1.2 to 3.1.8
2022-10-19 12:56:38 +06:00
Ariful Alam
f013b314ff Merge pull request #206 from arifszn/config
Update config
2022-10-19 12:48:08 +06:00
Ariful Alam
fc10df86bf Update config 2022-10-19 12:41:34 +06:00
Ariful Alam
84a109a31f Change resume button style 2022-10-19 12:25:52 +06:00
Ariful Alam
486faffb0b Remove style from company link 2022-10-19 12:11:47 +06:00
Ariful Alam
110286622d Update error message for 404 error 2022-10-19 12:08:21 +06:00
Ariful Alam
5fceae602d Merge pull request #196 from jsvigneshkanna/main
Add company link in experience section
2022-10-19 12:04:05 +06:00
dependabot[bot]
e42f4a7b08 Bump eslint-plugin-react from 7.31.8 to 7.31.10
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.31.8 to 7.31.10.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.31.8...v7.31.10)

---
updated-dependencies:
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-17 08:51:44 +00:00
dependabot[bot]
6927c5d425 Bump vite from 3.1.2 to 3.1.8
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 3.1.2 to 3.1.8.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v3.1.8/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v3.1.8/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-17 08:51:29 +00:00
dependabot[bot]
c9fce00077 Bump axios from 0.27.2 to 1.1.3
Bumps [axios](https://github.com/axios/axios) from 0.27.2 to 1.1.3.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.27.2...v1.1.3)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-17 08:51:17 +00:00
vigneshkanna
4430d982f4 readme prettier 2022-10-14 19:21:24 +05:30
vigneshkanna
39a97afb22 prettier issue solved 2022-10-14 18:06:57 +05:30
vigneshkanna
6b638f03ea readme updated 2022-10-11 18:26:44 +05:30
vigneshkanna
3e0af6dad2 experience company link added 2022-10-11 18:22:22 +05:30
Ariful Alam
83a254e687 Merge pull request #189 from whyang0808/Add-loading-indicator-to-download-resume-btn
Add loading indicator for Download Resume button
2022-10-11 17:25:25 +06:00
Yang Wei Hao
b42202d923 Update css based on suggestion
Co-authored-by: Ariful Alam <swazan.arif@gmail.com>
2022-10-11 18:31:26 +08:00
Yang Wei Hao
e6f678eacd Add loading indicator for Download Resume button 2022-10-09 18:12:30 +08:00
Ariful Alam
b6bccf904e Merge pull request #184 from arifszn/resume
Type definition for Resume feature
2022-10-03 16:07:12 +06:00
Ariful Alam
a7d7195487 Add type definition for Resume feature 2022-10-03 16:05:07 +06:00
Ariful Alam
a60fac9a95 Update README 2022-10-03 15:58:50 +06:00
Ariful Alam
a603e4236d Rename variable of resume file URL 2022-10-03 15:54:52 +06:00
Ariful Alam
1dec29a718 Merge pull request #179 from joanjeremiah/downloadResume
Add conditional download resume feature
2022-10-03 15:28:13 +06:00
Joan Jeremiah J
3f1b0ba513 prettier fix 2022-10-03 14:55:58 +05:30
Joan Jeremiah J
0a0cd6bae1 eslint fix 2022-10-03 14:29:01 +05:30
Joan Jeremiah J
9605a47a2a readme.md updated, suggested change 2022-10-02 22:09:10 +05:30
Joan Jeremiah J
29a75d06cd added conditional download resume feature 2022-10-02 17:29:59 +05:30
Ariful Alam
e20a1d7321 Merge pull request #178 from arifszn/dependabot/npm_and_yarn/eslint-8.24.0
Bump eslint from 8.23.1 to 8.24.0
2022-09-26 14:39:45 +06:00
dependabot[bot]
38bc0d0025 Bump eslint from 8.23.1 to 8.24.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.23.1 to 8.24.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.23.1...v8.24.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-26 08:24:09 +00:00
Ariful Alam
0d44af1148 Merge pull request #176 from arifszn/dependabot/npm_and_yarn/autoprefixer-10.4.12
Bump autoprefixer from 10.4.11 to 10.4.12
2022-09-23 10:49:37 +06:00
Ariful Alam
75e148e897 Merge pull request #175 from arifszn/dependabot/npm_and_yarn/daisyui-2.31.0
Bump daisyui from 2.28.0 to 2.31.0
2022-09-23 10:49:18 +06:00
dependabot[bot]
62062ae956 Bump autoprefixer from 10.4.11 to 10.4.12
Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.4.11 to 10.4.12.
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.11...10.4.12)

---
updated-dependencies:
- dependency-name: autoprefixer
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-23 04:48:41 +00:00
dependabot[bot]
97cdde0abd Bump daisyui from 2.28.0 to 2.31.0
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 2.28.0 to 2.31.0.
- [Release notes](https://github.com/saadeghi/daisyui/releases)
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/compare/v2.28.0...v2.31.0)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-23 04:48:25 +00:00
Ariful Alam
f1b3fbda47 Merge pull request #168 from arifszn/dependabot/npm_and_yarn/eslint-8.23.1
Bump eslint from 8.23.0 to 8.23.1
2022-09-23 10:46:39 +06:00
Ariful Alam
9c0bcdd973 Merge pull request #170 from arifszn/dependabot/npm_and_yarn/autoprefixer-10.4.11
Bump autoprefixer from 10.4.8 to 10.4.11
2022-09-23 10:46:31 +06:00
Ariful Alam
2cac4c5994 Merge pull request #172 from arifszn/dependabot/npm_and_yarn/vite-3.1.2
Bump vite from 3.1.0 to 3.1.2
2022-09-23 10:46:20 +06:00
Ariful Alam
27beccb1ee Merge pull request #173 from arifszn/dependabot/npm_and_yarn/daisyui-2.28.0
Bump daisyui from 2.25.0 to 2.28.0
2022-09-23 10:46:10 +06:00
Ariful Alam
05a807387f Update README.md 2022-09-23 10:46:00 +06:00
Ariful Alam
cccd7afce4 Merge pull request #171 from arifszn/dependabot/npm_and_yarn/date-fns-2.29.3
Bump date-fns from 2.29.2 to 2.29.3
2022-09-20 18:49:34 +06:00
dependabot[bot]
020129b523 Bump daisyui from 2.25.0 to 2.28.0
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 2.25.0 to 2.28.0.
- [Release notes](https://github.com/saadeghi/daisyui/releases)
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/compare/v2.25.0...v2.28.0)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-19 08:40:27 +00:00
dependabot[bot]
e0c242b523 Bump vite from 3.1.0 to 3.1.2
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 3.1.0 to 3.1.2.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v3.1.2/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-19 08:40:13 +00:00
dependabot[bot]
05416767f8 Bump date-fns from 2.29.2 to 2.29.3
Bumps [date-fns](https://github.com/date-fns/date-fns) from 2.29.2 to 2.29.3.
- [Release notes](https://github.com/date-fns/date-fns/releases)
- [Changelog](https://github.com/date-fns/date-fns/blob/v2.29.3/CHANGELOG.md)
- [Commits](https://github.com/date-fns/date-fns/compare/v2.29.2...v2.29.3)

---
updated-dependencies:
- dependency-name: date-fns
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-19 08:39:53 +00:00
dependabot[bot]
12b6091d34 Bump autoprefixer from 10.4.8 to 10.4.11
Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.4.8 to 10.4.11.
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.8...10.4.11)

---
updated-dependencies:
- dependency-name: autoprefixer
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-19 08:39:38 +00:00
dependabot[bot]
c2167f870a Bump eslint from 8.23.0 to 8.23.1
Bumps [eslint](https://github.com/eslint/eslint) from 8.23.0 to 8.23.1.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.23.0...v8.23.1)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-12 06:25:42 +00:00
Ariful Alam
fb7ffe269e Merge pull request #165 from arifszn/dependabot/npm_and_yarn/eslint-plugin-react-7.31.8
Bump eslint-plugin-react from 7.31.7 to 7.31.8
2022-09-09 13:15:35 +06:00
dependabot[bot]
de448dcc3f Bump eslint-plugin-react from 7.31.7 to 7.31.8
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.31.7 to 7.31.8.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.31.7...v7.31.8)

---
updated-dependencies:
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-09 07:06:06 +00:00
Ariful Alam
b803ef88d0 Update README.md 2022-09-09 13:03:32 +06:00
Ariful Alam
d8450294ff Merge pull request #155 from arifszn/dependabot/npm_and_yarn/vitejs/plugin-react-2.1.0
Bump @vitejs/plugin-react from 2.0.0 to 2.1.0
2022-09-09 01:48:01 +06:00
Ariful Alam
d7c1b574a3 Update README.md 2022-09-09 01:47:39 +06:00
Ariful Alam
88bed3b701 Merge pull request #148 from arifszn/dependabot/npm_and_yarn/eslint-8.23.0
Bump eslint from 8.21.0 to 8.23.0
2022-09-09 01:01:08 +06:00
Ariful Alam
d2d8d6fe43 Bump version to 2.0.9 🚀 2022-09-09 01:00:24 +06:00
Ariful Alam
2e0603d52b Merge pull request #164 from arifszn/133-local-setup
Add guide for setting up locally
2022-09-09 00:04:40 +06:00
Ariful Alam
e725ef9b5c Add guide for setting up locally 2022-09-09 00:03:37 +06:00
Ariful Alam
5dc71954a4 Merge pull request #163 from arifszn/142-avatar-ring
Control avatar ring visibility
2022-09-08 22:04:04 +06:00
Ariful Alam
f25f5bf2d5 Control avatar ring visibility 2022-09-08 21:46:09 +06:00
Ariful Alam
c375ec521f Merge pull request #162 from arifszn/161-MIT-license
Add MIT License
2022-09-08 21:19:36 +06:00
Ariful Alam
67c881eb05 Add MIT License 2022-09-08 21:17:28 +06:00
Ariful Alam
21eaa93a72 Merge pull request #149 from arifszn/dependabot/npm_and_yarn/react-hotjar-5.1.0
Bump react-hotjar from 5.0.0 to 5.1.0
2022-09-08 13:43:48 +06:00
Ariful Alam
69d636e3bb Merge pull request #157 from arifszn/dependabot/npm_and_yarn/daisyui-2.25.0
Bump daisyui from 2.24.2 to 2.25.0
2022-09-08 13:34:31 +06:00
dependabot[bot]
81ec352c4a Bump eslint from 8.21.0 to 8.23.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.21.0 to 8.23.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.21.0...v8.23.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-08 06:55:15 +00:00
Ariful Alam
8752d18408 Merge pull request #159 from arifszn/dependabot/npm_and_yarn/vite-3.1.0
Bump vite from 3.0.9 to 3.1.0
2022-09-08 12:54:27 +06:00
dependabot[bot]
2e6c69cdbc Bump daisyui from 2.24.2 to 2.25.0
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 2.24.2 to 2.25.0.
- [Release notes](https://github.com/saadeghi/daisyui/releases)
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/compare/v2.24.2...v2.25.0)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-06 09:18:03 +00:00
dependabot[bot]
3d170a9a31 Bump vite from 3.0.9 to 3.1.0
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 3.0.9 to 3.1.0.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/create-vite@3.1.0/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-06 09:17:56 +00:00
Ariful Alam
feba26f3aa Merge pull request #158 from arifszn/dependabot/npm_and_yarn/eslint-plugin-react-7.31.7
Bump eslint-plugin-react from 7.30.1 to 7.31.7
2022-09-06 15:17:18 +06:00
dependabot[bot]
a14318f776 Bump eslint-plugin-react from 7.30.1 to 7.31.7
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.30.1 to 7.31.7.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.30.1...v7.31.7)

---
updated-dependencies:
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-06 09:15:34 +00:00
Ariful Alam
247445b63c Merge pull request #156 from arifszn/dependabot/npm_and_yarn/daisyui-2.24.2
Bump daisyui from 2.24.0 to 2.24.2
2022-09-06 15:14:47 +06:00
dependabot[bot]
5628f76449 Bump daisyui from 2.24.0 to 2.24.2
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 2.24.0 to 2.24.2.
- [Release notes](https://github.com/saadeghi/daisyui/releases)
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/compare/v2.24.0...v2.24.2)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-05 16:52:30 +00:00
Ariful Alam
742df933a7 Merge pull request #154 from arifszn/dependabot/npm_and_yarn/arifszn/blog-js-2.0.2
Bump @arifszn/blog-js from 2.0.1 to 2.0.2
2022-09-05 21:58:37 +06:00
dependabot[bot]
e11be358f9 Bump @vitejs/plugin-react from 2.0.0 to 2.1.0
Bumps [@vitejs/plugin-react](https://github.com/vitejs/vite/tree/HEAD/packages/plugin-react) from 2.0.0 to 2.1.0.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v2.1.0/packages/plugin-react)

---
updated-dependencies:
- dependency-name: "@vitejs/plugin-react"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-05 14:51:40 +00:00
dependabot[bot]
771f1fe0d4 Bump @arifszn/blog-js from 2.0.1 to 2.0.2
Bumps [@arifszn/blog-js](https://github.com/arifszn/blog.js) from 2.0.1 to 2.0.2.
- [Release notes](https://github.com/arifszn/blog.js/releases)
- [Commits](https://github.com/arifszn/blog.js/commits/v2.0.2)

---
updated-dependencies:
- dependency-name: "@arifszn/blog-js"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-05 14:51:07 +00:00
Ariful Alam
5b448adc76 Merge pull request #145 from arifszn/dependabot/npm_and_yarn/vite-3.0.9
Bump vite from 3.0.7 to 3.0.9
2022-09-05 18:29:20 +06:00
dependabot[bot]
ea424fe9e4 Bump react-hotjar from 5.0.0 to 5.1.0
Bumps [react-hotjar](https://github.com/abdalla/react-hotjar) from 5.0.0 to 5.1.0.
- [Release notes](https://github.com/abdalla/react-hotjar/releases)
- [Commits](https://github.com/abdalla/react-hotjar/compare/v5.0.0...v5.1.0)

---
updated-dependencies:
- dependency-name: react-hotjar
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-29 08:48:41 +00:00
Ariful Alam
50ed6b90ba Merge pull request #146 from arifszn/dependabot/npm_and_yarn/date-fns-2.29.2
Bump date-fns from 2.29.1 to 2.29.2
2022-08-29 00:18:13 +06:00
Ariful Alam
b96298e702 Cache dependencies 2022-08-27 19:45:39 +06:00
dependabot[bot]
c23cbc6c8e Bump date-fns from 2.29.1 to 2.29.2
Bumps [date-fns](https://github.com/date-fns/date-fns) from 2.29.1 to 2.29.2.
- [Release notes](https://github.com/date-fns/date-fns/releases)
- [Changelog](https://github.com/date-fns/date-fns/blob/v2.29.2/CHANGELOG.md)
- [Commits](https://github.com/date-fns/date-fns/compare/v2.29.1...v2.29.2)

---
updated-dependencies:
- dependency-name: date-fns
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-22 08:28:35 +00:00
dependabot[bot]
1ec9274f4d Bump vite from 3.0.7 to 3.0.9
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 3.0.7 to 3.0.9.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v3.0.9/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-22 08:28:24 +00:00
Ariful Alam
f97d1544d5 Merge pull request #144 from arifszn/143-tailwind-config
Rename tailwind.config file
2022-08-21 17:04:37 +06:00
Ariful Alam
970044b7f1 Rename tailwind.config file 2022-08-21 17:01:42 +06:00
Ariful Alam
a65bbf2937 Merge pull request #141 from arifszn/139-custom-gitHub-actions-workflow
Deploy with custom GitHub Actions workflow
2022-08-20 16:11:37 +06:00
Ariful Alam
ebdc7d533d Update deployment guide 2022-08-20 16:10:24 +06:00
Ariful Alam
5fe64aecb3 Deploy with custom GitHub Actions workflow 2022-08-20 15:53:55 +06:00
Ariful Alam
ec3cdf4f68 Merge pull request #136 from arifszn/dependabot/npm_and_yarn/vite-3.0.7
Bump vite from 3.0.4 to 3.0.7
2022-08-16 11:38:20 +06:00
Ariful Alam
80ff09b295 Merge pull request #138 from arifszn/dependabot/npm_and_yarn/daisyui-2.24.0
Bump daisyui from 2.22.0 to 2.24.0
2022-08-15 14:42:20 +06:00
dependabot[bot]
ca57b1bfa2 Bump daisyui from 2.22.0 to 2.24.0
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 2.22.0 to 2.24.0.
- [Release notes](https://github.com/saadeghi/daisyui/releases)
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/commits)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-15 08:23:19 +00:00
dependabot[bot]
4abc13ad71 Bump vite from 3.0.4 to 3.0.7
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 3.0.4 to 3.0.7.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v3.0.7/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-15 08:23:00 +00:00
Ariful Alam
96cc63e911 Merge pull request #130 from arifszn/dependabot/npm_and_yarn/postcss-8.4.16
Bump postcss from 8.4.14 to 8.4.16
2022-08-08 20:14:26 +06:00
dependabot[bot]
145985fb54 Bump postcss from 8.4.14 to 8.4.16
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.14 to 8.4.16.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.14...8.4.16)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-08 08:30:31 +00:00
Ariful Alam
023422d318 Merge pull request #129 from arifszn/dependabot/npm_and_yarn/tailwindcss-3.1.8
Bump tailwindcss from 3.1.7 to 3.1.8
2022-08-06 22:26:15 +06:00
Ariful Alam
73da16ed19 Merge pull request #128 from arifszn/dependabot/npm_and_yarn/daisyui-2.22.0
Bump daisyui from 2.20.0 to 2.22.0
2022-08-06 22:16:20 +06:00
dependabot[bot]
09a0eebb16 Bump tailwindcss from 3.1.7 to 3.1.8
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.1.7 to 3.1.8.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.1.7...v3.1.8)

---
updated-dependencies:
- dependency-name: tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-06 16:08:38 +00:00
dependabot[bot]
2c1219bcda Bump daisyui from 2.20.0 to 2.22.0
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 2.20.0 to 2.22.0.
- [Release notes](https://github.com/saadeghi/daisyui/releases)
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/commits)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-06 16:08:16 +00:00
Ariful Alam
57b6a90fab Update guide 2022-08-06 10:34:15 +06:00
Ariful Alam
fb3852b3c7 Merge pull request #125 from arifszn/124-company-mention-with-space-is-not-working-as-link
Trim company name in details section
2022-08-03 18:39:38 +06:00
Ariful Alam
49509840aa Trim company name in details section 2022-08-03 18:37:43 +06:00
Ariful Alam
3385e4f260 Merge pull request #121 from arifszn/dependabot/npm_and_yarn/autoprefixer-10.4.8
Bump autoprefixer from 10.4.7 to 10.4.8
2022-08-02 09:24:25 +06:00
Ariful Alam
e967b89ca1 Merge pull request #119 from arifszn/dependabot/npm_and_yarn/eslint-8.21.0
Bump eslint from 8.20.0 to 8.21.0
2022-08-02 09:23:58 +06:00
Ariful Alam
b2106dd441 Merge pull request #122 from arifszn/dependabot/npm_and_yarn/tailwindcss-3.1.7
Bump tailwindcss from 3.1.6 to 3.1.7
2022-08-01 23:11:30 +06:00
Ariful Alam
9bf3d3b245 Merge pull request #120 from arifszn/dependabot/npm_and_yarn/vite-3.0.4
Bump vite from 3.0.2 to 3.0.4
2022-08-01 22:52:48 +06:00
dependabot[bot]
e1a1d1a0bf Bump tailwindcss from 3.1.6 to 3.1.7
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.1.6 to 3.1.7.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.1.6...v3.1.7)

---
updated-dependencies:
- dependency-name: tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 08:23:09 +00:00
dependabot[bot]
73f38a3f0e Bump autoprefixer from 10.4.7 to 10.4.8
Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.4.7 to 10.4.8.
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.7...10.4.8)

---
updated-dependencies:
- dependency-name: autoprefixer
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 08:23:01 +00:00
dependabot[bot]
f36ab50a30 Bump vite from 3.0.2 to 3.0.4
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 3.0.2 to 3.0.4.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v3.0.4/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 08:22:49 +00:00
dependabot[bot]
cd557c0e52 Bump eslint from 8.20.0 to 8.21.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.20.0 to 8.21.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.20.0...v8.21.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 08:22:36 +00:00
Ariful Alam
1713b6d82b Update README.md 2022-07-25 21:50:04 +06:00
Ariful Alam
92a49a6302 Merge pull request #118 from arifszn/117-package-title-is-hidden-if-system-has-dark-mode-enabled-in-next
Better dark mode support
2022-07-25 21:45:50 +06:00
Ariful Alam
7f9d0d9514 Better dark mode support 2022-07-25 21:41:02 +06:00
Ariful Alam
692c8ba8c7 Publish v2.0.8 🚀 2022-07-25 19:37:23 +06:00
Ariful Alam
ac7356a222 Merge pull request #109 from arifszn/dependabot/npm_and_yarn/date-fns-2.29.1
Bump date-fns from 2.28.0 to 2.29.1
2022-07-25 19:20:19 +06:00
Ariful Alam
fe5fec779e Merge pull request #111 from arifszn/dependabot/npm_and_yarn/daisyui-2.20.0
Bump daisyui from 2.19.0 to 2.20.0
2022-07-25 19:19:59 +06:00
dependabot[bot]
eb4d65b44a Bump daisyui from 2.19.0 to 2.20.0
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 2.19.0 to 2.20.0.
- [Release notes](https://github.com/saadeghi/daisyui/releases)
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/commits)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-25 13:15:09 +00:00
Ariful Alam
b6c7a2ede0 Merge pull request #110 from arifszn/dependabot/npm_and_yarn/vite-3.0.2
Bump vite from 3.0.1 to 3.0.2
2022-07-25 19:14:27 +06:00
Ariful Alam
91d4e799a4 Merge pull request #108 from arifszn/dependabot/npm_and_yarn/vitejs/plugin-react-2.0.0
Bump @vitejs/plugin-react from 1.3.2 to 2.0.0
2022-07-25 19:14:12 +06:00
Ariful Alam
e724ca8aca Merge pull request #116 from arifszn/115-add-skeleton-loader-in-footer
Add skeleton loader in footer
2022-07-25 19:13:46 +06:00
Ariful Alam
d87f8986ee Add skeleton loader in footer 2022-07-25 19:11:08 +06:00
Ariful Alam
0f9ceb0d98 Add medium to social link 2022-07-25 18:58:19 +06:00
Ariful Alam
b2429b359d Merge pull request #114 from arifszn/113-incorrect-linkedin-link
Fix incorrect social link in `sanitizeConfig`
2022-07-25 18:55:26 +06:00
Ariful Alam
cacd093f6f Fix incorrect social link in sanitizeConfig 2022-07-25 18:53:26 +06:00
dependabot[bot]
afc303a889 Bump vite from 3.0.1 to 3.0.2
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 3.0.1 to 3.0.2.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v3.0.2/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-25 08:23:49 +00:00
dependabot[bot]
4be3b67118 Bump date-fns from 2.28.0 to 2.29.1
Bumps [date-fns](https://github.com/date-fns/date-fns) from 2.28.0 to 2.29.1.
- [Release notes](https://github.com/date-fns/date-fns/releases)
- [Changelog](https://github.com/date-fns/date-fns/blob/master/CHANGELOG.md)
- [Commits](https://github.com/date-fns/date-fns/compare/v2.28.0...v2.29.1)

---
updated-dependencies:
- dependency-name: date-fns
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-25 08:23:36 +00:00
dependabot[bot]
143a16c410 Bump @vitejs/plugin-react from 1.3.2 to 2.0.0
Bumps [@vitejs/plugin-react](https://github.com/vitejs/vite/tree/HEAD/packages/plugin-react) from 1.3.2 to 2.0.0.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v2.0.0/packages/plugin-react)

---
updated-dependencies:
- dependency-name: "@vitejs/plugin-react"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-25 08:23:27 +00:00
Ariful Alam
dc8f1d68a9 Update badges 2022-07-18 20:59:35 +06:00
Ariful Alam
68d04646b3 Merge pull request #105 from arifszn/dependabot/npm_and_yarn/eslint-8.20.0
Bump eslint from 8.19.0 to 8.20.0
2022-07-18 19:39:03 +06:00
Ariful Alam
03e267fe99 Merge pull request #104 from arifszn/dependabot/npm_and_yarn/tailwindcss-3.1.6
Bump tailwindcss from 3.1.4 to 3.1.6
2022-07-18 19:38:12 +06:00
dependabot[bot]
1cc331be52 Bump tailwindcss from 3.1.4 to 3.1.6
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.1.4 to 3.1.6.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.1.4...v3.1.6)

---
updated-dependencies:
- dependency-name: tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-18 13:35:52 +00:00
Ariful Alam
fee3cebf54 Merge pull request #106 from arifszn/97-upgrade-vite-to-v3
Upgrade vite to `v3`
2022-07-18 19:35:06 +06:00
Ariful Alam
903af97cfe Upgrade vite to v3 2022-07-18 19:33:25 +06:00
Ariful Alam
b7c8b21999 Merge pull request #100 from arifszn/refactor
Cleanup codebase
2022-07-18 19:28:53 +06:00
dependabot[bot]
6fce517b0b Bump eslint from 8.19.0 to 8.20.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.19.0 to 8.20.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.19.0...v8.20.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-18 08:25:28 +00:00
Ariful Alam
dbdabc7b4a Cleanup codebase 2022-07-18 13:12:10 +06:00
Ariful Alam
66bd370f34 Refactor utils.jsx 2022-07-18 12:40:51 +06:00
Ariful Alam
caff2ce258 Rename isDarkishTheme helper 2022-07-18 12:13:23 +06:00
Ariful Alam
a4ad42f40d Merge pull request #99 from hasinhayder/main
Code Cleanup & Making code more readable
2022-07-18 12:00:18 +06:00
Hasin Hayder
4edef5df4b Code Cleanup & Making code more readable 2022-07-18 01:19:07 +06:00
Ariful Alam
9cab9f209b Update README.md 2022-07-17 01:40:27 +06:00
Ariful Alam
f4a1fff90f Merge branch 'main' of https://github.com/arifszn/gitprofile into main 2022-07-12 18:55:51 +06:00
Ariful Alam
ac00471cdc Remove unused favicon 2022-07-12 18:55:46 +06:00
Ariful Alam
d97c758629 Merge pull request #90 from arifszn/dependabot/npm_and_yarn/daisyui-2.19.0
Bump daisyui from 2.18.0 to 2.19.0
2022-07-11 20:26:37 +06:00
Ariful Alam
098e5cdd1e Merge pull request #92 from arifszn/dependabot/npm_and_yarn/vite-2.9.14
Bump vite from 2.9.9 to 2.9.14
2022-07-11 20:24:39 +06:00
Ariful Alam
8d4d8b219e Merge pull request #93 from arifszn/dependabot/npm_and_yarn/eslint-plugin-prettier-4.2.1
Bump eslint-plugin-prettier from 4.0.0 to 4.2.1
2022-07-11 20:16:57 +06:00
Ariful Alam
0805080cce Merge pull request #94 from arifszn/dependabot/npm_and_yarn/prettier-2.7.1
Bump prettier from 2.6.2 to 2.7.1
2022-07-11 19:59:51 +06:00
dependabot[bot]
2c60ff1ec9 Bump vite from 2.9.9 to 2.9.14
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 2.9.9 to 2.9.14.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v2.9.14/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v2.9.14/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-11 13:58:29 +00:00
dependabot[bot]
f115c763a2 Bump daisyui from 2.18.0 to 2.19.0
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 2.18.0 to 2.19.0.
- [Release notes](https://github.com/saadeghi/daisyui/releases)
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/commits)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-11 13:58:17 +00:00
Ariful Alam
e5aa0d516e Merge pull request #91 from arifszn/dependabot/npm_and_yarn/axios-0.27.2
Bump axios from 0.26.1 to 0.27.2
2022-07-11 19:57:28 +06:00
dependabot[bot]
1ae972acd3 Bump prettier from 2.6.2 to 2.7.1
Bumps [prettier](https://github.com/prettier/prettier) from 2.6.2 to 2.7.1.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.6.2...2.7.1)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-11 08:26:20 +00:00
dependabot[bot]
ded02858a8 Bump eslint-plugin-prettier from 4.0.0 to 4.2.1
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 4.0.0 to 4.2.1.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v4.0.0...v4.2.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-prettier
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-11 08:26:13 +00:00
dependabot[bot]
fb7b64c4e8 Bump axios from 0.26.1 to 0.27.2
Bumps [axios](https://github.com/axios/axios) from 0.26.1 to 0.27.2.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v0.27.2/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.26.1...v0.27.2)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-11 08:25:51 +00:00
Ariful Alam
8901157e01 Merge pull request #89 from golles/company-mention
When company is a mention, link it
2022-07-09 20:51:40 +06:00
golles
6944b2ca4d When company is a mention, link it 2022-07-09 11:27:28 +02:00
Ariful Alam
a8a56d67e4 Update README.md 2022-07-09 11:16:37 +06:00
Ariful Alam
04e14af71a Merge pull request #88 from golles/add_instagram
Add social: Instagram
2022-07-09 10:55:46 +06:00
golles
a4b296172e Onther place where I missed the new isntagram config 2022-07-08 19:46:39 +02:00
golles
e16f50b349 Use better fitting icon
Add new social to readme
2022-07-08 17:41:25 +02:00
golles
0c2b93ff85 Add social: Instagram 2022-07-07 22:42:10 +02:00
Ariful Alam
fb55338ea9 Add badges 2022-07-07 11:06:33 +06:00
Ariful Alam
c279dc9ac5 Merge pull request #87 from arifszn/dependabot/npm_and_yarn/react-icons-4.4.0
Bump react-icons from 4.3.1 to 4.4.0
2022-07-06 17:17:26 +06:00
Ariful Alam
6ef1a5fe9b Merge pull request #86 from arifszn/dependabot/npm_and_yarn/eslint-plugin-react-7.30.1
Bump eslint-plugin-react from 7.30.0 to 7.30.1
2022-07-06 17:17:12 +06:00
Ariful Alam
eccb38a29c Merge pull request #85 from arifszn/dependabot/npm_and_yarn/eslint-8.19.0
Bump eslint from 8.15.0 to 8.19.0
2022-07-06 17:16:59 +06:00
Ariful Alam
107ffae90d Merge pull request #84 from arifszn/dependabot/npm_and_yarn/tailwindcss-3.1.4
Bump tailwindcss from 3.0.24 to 3.1.4
2022-07-06 17:16:47 +06:00
Ariful Alam
56b5906e01 Merge pull request #83 from arifszn/dependabot/npm_and_yarn/daisyui-2.18.0
Bump daisyui from 2.15.0 to 2.18.0
2022-07-06 17:16:28 +06:00
dependabot[bot]
ed6396c2c2 Bump react-icons from 4.3.1 to 4.4.0
Bumps [react-icons](https://github.com/react-icons/react-icons) from 4.3.1 to 4.4.0.
- [Release notes](https://github.com/react-icons/react-icons/releases)
- [Commits](https://github.com/react-icons/react-icons/compare/v4.3.1...v4.4.0)

---
updated-dependencies:
- dependency-name: react-icons
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-06 11:13:43 +00:00
dependabot[bot]
f41fc775a9 Bump eslint-plugin-react from 7.30.0 to 7.30.1
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.30.0 to 7.30.1.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.30.0...v7.30.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-06 11:13:36 +00:00
dependabot[bot]
5e3fa7075a Bump eslint from 8.15.0 to 8.19.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.15.0 to 8.19.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.15.0...v8.19.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-06 11:13:25 +00:00
dependabot[bot]
21634afb62 Bump tailwindcss from 3.0.24 to 3.1.4
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.0.24 to 3.1.4.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.0.24...v3.1.4)

---
updated-dependencies:
- dependency-name: tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-06 11:13:14 +00:00
dependabot[bot]
5fcb803436 Bump daisyui from 2.15.0 to 2.18.0
Bumps [daisyui](https://github.com/saadeghi/daisyui) from 2.15.0 to 2.18.0.
- [Release notes](https://github.com/saadeghi/daisyui/releases)
- [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/saadeghi/daisyui/commits)

---
updated-dependencies:
- dependency-name: daisyui
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-06 11:13:05 +00:00
Ariful Alam
305044a8fc Merge pull request #82 from arifszn/81-create-dependabot-to-update-package-versions-automatically
Create dependabot.yml
2022-07-06 17:12:34 +06:00
Ariful Alam
dc80a9db9e Create dependabot.yml 2022-07-06 17:10:59 +06:00
Ariful Alam
e8d0d8eb28 Update README.md 2022-05-29 10:47:08 +06:00
Ariful Alam
efbd5f96fe Update gitprofile.config.js 2022-05-27 00:01:42 +06:00
Ariful Alam
630d9711ec Update README.md 2022-05-20 20:56:57 +06:00
Ariful Alam
647195f224 Publish version 2.0.7 🚀 2022-05-19 19:55:41 +06:00
Ariful Alam
be09c170b9 Update dependencies 2022-05-19 19:55:21 +06:00
Ariful Alam
6020ecf818 Add missing h-screen class 2022-05-19 19:54:10 +06:00
Ariful Alam
7cd1bd87fd Merge pull request #77 from arifszn/replace-moment
feat: replace moment with date-fns
2022-05-19 19:41:48 +06:00
Ariful Alam
0d6eef906f Publish version 2.0.6 🚀 2022-05-19 19:39:09 +06:00
Ariful Alam
6b3d089b4b Replace moment with date-fns 2022-05-19 19:38:55 +06:00
Ariful Alam
36097918fd Publish version 2.0.5 🚀 2022-05-14 21:18:27 +06:00
Ariful Alam
e5cc04ec57 Update README.md 2022-05-14 21:17:19 +06:00
Ariful Alam
b1fcdcf0c5 Merge pull request #73 from arifszn/71-failed-with-exit-code-128
build: apply explicit permissions
2022-05-14 04:45:15 +06:00
Ariful Alam
2b50dfcf6c Apply explicit permissions for contents 2022-05-14 04:44:09 +06:00
Ariful Alam
43b0bc91f0 Update gitprofile.config.js 2022-05-14 04:43:20 +06:00
Ariful Alam
6672d91d1c Remove step of workflow permission 2022-05-14 04:43:14 +06:00
Ariful Alam
aad79fa521 Update README.md 2022-05-11 13:13:21 +06:00
Ariful Alam
fb08deafd6 Merge pull request #72 from arifszn/docs
docs: update installation guide
2022-05-10 22:55:15 +06:00
Ariful Alam
7f73463863 Update installation guide 2022-05-10 22:54:19 +06:00
Ariful Alam
5983a95a9f Update gitprofile.config.js 2022-05-10 22:24:34 +06:00
Ariful Alam
ea9f8977b8 Fix typo 2022-05-10 21:31:31 +06:00
Ariful Alam
4b07170613 Merge pull request #68 from arifszn/card-shadow
feat: add shadow to project and blog cards
2022-04-24 14:48:38 +06:00
Ariful Alam
f6f38d908c Add shadow to project and blog cards 2022-04-24 14:46:48 +06:00
Ariful Alam
dcd1b56fe7 Merge pull request #67 from arifszn/gradient-direction
feat: change direction of gradient
2022-04-24 14:34:16 +06:00
Ariful Alam
166392a306 Change direction of gradient 2022-04-24 14:33:16 +06:00
Ariful Alam
5a4423e7fa Merge pull request #66 from arifszn/card-design
feat: display empty blog state
2022-04-24 14:22:15 +06:00
Ariful Alam
4800b0e1ae Bump version to 2.0.4 🚀 2022-04-24 14:19:51 +06:00
Ariful Alam
ff3d0f1abd Use gradient card instead of glass 2022-04-24 14:19:41 +06:00
Ariful Alam
035eb95723 Display empty blog state 2022-04-24 14:16:49 +06:00
Ariful Alam
0f3becb8f9 Merge pull request #63 from arifszn/scripts
build: update prettier script
2022-04-23 19:45:35 +06:00
Ariful Alam
9486c2b3ef Bump version to 2.0.3 🚀 2022-04-23 19:43:44 +06:00
Ariful Alam
bbb8911495 Update prettier script 2022-04-23 19:43:26 +06:00
Ariful Alam
f0849a1bbb Merge pull request #62 from arifszn/61-update-to-react-18
build: update to react 18
2022-04-23 19:35:39 +06:00
Ariful Alam
bbb7f41dd3 Update react to 18 2022-04-23 19:31:41 +06:00
Ariful Alam
d7194ecada Update dependencies 2022-04-23 17:45:52 +06:00
Ariful Alam
4b5ec65fe7 Merge pull request #59 from arifszn/update-dependencies
feat: use `blog-js` for fetching blog posts
2022-03-30 21:44:45 +06:00
Ariful Alam
36f9487eca Bump version to 2.0.2 🚀 2022-03-30 21:37:53 +06:00
Ariful Alam
5731e64819 Update README.md 2022-03-30 21:37:16 +06:00
Ariful Alam
66d680e2ec Rename dev.to 2022-03-30 21:30:42 +06:00
Ariful Alam
6f64574f5c Use blog-js for fetching blog posts 2022-03-30 21:18:57 +06:00
Ariful Alam
28abcd0570 Fix typo 2022-03-29 00:47:34 +06:00
Ariful Alam
aef59d1d68 Merge pull request #58 from arifszn/57-make-experience-and-education-sections-more-visible
feat: make experience and education sections more visible
2022-03-28 20:33:39 +06:00
Ariful Alam
5345d2af3d Bump version to 2.0.1 🚀 2022-03-28 20:31:47 +06:00
Ariful Alam
df281242e1 Make experience and education sections more visible 2022-03-28 20:31:02 +06:00
Ariful Alam
fabb4f67a7 Merge pull request #56 from arifszn/library
feat: npm package
2022-03-28 20:07:25 +06:00
Ariful Alam
665ee17be9 Change package link 2022-03-28 20:05:27 +06:00
Ariful Alam
296c2adc46 Create .npmignore 2022-03-28 19:55:58 +06:00
Ariful Alam
fb8f5e3bec Update dependencies 2022-03-28 19:49:01 +06:00
Ariful Alam
19955a44d0 Update README.md 2022-03-28 19:33:15 +06:00
Ariful Alam
7d9b1d9606 Support SSR 2022-03-28 18:49:35 +06:00
Ariful Alam
48f4920c1d Update gitprofile logo 2022-03-28 18:46:10 +06:00
Ariful Alam
8dbe879711 Update README.md 2022-03-27 21:47:11 +06:00
Ariful Alam
cdc66ea70b Change default blog posts limit to 5 2022-03-27 18:57:40 +06:00
Ariful Alam
851f761104 Update comment 2022-03-27 18:51:31 +06:00
Ariful Alam
6c2ca85bc9 Update README.md 2022-03-27 18:17:10 +06:00
Ariful Alam
54ff094b64 Add type definition for custom theme 2022-03-27 17:57:02 +06:00
Ariful Alam
e46529b25b Update footer 2022-03-27 14:55:25 +06:00
Ariful Alam
21f8b0633d Update Contributing 2022-03-27 13:52:56 +06:00
Ariful Alam
37618822b7 Fix function name 2022-03-27 02:10:01 +06:00
Ariful Alam
d00fa61b08 Remove custom theme node to support in package 2022-03-27 02:08:02 +06:00
Ariful Alam
f75eae4547 Sanitize config props 2022-03-27 01:56:05 +06:00
Ariful Alam
2743dee9aa Add type definition for all props 2022-03-26 18:26:04 +06:00
Ariful Alam
4cb107e168 Rename themeConfig.default to themeConfig.defaultTheme 2022-03-26 18:23:09 +06:00
Ariful Alam
59a9a2fac4 Add type definitions for social link 2022-03-26 18:09:04 +06:00
Ariful Alam
263984b0a4 Make optional configs 2022-03-26 18:07:14 +06:00
Ariful Alam
7794d543d3 Update files option for npm publish 2022-03-26 15:02:26 +06:00
Ariful Alam
2623da910b Add custom postcss config 2022-03-26 13:51:35 +06:00
Ariful Alam
277fe5b01c Rename package.config.js to library.config.js 2022-03-26 13:39:29 +06:00
Ariful Alam
9f24ddbe46 Add type definitions 2022-03-26 13:30:43 +06:00
Ariful Alam
8dedc09ea8 Update error page 2022-03-25 23:29:06 +06:00
Ariful Alam
82eb282e17 Pass config as props 2022-03-25 22:45:11 +06:00
Ariful Alam
c6066fd038 Support SSR 2022-03-25 18:47:28 +06:00
Ariful Alam
5058711985 Include style.css in exports 2022-03-25 18:45:30 +06:00
Ariful Alam
bbac82bd16 Remove custom build option 2022-03-24 23:36:26 +06:00
Ariful Alam
39125b018c Add build:package script 2022-03-24 23:34:19 +06:00
Ariful Alam
7964ae57bb Create package.config.js 2022-03-24 23:32:27 +06:00
Ariful Alam
b3715bca0a Move entry file to components folder 2022-03-24 23:26:36 +06:00
Ariful Alam
07e1e090a1 Test run 2022-03-24 22:22:45 +06:00
Ariful Alam
c453eb95fd Merge pull request #52 from arifszn/51-add-control-to-customize-the-button-style-on-custom-theme
feat: add control to customize the button style on custom theme
2022-03-23 18:52:16 +06:00
MD. Ariful Alam
9ac2e49a58 Add control to customize the button style on custom theme 2022-03-23 18:47:00 +06:00
Ariful Alam
24b2194129 Merge pull request #50 from arifszn/update-dependencies
build: update dependencies
2022-03-23 02:45:36 +06:00
Ariful Alam
d5bea5a160 Update dependencies 2022-03-23 02:43:21 +06:00
Ariful Alam
2209b21942 Merge pull request #49 from arifszn/47-add-ability-to-make-custom-theme
feat: add ability to make custom theme
2022-03-23 02:21:53 +06:00
Ariful Alam
725091dc52 Add custom theme option 2022-03-23 02:13:51 +06:00
Ariful Alam
4013491663 Add 8 new themes 2022-03-23 02:05:34 +06:00
Ariful Alam
4390701a8c Remove fix height of theme changer 2022-03-23 01:55:24 +06:00
Ariful Alam
ad2439316e Remove uppercase class from skill 2022-03-23 01:55:02 +06:00
Ariful Alam
a4b1660004 Remove gh-pages 2022-03-23 01:12:57 +06:00
Ariful Alam
4bbbf7cde3 Move gitprofile.config.js to root 2022-03-22 23:44:17 +06:00
Ariful Alam
b89dd276df Merge pull request #45 from arifszn/44-update-deploy-guide
Update deploy guide
2022-03-22 02:56:16 +06:00
Ariful Alam
7f007a8bb0 Update guide for deployment 2022-03-22 02:54:37 +06:00
Ariful Alam
741e8ff6cd Add instruction for base value in vite.config.js 2022-03-22 02:50:29 +06:00
Ariful Alam
ebc01a51f9 Remove homepage 2022-03-22 02:41:29 +06:00
Ariful Alam
f309fdb5a6 Remove manual deploy scripts 2022-03-22 02:41:12 +06:00
Ariful Alam
764fbea04b Merge pull request #43 from arifszn/42-combine-lint-and-test-deploy-actions
build: combine lint and test-deploy actions
2022-03-22 02:29:38 +06:00
Ariful Alam
e0b62bb38c Delete lint.yml 2022-03-22 02:23:38 +06:00
Ariful Alam
db3d5c363d Add lint and prettier step on test-deploy 2022-03-22 02:23:15 +06:00
Ariful Alam
f409069210 Fix getInitialTheme method to get theme from localStorage 2022-03-21 02:11:39 +06:00
Ariful Alam
da281dfc80 Set respectPrefersColorScheme to false 2022-03-21 02:02:57 +06:00
Ariful Alam
a40a6a669f Bump version to 2.0.0 🚀 2022-03-20 18:45:32 +06:00
Ariful Alam
d7fa99c787 Merge pull request #41 from arifszn/design
Update design of project and blog sections
2022-03-20 18:44:02 +06:00
Ariful Alam
1f74163548 Wrap the blog items with a container 2022-03-20 18:40:14 +06:00
Ariful Alam
ea71fdee1d Wrap the project items with a container 2022-03-20 18:34:20 +06:00
Ariful Alam
d719e38531 Merge pull request #40 from arifszn/issue-39
feat: make the project and blog items openable on right click action
2022-03-20 18:12:38 +06:00
Ariful Alam
f8fff21f3c Increase the project limit 2022-03-20 18:11:20 +06:00
Ariful Alam
e9ac566737 Make the blog items openable on right click action 2022-03-20 18:09:31 +06:00
Ariful Alam
0a9671bddc Make the project items openable on right click action 2022-03-20 18:05:48 +06:00
Ariful Alam
adc5fc857f Merge pull request #38 from arifszn/close-37
feat: check the value of `localStorage.getItem` exists in the theme array
2022-03-20 17:49:50 +06:00
Ariful Alam
ab3eb39618 Check the value of localStorage.getItem exists in the theme array 2022-03-20 17:47:03 +06:00
Ariful Alam
101e00845d Update README.md 2022-03-20 11:46:14 +06:00
Ariful Alam
f711238d73 Update gitprofile.config.js 2022-03-20 02:35:10 +06:00
Ariful Alam
fe21ead1f2 Merge pull request #36 from arifszn/update-repo-name
Update repo name
2022-03-20 02:25:36 +06:00
Ariful Alam
20ac254201 Update repo name 2022-03-20 02:23:44 +06:00
Ariful Alam
b864c2cdd7 Merge pull request #35 from arifszn/lint-ci-cd
Create CI/CD for automated lint and prettier checking
2022-03-20 02:00:25 +06:00
Ariful Alam
d1fb373ead Create lint.yml 2022-03-20 01:58:19 +06:00
Ariful Alam
42746ae8ef Merge pull request #33 from arifszn/test-deployment-ci-cd
Trigger pipeline of test deploy on pull_request instead of push
2022-03-20 01:55:58 +06:00
Ariful Alam
07d0b15460 Update test-deploy.yml 2022-03-20 01:54:21 +06:00
Ariful Alam
a6063253f2 Merge pull request #32 from arifszn/test-deployment-ci-cd
build: create CI/CD for test deployment
2022-03-20 01:53:25 +06:00
Ariful Alam
059dce3dbe Create CI/CD for test deployment 2022-03-20 01:52:37 +06:00
Ariful Alam
2ba2674a7f Merge pull request #30 from arifszn/add-contributing-guide
Add contributing guide
2022-03-20 01:47:08 +06:00
Ariful Alam
19243fde6a Update Contribute section 2022-03-20 01:46:39 +06:00
Ariful Alam
4ac53af497 Add contributing guide 2022-03-20 01:45:29 +06:00
Ariful Alam
b5a3cfa798 Merge pull request #29 from arifszn/add-code-of-conduct
Add code of conduct
2022-03-20 01:43:05 +06:00
Ariful Alam
b020acd1bc Add code of conduct 2022-03-20 01:42:30 +06:00
Ariful Alam
79c10e0e0b Merge pull request #28 from arifszn/Add-formatting-and-style-guide
build: add formatting and style guide
2022-03-20 01:39:15 +06:00
Ariful Alam
ec458191fb Validate missing prop types 2022-03-20 01:36:43 +06:00
Ariful Alam
a2ada305a7 Add scripts for lint and prettier 2022-03-20 01:25:23 +06:00
Ariful Alam
3354eb9f9b Create .prettierignore 2022-03-20 01:24:30 +06:00
Ariful Alam
b1ba17e17a Create .prettierrc 2022-03-20 01:24:07 +06:00
Ariful Alam
ddcb175234 Create .eslintignore 2022-03-20 01:23:40 +06:00
Ariful Alam
3529f39b7f Create .eslintrc.js 2022-03-20 01:23:00 +06:00
Ariful Alam
7866762a76 Install packages for lint and prettier 2022-03-20 01:21:24 +06:00
Ariful Alam
189e0f695e Make the whole item clickable of details 2022-03-20 01:19:17 +06:00
Ariful Alam
875ba4c899 Merge pull request #27 from arifszn/build/change-deploy-folder
build: define `base` in vite.config.js
2022-03-20 01:10:23 +06:00
Ariful Alam
c1068821a1 Define base in vite.config.js 2022-03-20 01:09:14 +06:00
Ariful Alam
8f45e648c1 Merge pull request #25 from arifszn/build/change-deploy-folder
build: change deploy folder for CI/CD
2022-03-20 00:58:32 +06:00
Ariful Alam
7da02cbceb Change deploy folder in deploy.yml 2022-03-20 00:56:07 +06:00
Ariful Alam
5c9f17d5f1 Merge pull request #23 from arifszn/migrate-to-vite
Migrate to vite.js
2022-03-20 00:50:47 +06:00
Ariful Alam
3a67c9ba31 Increase skill tag opacity 2022-03-20 00:43:40 +06:00
Ariful Alam
34e2d1da01 Change default theme to corporate 2022-03-20 00:43:35 +06:00
Ariful Alam
e91c8d9df0 Setup hotjar integration 2022-03-20 00:40:59 +06:00
Ariful Alam
2951f53fc0 Install react-hotjar 2022-03-20 00:33:56 +06:00
Ariful Alam
da1810adf0 Update footer style 2022-03-20 00:28:14 +06:00
Ariful Alam
c3360fa0f7 Update README.md 2022-03-20 00:22:17 +06:00
Ariful Alam
ab093235e3 Add class font-mono in bio 2022-03-20 00:18:55 +06:00
Ariful Alam
32c663fd55 Update style of blog 2022-03-20 00:17:18 +06:00
Ariful Alam
b4d65da1a7 Update style of right section 2022-03-20 00:17:15 +06:00
Ariful Alam
b4c81095e8 Update header 2022-03-20 00:16:27 +06:00
Ariful Alam
86ad16ee31 Update style of education history 2022-03-19 22:18:34 +06:00
Ariful Alam
fdffd280b7 Update style 2022-03-19 22:12:38 +06:00
Ariful Alam
7a935e9cb5 Remove redundant class bg-base-100 2022-03-19 20:27:23 +06:00
Ariful Alam
206ae1c8b6 Center the skill items 2022-03-19 20:23:56 +06:00
Ariful Alam
1565307200 Update skeleton style of details 2022-03-19 17:41:03 +06:00
Ariful Alam
ee36b5c49c Update details section 2022-03-19 17:17:25 +06:00
Ariful Alam
1a87e391b2 Add padding to list item's wrapper 2022-03-19 16:38:22 +06:00
Ariful Alam
ab55fa68f1 Remove context for state management 2022-03-19 16:34:13 +06:00
Ariful Alam
b69ced8ce0 Pass object instead of array in context provider 2022-03-19 16:16:47 +06:00
Ariful Alam
2b94b40bf3 Change style of details section 2022-03-19 15:50:29 +06:00
Ariful Alam
10238cc3a4 Add margin bottom in skeleton 2022-03-19 01:13:18 +06:00
Ariful Alam
d79bec006a Update utils.jsx 2022-03-19 00:55:08 +06:00
Ariful Alam
d76c4fd52d Add sections 2022-03-19 00:55:03 +06:00
Ariful Alam
6673428533 Update config 2022-03-19 00:54:50 +06:00
Ariful Alam
9b1e01b8df Add custom css 2022-03-19 00:54:37 +06:00
Ariful Alam
ce8a736106 Add packages in devDependencies 2022-03-19 00:54:27 +06:00
Ariful Alam
be3e0d1ffb Create ThemeChanger component 2022-03-19 00:53:45 +06:00
Ariful Alam
0ff1235735 Create Skill component 2022-03-19 00:53:37 +06:00
Ariful Alam
a533524604 Create project component 2022-03-19 00:53:29 +06:00
Ariful Alam
92bdc1acf6 Create LazyImage component 2022-03-19 00:53:20 +06:00
Ariful Alam
9d1de8173f Create HeadTagEditor component 2022-03-19 00:53:02 +06:00
Ariful Alam
c0d1a68123 Create Experience component 2022-03-19 00:52:51 +06:00
Ariful Alam
1fc3ca059a Create ErrorPage component 2022-03-19 00:52:38 +06:00
Ariful Alam
fce65c18e2 Create Education component 2022-03-19 00:52:31 +06:00
Ariful Alam
aaf7e4a8cf Create Details component 2022-03-19 00:52:23 +06:00
Ariful Alam
a3db9fddb3 Create Blog component 2022-03-19 00:52:17 +06:00
Ariful Alam
d47bbe079c Create AvatarCard 2022-03-19 00:52:00 +06:00
Ariful Alam
87d92c4c91 Rename file extension 2022-03-19 00:15:21 +06:00
Ariful Alam
e47a6f722e Add ezprofile.config.js 2022-03-19 00:15:00 +06:00
Ariful Alam
ff83fa6be8 Update main.jsx 2022-03-19 00:13:04 +06:00
Ariful Alam
100bd7816e Add react-helmet-async 2022-03-19 00:11:24 +06:00
Ariful Alam
cf043dab4c Add contexts 2022-03-19 00:10:13 +06:00
Ariful Alam
6979ee8c5c Add utils.js 2022-03-19 00:08:38 +06:00
Ariful Alam
6cb49fc61b Add colors.json 2022-03-19 00:06:11 +06:00
Ariful Alam
91667f155f Update index.html 2022-03-18 23:58:39 +06:00
Ariful Alam
50f0f49afe Add assets in public dir 2022-03-18 23:55:36 +06:00
Ariful Alam
54b21cfcbc Update metadata 2022-03-18 23:53:21 +06:00
Ariful Alam
18e7e671f3 Update LICENSE 2022-03-18 23:49:57 +06:00
Ariful Alam
1ff81c8358 Add daisyui 2022-03-18 23:48:35 +06:00
Ariful Alam
f01ca017a3 Add Tailwind CSS (v3) 2022-03-18 23:46:57 +06:00
Ariful Alam
528c278890 Initialize with vite.js 2022-03-18 23:42:31 +06:00
Ariful Alam
9c324acddf Update deploy action file 2022-03-18 23:33:18 +06:00
Ariful Alam
7b7502a118 Remove folders and files 2022-03-18 23:30:10 +06:00
Ariful Alam
6a9496aa51 Update config.js 2022-03-18 11:57:01 +06:00
Ariful Alam
0bc0d0aa9c Update README.md 2022-03-08 20:22:39 +06:00
Ariful Alam
59e53ac245 Update README.md 2022-01-05 20:51:14 +06:00
84 changed files with 14598 additions and 42084 deletions

22
.eslintignore Normal file
View File

@@ -0,0 +1,22 @@
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
dist
dist-ssr
*.local
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

19
.eslintrc.cjs Normal file
View File

@@ -0,0 +1,19 @@
module.exports = {
root: true,
env: { browser: true, es2020: true, node: true },
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:react-hooks/recommended',
'plugin:prettier/recommended',
],
ignorePatterns: ['dist', '.eslintrc.cjs'],
parser: '@typescript-eslint/parser',
plugins: ['react-refresh'],
rules: {
'react-refresh/only-export-components': [
'warn',
{ allowConstantExport: true },
],
},
};

6
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: 'npm'
directory: '/'
schedule:
interval: 'weekly'

View File

@@ -1,39 +0,0 @@
name: Build and Publish to gh-pages Branch
on:
push:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Set up Node
uses: actions/setup-node@v2
with:
node-version: '14'
- name: Cache dependencies
uses: actions/cache@v2
with:
path: |
**/node_modules
key: ${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}
- name: Install dependencies
run: npm install
- name: Build
run: npm run build
env:
CI: ""
- name: Deploy
uses: JamesIves/github-pages-deploy-action@4.1.4
with:
branch: gh-pages
folder: build

61
.github/workflows/deploy.yml vendored Normal file
View File

@@ -0,0 +1,61 @@
name: Deploy to GitHub Pages
on:
push:
branches: [main]
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: 20.x
cache: 'npm'
- name: Setup Pages
uses: actions/configure-pages@v4
- name: Restore cache
uses: actions/cache@v4
with:
path: |
**/node_modules
key: ${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}
- name: Install dependencies
run: npm ci
- name: Build with vite
run: npm run build
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: ./dist
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4

39
.github/workflows/test-deploy.yml vendored Normal file
View File

@@ -0,0 +1,39 @@
name: Test Deployment
on:
pull_request:
branches: [main]
jobs:
test-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: 20.x
cache: 'npm'
- name: Restore cache
uses: actions/cache@v4
with:
path: |
**/node_modules
key: ${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}
- name: Install dependencies
run: npm ci
- name: Run lint
run: npm run lint
- name: Run prettier
run: npm run prettier
- name: Build
run: npm run build
env:
CI: ''

41
.gitignore vendored
View File

@@ -1,23 +1,24 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. # Logs
logs
# dependencies *.log
/node_modules
/.pnp
.pnp.js
# testing
/coverage
# production
/build
# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log* npm-debug.log*
yarn-debug.log* yarn-debug.log*
yarn-error.log* yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
dist
dist-ssr
*.local
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

22
.prettierignore Normal file
View File

@@ -0,0 +1,22 @@
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
dist
dist-ssr
*.local
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

9
.prettierrc Normal file
View File

@@ -0,0 +1,9 @@
{
"semi": true,
"arrowParens": "always",
"bracketSpacing": true,
"printWidth": 80,
"singleQuote": true,
"tabWidth": 2,
"endOfLine": "auto"
}

76
CODE_OF_CONDUCT.md Normal file
View File

@@ -0,0 +1,76 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
- The use of sexualized language or imagery and unwelcome sexual attention or
advances
- Trolling, insulting/derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or electronic
address, without explicit permission
- Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at fdkhadra@gmail.com. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq

49
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,49 @@
# Contributing
👍🎉 First off, thanks for taking the time to contribute! 🎉👍
If you have found an issue or would like to request a new feature, simply create a new issue detailing the request. We also welcome pull requests. See below for information on getting started with development and submitting pull requests.
Please note we have a [code of conduct](https://github.com/arifszn/gitprofile/blob/main/CODE_OF_CONDUCT.md), please follow it in all your interactions with the project.
## Found an Issue?
If you find a bug in the source code or a mistake in the documentation, you can help us by
submitting an issue to our [GitHub Repository](https://github.com/arifszn/gitprofile/issues/new). Even better you can submit a Pull Request
with a fix.
## Submitting a Pull Request
1. Make sure that the contribution you want to make is explained or detailed in a GitHub issue! Find an [existing issue](https://github.com/arifszn/gitprofile/issues) or [open a new one](https://github.com/arifszn/gitprofile/issues/new).
2. Once done, [fork the repository](https://github.com/arifszn/gitprofile/fork) in your own GitHub account.
3. [Create a new Git branch](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-and-deleting-branches-within-your-repository).
4. Make the changes on your branch.
5. [Submit the branch as a PR](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork) pointing to the `main` branch of the main repository. <br>
We do not enforce a naming convention for the PRs, but **please use something descriptive of your changes**.
## Development Workflow
### Install dependencies
```sh
npm install
```
### Run dev server
```sh
npm run dev
```
### Linter
Each PR should pass the linter to be accepted. To fix lint and prettier errors, run `npm run lint:fix` and `npm run prettier:fix`.
### Commit Message
As minimal requirements, your commit message should:
- be capitalized
- not finish by a dot or any other punctuation character (!,?)
- start with a verb so that we can read your commit message this way: "This commit will ...", where "..." is the commit message.
e.g.: "Fix the home page button" or "Add support for dark mode"

214
LICENSE
View File

@@ -1,201 +1,21 @@
Apache License MIT License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION Copyright (c) 2022 Ariful Alam
1. Definitions. Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
"License" shall mean the terms and conditions for use, reproduction, The above copyright notice and this permission notice shall be included in all
and distribution as defined by Sections 1 through 9 of this document. copies or substantial portions of the Software.
"Licensor" shall mean the copyright owner or entity authorized by THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
the copyright owner that is granting the License. IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
"Legal Entity" shall mean the union of the acting entity and all AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
other entities that control, are controlled by, or are under common LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
control with that entity. For the purposes of this definition, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
"control" means (i) the power, direct or indirect, to cause the SOFTWARE.
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright 2022 Ariful Alam
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

716
README.md
View File

@@ -1,167 +1,314 @@
<p align="center">
<a href="http://arifszn.github.io/ezprofile" target="_blank">
<img src="https://arifszn.github.io/assets/img/hosted/ezprofile/logo.png" alt="ezProfile" title="ezProfile" width="80">
</a>
</p>
<h1 align="center">ezProfile</h1>
<p align="center">A modern, responsive and customizable portfolio builder for Developers!</p>
<p align="center">https://arifszn.github.io/ezprofile</p>
<br/> <br/>
<p align="center"> <p align="center">
<a href="https://arifszn.github.io/ezprofile"> <img src="https://user-images.githubusercontent.com/45073703/177566625-9b84e793-4559-4475-ba54-8d3d5f4123d4.png" width="35%">
<img src="https://arifszn.github.io/assets/img/hosted/ezprofile/preview.gif" width="60%" alt="Preview"/>
<h4 align="center">Easy to use automatic portfolio builder for every GitHub user!</h4>
<p align="center">
<a href="https://codeclimate.com/github/arifszn/gitprofile/maintainability">
<img src="https://api.codeclimate.com/v1/badges/c60f42d7d0b61bd33e98/maintainability" />
</a> </a>
<br/> <a href="https://github.com/arifszn/gitprofile/actions/workflows/test-deploy.yml">
<a href="#arifszn"><img src="https://arifszn.github.io/assets/img/drop-shadow.png" width="60%" alt="Shadow"/></a> <img src="https://github.com/arifszn/gitprofile/actions/workflows/test-deploy.yml/badge.svg" />
</a>
<a href="https://github.com/arifszn/gitprofile/issues">
<img src="https://img.shields.io/github/issues/arifszn/gitprofile"/>
</a>
<a href="https://github.com/arifszn/gitprofile/stargazers">
<img src="https://img.shields.io/github/stars/arifszn/gitprofile"/>
</a>
<a href="https://github.com/arifszn/gitprofile/network/members">
<img src="https://img.shields.io/github/forks/arifszn/gitprofile"/>
</a>
<a href="https://github.com/arifszn/gitprofile/commits/main">
<img src="https://img.shields.io/github/last-commit/arifszn/gitprofile/main"/>
</a>
<a href="https://github.com/arifszn/gitprofile/blob/main/CONTRIBUTING.md">
<img src="https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat"/>
</a>
<a href="https://github.com/arifszn/gitprofile/blob/main/LICENSE">
<img src="https://img.shields.io/github/license/arifszn/gitprofile"/>
</a>
<a href="https://twitter.com/intent/tweet?text=Check%20out%20the%20portfolio%20builder.%20Create%20an%20automatic%20portfolio%20based%20on%20GitHub%20profile.&url=https://github.com/arifszn/gitprofile&hashtags=javascript,opensource,js,webdev,developers">
<img src="https://img.shields.io/twitter/url?style=social&url=https%3A%2F%2Fgithub.com%2Farifszn%2Fgitprofile"/>
</a>
</p>
<p align="center">
<a href="https://arifszn.github.io/gitprofile">View Demo</a>
·
<a href="https://github.com/arifszn/gitprofile/issues">Report Bug</a>
·
<a href="https://github.com/arifszn/gitprofile/discussions">Request Feature</a>
</p>
</p> </p>
**ezProfile** is an easy-to-customize personal dev portfolio builder that is created with React.js. When you manage the code in a GitHub repository, it will automatically render a webpage with the owner's profile information, including a photo, bio, and public repositories. Also, it includes space to highlight your details, job history, education history, skills, and recent blog posts. <p align="center">
<a href="https://arifszn.github.io/gitprofile">
<img src="https://github.com/arifszn/gitprofile/assets/45073703/eb6c38a4-ac92-4006-869b-e4e24f6f5cf6" alt="Preview" width="60%"/>
</a>
<br/>
<a href="#arifszn"><img src="https://github.com/arifszn/gitprofile/assets/45073703/4d2ccd45-e566-4743-bf61-cadc03ece54c" width="50%" alt="Shadow"/></a>
</p>
It's all possible using [GitHub API](https://developer.github.com/v3/) (for automatically populating your website with content) and [Article-api](https://github.com/arifszn/article-api) (for fetching recent blog posts). **GitProfile** is a powerful portfolio builder that allows you to create a stunning and personalized portfolio site in minutes, even if you have no coding experience. Simply provide your GitHub username, and GitProfile will automatically generate a portfolio. Best of all, you can easily deploy your portfolio to GitHub Pages with just a few clicks, making it accessible to the world in no time.
✓ [21 Themes](#themes)\ **Features:**
✓ [Google Analytics](#google-analytics)\
✓ [Hotjar](#hotjar)\
✓ [Meta Tags](#meta-tags)\
✓ [Avatar and Bio](#avatar-and-bio)\
✓ [Social Links](#social-links)\
✓ [Skills](#skills)\
✓ [Experience](#experience)\
✓ [Education](#education)\
✓ [Projects](#projects)\
✓ [Blog Posts](#blog-posts)
To view a live example, **[click here](https://arifszn.github.io/ezprofile)**. ✓ [Easy to Setup](#-installation--setup)
✓ [33 Themes](#themes)
✓ [Google Analytics](#google-analytics)
✓ [Hotjar](#hotjar)
✓ [SEO](#seo)
✓ [PWA](#pwa)
✓ [Avatar and Bio](#avatar-and-bio)
✓ [Social Links](#social-links)
✓ [Skill Section](#skills)
✓ [Experience Section](#experience)
✓ [Certification Section](#certifications)
✓ [Education Section](#education)
✓ [Projects Section](#projects)
✓ [Blog Posts Section](#blog-posts)
To view a live example, **[click here](https://arifszn.github.io/gitprofile)**.
<p align="center">
<img src="https://github.com/arifszn/gitprofile/assets/45073703/406e8368-415a-42ef-89c5-d43cc8bbeb19" alt="Themes">
</p>
## 🛠 Installation & Set Up ## 🛠 Installation & Setup
These instructions will get you a copy of the project and deploy your website online! There are three ways to use **GitProfile**. Use any.
- **[Fork](https://docs.github.com/en/get-started/quickstart/fork-a-repo)** the repo so you have your own project to customize by clicking the fork icon on the top right side. A "fork" is a copy of a repository. - [Forking this repo _(recommended)_](#forking-this-repo)
- Rename your forked repository to <code>username.github.io</code> in github, where <code>username</code> is your GitHub username (or organization name). - [Setting up locally](#setting-up-locally)
- Go to your repo's **Actions** page and enable workflows.
![Workflows](https://arifszn.github.io/assets/img/hosted/ezprofile/workflows.png) ### Forking this repo
- Open <code>package.json</code>, and change <code>homepage</code>'s value to <code>https://username.github.io</code>. These instructions will get you a copy of the project and deploy your portfolio online using GitHub Pages!
```js - **Fork repo:** Click [here](https://github.com/arifszn/gitprofile/fork) to fork the repo so you have your own project to customize. A "fork" is a copy of a repository.
// package.json - **Rename repo:**
{ - If you want to host your portfolio at `https://<USERNAME>.github.io`, rename your forked repository to `username.github.io` in GitHub, where `username` is your GitHub username (or organization name).
// ... - If you want to host your portfolio at `https://<USERNAME>.github.io/<REPO_NAME>` (e.g. `https://<USERNAME>.github.io/portfolio`), rename your forked repository to `<REPO_NAME>` (e.g. `portfolio`) in GitHub.
"homepage": "https://username.github.io", - **Enable workflows:** Go to your repo's **Actions** tab and enable workflows.
}
```
- Now commit to your **main** branch with your changes. ![Workflows](https://github.com/arifszn/gitprofile/assets/45073703/7e82f7d4-900c-4cb9-83f9-bcaa1ca2b910)
- The CI/CD pipeline will publish your page at the gh-pages branch automatically.
- Go to your repo's **Settings** -> **Pages** -> **Source** and change the branch to gh-pages and click **save**.
- Your personal portfolio will be live at <code>username.github.io</code>.
- Any time you commit a change to the **main** branch, the website will be automatically updated.
- **Base Value:** Open `gitprofile.config.ts`, and change `base`'s value.
You can skip the above steps and do a manual deployment by running <code>npm run deploy</code>. For more info, visit [here](https://create-react-app.dev/docs/deployment/#github-pages). - If you are deploying to `https://<USERNAME>.github.io`, set `base` to `'/'`.
As this is a create react app, you can also host your website to Netlify, Vercel, Heroku, or other popular services. Please refer to this [doc](https://create-react-app.dev/docs/deployment) for a detailed deployment guide to other services. - If you are deploying to `https://<USERNAME>.github.io/<REPO_NAME>` (e.g. `https://<USERNAME>.github.io/portfolio`), then set `base` to `'/<REPO_NAME>/'` (e.g. `'/portfolio/'`).
If you see only <code>README</code> at <code>username.github.io</code>, be sure to change your GitHub Page's source to <code>gh-pages</code> branch. See [how to](https://docs.github.com/en/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site). Also, if you face any issue rendering the website, double-check the `homepage` value in the package.json. ```ts
// gitprofile.config.ts
{
base: '/',
// ...
}
```
- **Commit the changes:** Now commit to your **main** branch with your changes. Wait a few minutes so that the CI/CD pipeline can publish your website to GitHub Pages. You can check the progress in the [Actions](https://github.com/arifszn/gitprofile/actions) tab.
Your portfolio website will be live shortly. Any time you commit a change to the **main** branch, the website will be automatically updated. If you face any issue viewing the website, double-check the `base` value in the `gitprofile.config.ts` file. Also, check if **Source** is set to **GitHub Actions** in **Settings** ➜ **Pages** ➜ **Build and deployment**.
If you wish to add a custom domain, no CNAME file is required. Just add it to your repo's **Settings** ➜ **Pages** ➜ **Custom domain**.
As this is a Vite project, you can also host your website to Netlify, Vercel, Heroku, or other popular services. Please refer to this [doc](https://vitejs.dev/guide/static-deploy.html) for a detailed deployment guide to other services.
### Setting up locally
- Clone the project and change directory.
```shell
git clone https://github.com/arifszn/gitprofile.git
cd gitprofile
```
- Install dependencies.
```shell
npm install
```
- Run dev server.
```shell
npm run dev
```
- Finally, visit [`http://localhost:5173/gitprofile/`](http://localhost:5173/gitprofile/) from your browser.
> Alternatively, you can set up and run the project using Docker with **[`vail`](https://github.com/arifszn/vail)**, a powerful tool for local development of JavaScript/TypeScript Apps.
## 🎨 Customization ## 🎨 Customization
All the magic happens in the file <code>src/config.js</code>. Open it and modify it according to your preference. All the magic happens in the file `gitprofile.config.ts`. Open it and modify it according to your preference.
These are the default values: ```ts
// gitprofile.config.ts
<details> const CONFIG = {
<summary>config.js</summary>
```js
// config.js
module.exports = {
github: { github: {
username: 'arifszn', // Your GitHub org/user name. (Required) username: 'arifszn', // Your GitHub org/user name. (This is the only required config)
sortBy: 'stars', // stars | updated },
limit: 8, // How many projects to display. /**
exclude: { * If you are deploying to https://<USERNAME>.github.io/, for example your repository is at https://github.com/arifszn/arifszn.github.io, set base to '/'.
forks: false, // Forked projects will not be displayed if set to true. * If you are deploying to https://<USERNAME>.github.io/<REPO_NAME>/,
projects: [] // These projects will not be displayed. example: ['my-project1', 'my-project2'] * for example your repository is at https://github.com/arifszn/portfolio, then set base to '/portfolio/'.
} */
base: '/gitprofile/',
projects: {
github: {
display: true, // Display GitHub projects?
header: 'Github Projects',
mode: 'automatic', // Mode can be: 'automatic' or 'manual'
automatic: {
sortBy: 'stars', // Sort projects by 'stars' or 'updated'
limit: 8, // How many projects to display.
exclude: {
forks: false, // Forked projects will not be displayed if set to true.
projects: [], // These projects will not be displayed. example: ['arifszn/my-project1', 'arifszn/my-project2']
},
},
manual: {
// Properties for manually specifying projects
projects: ['arifszn/gitprofile', 'arifszn/pandora'], // List of repository names to display. example: ['arifszn/my-project1', 'arifszn/my-project2']
},
},
external: {
header: 'My Projects',
// To hide the `External Projects` section, keep it empty.
projects: [
{
title: 'Project Name',
description:
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed euismod, nunc ut.',
imageUrl:
'https://img.freepik.com/free-vector/illustration-gallery-icon_53876-27002.jpg',
link: 'https://example.com',
},
{
title: 'Project Name',
description:
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed euismod, nunc ut.',
imageUrl:
'https://img.freepik.com/free-vector/illustration-gallery-icon_53876-27002.jpg',
link: 'https://example.com',
},
],
},
},
seo: {
title: 'Portfolio of Ariful Alam',
description: '',
imageURL: '',
}, },
social: { social: {
linkedin: '', linkedin: 'ariful-alam',
twitter: '', twitter: 'arif_szn',
mastodon: 'arifszn@mastodon.social',
facebook: '', facebook: '',
instagram: '',
youtube: '', // example: 'pewdiepie'
dribbble: '', dribbble: '',
behance: '', behance: '',
medium: '', medium: 'arifszn',
devto: '', dev: 'arifszn',
website: '', stackoverflow: '', // example: '1/jeff-atwood'
skype: '',
telegram: '',
website: 'https://www.arifszn.com',
phone: '', phone: '',
email: '' email: 'arifulalamszn@gmail.com',
},
resume: {
fileUrl:
'https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf', // Empty fileUrl will hide the `Download Resume` button.
}, },
skills: [ skills: [
'PHP',
'Laravel',
'JavaScript', 'JavaScript',
'React.js', 'React.js',
'Node.js',
'Nest.js',
'MySQL',
'PostgreSQL',
'Git',
'Docker',
'PHPUnit',
'CSS',
'Antd',
'Tailwind',
], ],
experiences: [ experiences: [
{ {
company: 'Company name 1', company: 'Company Name',
position: 'Software Engineer', position: 'Position',
from: 'September 2021',
to: 'Present',
companyLink: 'https://example.com',
},
{
company: 'Company Name',
position: 'Position',
from: 'July 2019', from: 'July 2019',
to: 'Present' to: 'August 2021',
companyLink: 'https://example.com',
}, },
{
company: 'Company name 2',
position: 'Jr. Software Engineer',
from: 'January 2019',
to: ' June 2019'
}
], ],
education: [ certifications: [
{ {
institution: 'Institution name 1', name: 'Lorem ipsum',
degree: 'Bachelor of Science', body: 'Lorem ipsum dolor sit amet',
year: 'March 2022',
link: 'https://example.com',
},
],
educations: [
{
institution: 'Institution Name',
degree: 'Degree',
from: '2015', from: '2015',
to: '2019' to: '2019',
}, },
{ {
institution: 'Institution name 2', institution: 'Institution Name',
degree: 'Higher Secondary Certificate (HSC)', degree: 'Degree',
from: '2012', from: '2012',
to: '2014', to: '2014',
} },
], ],
// Display articles from your medium or dev account. (Optional)
blog: { blog: {
// Display blog posts from your medium or dev.to account. (Optional) source: 'dev', // medium | dev
source: 'dev.to', // medium | dev.to username: 'arifszn', // to hide blog section, keep it empty
username: 'arifszn', limit: 3, // How many articles to display. Max is 10.
limit: 5 // How many posts to display. Max is 10.
}, },
googleAnalytics: { googleAnalytics: {
// GA3 tracking id/GA4 tag id id: '', // GA3 tracking id/GA4 tag id UA-XXXXXXXXX-X | G-XXXXXXXXXX
id: '' // UA-XXXXXXXXX-X | G-XXXXXXXXXX
}, },
// Track visitor interaction and behavior. https://www.hotjar.com
hotjar: { hotjar: {
id: '', id: '',
snippetVersion : 6 snippetVersion: 6,
}, },
themeConfig: { themeConfig: {
default: 'light', defaultTheme: 'nord',
// Hides the theme change switch // Hides the switch in the navbar
// Useful if you want to support a single color mode // Useful if you want to support a single color mode
disableSwitch: false, disableSwitch: false,
// Should we use the prefers-color-scheme media-query, // Should use the prefers-color-scheme media-query,
// using user system preferences, instead of the hardcoded default // using user system preferences, instead of the hardcoded defaultTheme
respectPrefersColorScheme: true, respectPrefersColorScheme: false,
// Display the ring in Profile picture
displayAvatarRing: true,
// Available themes. To remove any theme, exclude from here. // Available themes. To remove any theme, exclude from here.
themes: [ themes: [
@@ -185,242 +332,365 @@ module.exports = {
'wireframe', 'wireframe',
'black', 'black',
'luxury', 'luxury',
'dracula' 'dracula',
] 'cmyk',
} 'autumn',
} 'business',
``` 'acid',
</details> 'lemonade',
'night',
'coffee',
'winter',
'dim',
'nord',
'sunset',
'procyon',
],
// Custom theme, applied to `procyon` theme
customTheme: {
primary: '#fc055b',
secondary: '#219aaf',
accent: '#e8d03a',
neutral: '#2A2730',
'base-100': '#E3E3ED',
'--rounded-box': '3rem',
'--rounded-btn': '3rem',
},
},
// Optional Footer. Supports plain text or HTML.
footer: `Made with <a
class="text-primary" href="https://github.com/arifszn/gitprofile"
target="_blank"
rel="noreferrer"
>GitProfile</a> and ❤️`,
enablePWA: true,
};
export default CONFIG;
```
### Themes ### Themes
There are 21 themes available that can be selected from the dropdown. There are 33 themes available that can be selected from the dropdown.
The default theme can be specified. The default theme can be specified.
```js ```ts
// config.js // gitprofile.config.ts
module.exports = { const CONFIG = {
// ... // ...
themeConfig: { themeConfig: {
default: 'light', defaultTheme: 'light',
// ... // ...
} },
} };
``` ```
![Theme Dropdown](https://arifszn.github.io/assets/img/hosted/ezprofile/themes-1.png) <p align="center">
<img src="https://github.com/arifszn/gitprofile/assets/45073703/91a2d9e6-67e5-47b4-9752-1881ac0f907f" alt="Theme Dropdown" width="50%">
</p>
Here are some screenshots of different themes.\ You can create your own custom theme by modifying these values. Theme `procyon` will have the custom styles.
<br/>
![Themes](https://arifszn.github.io/assets/img/hosted/ezprofile/themes-2.png)\
<br/>
![Themes](https://arifszn.github.io/assets/img/hosted/ezprofile/themes-3.png)\
<br/>
![Themes](https://arifszn.github.io/assets/img/hosted/ezprofile/themes-4.png)\
<br/>
![Themes](https://arifszn.github.io/assets/img/hosted/ezprofile/themes-5.png)\
<br/>
![Themes](https://arifszn.github.io/assets/img/hosted/ezprofile/themes-6.png)\
<br/>
![Themes](https://arifszn.github.io/assets/img/hosted/ezprofile/themes-7.png)
```ts
// gitprofile.config.ts
const CONFIG = {
// ...
themeConfig: {
customTheme: {
primary: '#fc055b',
secondary: '#219aaf',
accent: '#e8d03a',
neutral: '#2A2730',
'base-100': '#E3E3ED',
'--rounded-box': '3rem',
'--rounded-btn': '3rem',
},
// ...
},
};
```
### Google Analytics ### Google Analytics
ezFolio supports both GA3 and GA4. If you do not want to use Google Analytics, keep the <code>id</code> empty. **GitProfile** supports both GA3 and GA4. If you do not want to use Google Analytics, keep the `id` empty.
```js
// config.js ```ts
module.exports = { // gitprofile.config.ts
const CONFIG = {
// ... // ...
googleAnalytics: { googleAnalytics: {
id: '' id: '',
}, },
} };
``` ```
Besides tracking visitors, ezFolio will track click events on projects and blog posts, and send them to Google Analytics.\ Besides tracking visitors, it will track `click events` on projects and blog posts, and send them to Google Analytics.
<br/>
![Event](https://www.arifszn.com/assets/img/hosted/ezprofile/event.png)
### Hotjar ### Hotjar
ezProfile supports hotjar. If you do not want to use Hotjar, keep the <code>id</code> empty. **GitProfile** supports [hotjar](https://www.hotjar.com) to track visitor interaction and behavior. If you do not want to use Hotjar, keep the `id` empty.
```js ```ts
// config.js // gitprofile.config.ts
module.exports = { const CONFIG = {
// ... // ...
hotjar: { hotjar: {
id: '', id: '',
snippetVersion : 6 snippetVersion: 6,
}, },
} };
``` ```
### Meta Tags ### SEO
Meta tags will be auto-generated from configs dynamically. However, you can also manually add meta tags in <code>public\index.html</code> You can customize the meta tags for SEO in `seo`.
```ts
// gitprofile.config.ts
const CONFIG = {
// ...
seo: {
title: 'Portfolio of Ariful Alam',
description: '',
imageURL: '',
},
};
```
### PWA
GitProfile is PWA enabled. The site can be installed as a Progressive Web App. To turn it off, set `enablePWA` to `false`.
![PWA](https://github.com/arifszn/gitprofile/assets/45073703/9dc7cc5c-4262-4445-a7a5-1e3566ef43fa)
### Avatar and Bio ### Avatar and Bio
Your github avatar and bio will be displayed here.\ Your avatar and bio will be fetched from GitHub automatically.
<br/>
![Avatar Bio](https://arifszn.github.io/assets/img/hosted/ezprofile/avatar-card.png)
### Social Links ### Social Links
ezProfile supports linking your social media services you're using, including LinkedIn, Twitter, Facebook, Dribbble, Behance, Medium, dev.to, personal website, phone and email. You can link your social media services you're using, including LinkedIn, Twitter, Mastodon, Facebook, Instagram, YouTube, Dribbble, Behance, Medium, dev, Stack Overflow, Skype, Telegram, personal website, phone and email.
```js
// config.js ```ts
module.exports = { // gitprofile.config.ts
const CONFIG = {
// ... // ...
social: { social: {
linkedin: 'ariful-alam', linkedin: 'ariful-alam',
twitter: 'arif_swozon', twitter: 'arif_szn',
mastodon: 'arifszn@mastodon.social',
facebook: '', facebook: '',
instagram: '',
youtube: '',
dribbble: '', dribbble: '',
behance: '', behance: '',
medium: '', medium: '',
devto: '', dev: '',
website: 'https://arifszn.github.io', stackoverflow: '',
skype: '',
telegram: '',
website: '',
phone: '', phone: '',
email: '' email: '',
}, },
} };
``` ```
### Skills ### Skills
To showcase your skills provide them here. To showcase your skills provide them here.
```js
// config.js ```ts
module.exports = { // gitprofile.config.ts
const CONFIG = {
// ... // ...
skills: [ skills: ['JavaScript', 'React.js'],
'JavaScript', };
'React.js',
],
}
``` ```
Empty array will hide the skills section. Empty array will hide the skills section.
### Experience ### Experience
Provide your job history in <code>experiences</code>. Provide your job history in `experiences`.
```js
// config.js ```ts
module.exports = { // gitprofile.config.ts
const CONFIG = {
// ... // ...
experiences: [ experiences: [
{ {
company: 'Company name 1', company: 'Company Name',
position: 'Software Engineer', position: 'Position',
from: 'July 2019', from: 'September 2021',
to: 'Present' to: 'Present',
companyLink: 'https://example.com',
}, },
{ {
company: 'Company name 2', company: 'Company Name',
position: 'Jr. Software Engineer', position: 'Position',
from: 'January 2019', from: 'July 2019',
to: ' June 2019' to: 'August 2021',
} companyLink: 'https://example.com',
},
], ],
} };
``` ```
Empty array will hide the experience section. Empty array will hide the experience section.
### Education ### Education
Provide your education history in <code>education</code>. Provide your education history in `educations`.
```js
// config.js ```ts
module.exports = { // gitprofile.config.ts
const CONFIG = {
// ... // ...
education: [ educations: [
{ {
institution: 'Institution name 1', institution: 'Institution name 1',
degree: 'Bachelor of Science', degree: 'Bachelor of Science',
from: '2015', from: '2015',
to: '2019' to: '2019',
}, },
{ {
institution: 'Institution name 2', institution: 'Institution name 2',
degree: 'Higher Secondary Certificate (HSC)', degree: 'Higher Secondary Certificate (HSC)',
from: '2012', from: '2012',
to: '2014', to: '2014',
} },
], ],
} };
``` ```
Empty array will hide the education section. Empty array will hide the education section.
### Certifications
Provide your industry certifications in `certifications`.
```ts
// gitprofile.config.ts
const CONFIG = {
// ...
certifications: [
{
name: 'Lorem ipsum',
body: 'Lorem ipsum dolor sit amet',
year: 'March 2022',
link: 'https://example.com',
},
],
};
```
Empty array will hide the certifications section.
### Projects ### Projects
Your public repo from github will be displayed here automatically. You can limit how many projects do you want to be displayed. Also, you can hide forked or specific repo. #### Github Projects
```js - **Automatic Mode:** Seamlessly showcase your top GitHub projects based on stars or last updated date.
// config.js - **Manual Mode:** Choose specific repositories to highlight.
module.exports = {
```ts
// gitprofile.config.ts
const CONFIG = {
// ... // ...
github: { projects: {
username: 'arifszn', github: {
sortBy: 'stars', display: true, // Display GitHub projects?
limit: 8, header: 'Github Projects',
exclude: { mode: 'automatic', // Mode can be: 'automatic' or 'manual'
forks: false, automatic: {
projects: ['my-project1', 'my-project2'] sortBy: 'stars', // Sort projects by 'stars' or 'updated'
} limit: 8, // How many projects to display.
exclude: {
forks: false, // Forked projects will not be displayed if set to true.
projects: [], // These projects will not be displayed. example: ['arifszn/my-project1', 'arifszn/my-project2']
},
},
manual: {
// Properties for manually specifying projects
projects: ['arifszn/gitprofile', 'arifszn/pandora'], // List of repository names to display. example: ['arifszn/my-project1', 'arifszn/my-project2']
},
},
}, },
} };
```
#### External Projects
- **Highlight Projects Beyond GitHub:** Feature projects hosted on other platforms or personal websites.
- **Control over Content:** Provide custom titles, descriptions, images, and links for each external project.
```ts
// gitprofile.config.ts
const CONFIG = {
// ...
projects: {
external: {
header: 'My Projects',
// To hide the `External Projects` section, keep it empty.
projects: [
{
title: 'Project Name',
description:
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed euismod, nunc ut.',
imageUrl:
'https://img.freepik.com/free-vector/illustration-gallery-icon_53876-27002.jpg',
link: 'https://example.com',
},
{
title: 'Project Name',
description:
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed euismod, nunc ut.',
imageUrl:
'https://img.freepik.com/free-vector/illustration-gallery-icon_53876-27002.jpg',
link: 'https://example.com',
},
],
},
},
};
``` ```
### Blog Posts ### Blog Posts
If you have [medium](https://medium.com) or [dev.to](https://dev.to) account, you can show your recent blog posts in here just by providing your medium/dev.to username. You can limit how many posts to display (Max is <code>10</code>). If you have [medium](https://medium.com) or [dev](https://dev.to) account, you can show your recent blog posts in here just by providing your medium/dev username. You can limit how many posts to display (Max is `10`).
```js ```ts
// config.js // gitprofile.config.ts
module.exports = { const CONFIG = {
// ... // ...
blog: { blog: {
source: 'dev.to', source: 'dev',
username: 'arifszn', username: 'arifszn',
limit: 5 limit: 5,
}, },
} };
``` ```
![Blog](https://arifszn.github.io/assets/img/hosted/ezprofile/blog.png) ![Blog](https://github.com/arifszn/gitprofile/assets/45073703/410124f2-a3c2-48f1-8ec8-0c6fae74ae3d)
The posts are fetched by [Article-api](https://github.com/arifszn/article-api).
## 📢 Please Read
I intend to keep my works open source. Please do not discourage me by claiming this work by copying it as your own. However, You are open to use this project by forking it and change any code necessary by giving attribute to the original author. Please see this [issue](https://github.com/arifszn/ezprofile/issues/11) for more info.
The posts are fetched by [blog.js](https://github.com/arifszn/blog.js).
## 💖 Support ## 💖 Support
If you are using this project and happy with it or just want to encourage me to continue creating stuff, you can do it by just starring and sharing the project. <p>You can show your support by starring this project. ★</p>
<a href="https://github.com/arifszn/gitprofile/stargazers">
<img src="https://img.shields.io/github/stars/arifszn/gitprofile?style=social" alt="Github Star">
</a>
## 💡 Contribute
## 💡 Contributing To contribute, see the [Contributing guide](https://github.com/arifszn/gitprofile/blob/main/CONTRIBUTING.md).
Any contributors who want to make this project better can make contributions, which will be greatly appreciated. To contribute, clone this repo locally and commit your code to a new branch. Feel free to create an issue or make a pull request.
## 📄 License ## 📄 License
**ezProfile** is licensed under the [Apache-2.0 License](https://github.com/arifszn/ezprofile/blob/main/LICENSE). [MIT](https://github.com/arifszn/gitprofile/blob/main/LICENSE)

View File

@@ -1,10 +0,0 @@
module.exports = {
style: {
postcss: {
plugins: [
require('tailwindcss'),
require('autoprefixer'),
],
},
},
}

18
docker-compose.yml Normal file
View File

@@ -0,0 +1,18 @@
version: '3'
services:
app:
build:
context: .
dockerfile: ./node_modules/vail/runtimes/npm/Dockerfile
args:
VAIL_NODE_VERSION: 20
command: npm run dev -- --host 0.0.0.0
ports:
- '5173:5173'
volumes:
- .:/var/www/html
networks:
- vail
networks:
vail:
driver: bridge

222
gitprofile.config.ts Normal file
View File

@@ -0,0 +1,222 @@
// gitprofile.config.ts
const CONFIG = {
github: {
username: 'arifszn', // Your GitHub org/user name. (This is the only required config)
},
/**
* If you are deploying to https://<USERNAME>.github.io/, for example your repository is at https://github.com/arifszn/arifszn.github.io, set base to '/'.
* If you are deploying to https://<USERNAME>.github.io/<REPO_NAME>/,
* for example your repository is at https://github.com/arifszn/portfolio, then set base to '/portfolio/'.
*/
base: '/gitprofile/',
projects: {
github: {
display: true, // Display GitHub projects?
header: 'Github Projects',
mode: 'automatic', // Mode can be: 'automatic' or 'manual'
automatic: {
sortBy: 'stars', // Sort projects by 'stars' or 'updated'
limit: 8, // How many projects to display.
exclude: {
forks: false, // Forked projects will not be displayed if set to true.
projects: [], // These projects will not be displayed. example: ['arifszn/my-project1', 'arifszn/my-project2']
},
},
manual: {
// Properties for manually specifying projects
projects: ['arifszn/gitprofile', 'arifszn/pandora'], // List of repository names to display. example: ['arifszn/my-project1', 'arifszn/my-project2']
},
},
external: {
header: 'My Projects',
// To hide the `External Projects` section, keep it empty.
projects: [
{
title: 'Project Name',
description:
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed euismod, nunc ut.',
imageUrl:
'https://img.freepik.com/free-vector/illustration-gallery-icon_53876-27002.jpg',
link: 'https://example.com',
},
{
title: 'Project Name',
description:
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed euismod, nunc ut.',
imageUrl:
'https://img.freepik.com/free-vector/illustration-gallery-icon_53876-27002.jpg',
link: 'https://example.com',
},
],
},
},
seo: {
title: 'Portfolio of Ariful Alam',
description: '',
imageURL: '',
},
social: {
linkedin: 'ariful-alam',
twitter: 'arif_szn',
mastodon: 'arifszn@mastodon.social',
facebook: '',
instagram: '',
youtube: '', // example: 'pewdiepie'
dribbble: '',
behance: '',
medium: 'arifszn',
dev: 'arifszn',
stackoverflow: '', // example: '1/jeff-atwood'
skype: '',
telegram: '',
website: 'https://www.arifszn.com',
phone: '',
email: 'arifulalamszn@gmail.com',
},
resume: {
fileUrl:
'https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf', // Empty fileUrl will hide the `Download Resume` button.
},
skills: [
'PHP',
'Laravel',
'JavaScript',
'React.js',
'Node.js',
'Nest.js',
'MySQL',
'PostgreSQL',
'Git',
'Docker',
'PHPUnit',
'CSS',
'Antd',
'Tailwind',
],
experiences: [
{
company: 'Company Name',
position: 'Position',
from: 'September 2021',
to: 'Present',
companyLink: 'https://example.com',
},
{
company: 'Company Name',
position: 'Position',
from: 'July 2019',
to: 'August 2021',
companyLink: 'https://example.com',
},
],
certifications: [
{
name: 'Lorem ipsum',
body: 'Lorem ipsum dolor sit amet',
year: 'March 2022',
link: 'https://example.com',
},
],
educations: [
{
institution: 'Institution Name',
degree: 'Degree',
from: '2015',
to: '2019',
},
{
institution: 'Institution Name',
degree: 'Degree',
from: '2012',
to: '2014',
},
],
// Display articles from your medium or dev account. (Optional)
blog: {
source: 'dev', // medium | dev
username: 'arifszn', // to hide blog section, keep it empty
limit: 3, // How many articles to display. Max is 10.
},
googleAnalytics: {
id: '', // GA3 tracking id/GA4 tag id UA-XXXXXXXXX-X | G-XXXXXXXXXX
},
// Track visitor interaction and behavior. https://www.hotjar.com
hotjar: {
id: '',
snippetVersion: 6,
},
themeConfig: {
defaultTheme: 'nord',
// Hides the switch in the navbar
// Useful if you want to support a single color mode
disableSwitch: false,
// Should use the prefers-color-scheme media-query,
// using user system preferences, instead of the hardcoded defaultTheme
respectPrefersColorScheme: false,
// Display the ring in Profile picture
displayAvatarRing: true,
// Available themes. To remove any theme, exclude from here.
themes: [
'light',
'dark',
'cupcake',
'bumblebee',
'emerald',
'corporate',
'synthwave',
'retro',
'cyberpunk',
'valentine',
'halloween',
'garden',
'forest',
'aqua',
'lofi',
'pastel',
'fantasy',
'wireframe',
'black',
'luxury',
'dracula',
'cmyk',
'autumn',
'business',
'acid',
'lemonade',
'night',
'coffee',
'winter',
'dim',
'nord',
'sunset',
'procyon',
],
// Custom theme, applied to `procyon` theme
customTheme: {
primary: '#fc055b',
secondary: '#219aaf',
accent: '#e8d03a',
neutral: '#2A2730',
'base-100': '#E3E3ED',
'--rounded-box': '3rem',
'--rounded-btn': '3rem',
},
},
// Optional Footer. Supports plain text or HTML.
footer: `Made with <a
class="text-primary" href="https://github.com/arifszn/gitprofile"
target="_blank"
rel="noreferrer"
>GitProfile</a> and ❤️`,
enablePWA: true,
};
export default CONFIG;

409
global.d.ts vendored Normal file
View File

@@ -0,0 +1,409 @@
interface Github {
/**
* GitHub org/user name
*/
username: string;
}
interface GitHubProjects {
/**
* Display GitHub projects?
*/
display?: boolean;
/**
* Header
*/
header?: string;
/**
* 'automatic' | 'manual'
*/
mode?: string;
/**
* Config of automatic mode
*/
automatic?: {
/**
* 'stars' | 'updated'
*/
sortBy?: string;
/**
* How many projects to display
*/
limit?: number;
/**
* Exclude projects option
*/
exclude?: {
/**
* Forked projects will not be displayed if set to true
*/
forks?: boolean;
/**
* These projects will not be displayed
*
* example: ['my-project1', 'my-project2']
*/
projects?: Array<string>;
};
};
/**
* Config of manual mode
*/
manual?: {
/**
* These projects will be displayed
*
* example: ['my-project1', 'my-project2']
*/
projects?: Array<string>;
};
}
interface ExternalProjects {
/**
* Header
*/
header?: string;
/**
* Project list
*/
projects?: {
title: string;
description?: string;
imageUrl?: string;
link: string;
}[];
}
interface Projects {
github?: GitHubProjects;
external?: ExternalProjects;
}
interface SEO {
/**
* Meta title
*/
title?: string;
/**
* Meta description
*/
description?: string;
/**
* Meta image
*/
imageURL?: string;
}
interface Social {
/**
* LinkedIn
*/
linkedin?: string;
/**
* Twitter
*/
twitter?: string;
/**
* Mastodon
*/
mastodon?: string;
/**
* Facebook
*/
facebook?: string;
/**
* Instagram
*/
instagram?: string;
/**
* YouTube
*/
youtube?: string;
/**
* Dribbble
*/
dribbble?: string;
/**
* Behance
*/
behance?: string;
/**
* Medium
*/
medium?: string;
/**
* dev
*/
dev?: string;
/**
* Stack Overflow
*/
stackoverflow?: string;
/**
* Website
*/
website?: string;
/**
* Skype username
*/
skype?: string;
/**
* Telegram username
*/
telegram?: string;
/**
* Phone
*/
phone?: string;
/**
* Email
*/
email?: string;
}
interface Resume {
/**
* Resume file urlm
*/
fileUrl?: string;
}
interface Experience {
company?: string;
position?: string;
from: string;
to: string;
companyLink?: string;
}
interface Certification {
body?: string;
name?: string;
year?: string;
link?: string;
}
interface Education {
institution?: string;
degree?: string;
from: string;
to: string;
}
interface GoogleAnalytics {
/**
* GA3 tracking id/GA4 tag id UA-XXXXXXXXX-X | G-XXXXXXXXXX
*/
id?: string;
}
interface Hotjar {
/**
* Hotjar id
*/
id?: string;
/**
* Snippet Version
*/
snippetVersion?: number;
}
interface Blog {
/**
* medium | dev
*/
source?: string;
/**
* Username
*/
username?: string;
/**
* How many articles to display
*
* Max is 10
*/
limit?: number;
}
interface CustomTheme {
/**
* Primary color
*/
primary?: string;
/**
* Secondary color
*/
secondary?: string;
/**
* Accent color
*/
accent?: string;
/**
* Neutral color
*/
neutral?: string;
/**
* Base color of page
*/
'base-100'?: string;
/**
* Border radius of rounded-box
*/
'--rounded-box'?: string;
/**
* Border radius of rounded-btn
*/
'--rounded-btn'?: string;
}
interface ThemeConfig {
/**
* Default theme
*/
defaultTheme?: string;
/**
* Hides the switch in the navbar
*/
disableSwitch?: boolean;
/**
* Should use the prefers-color-scheme media-query
*/
respectPrefersColorScheme?: boolean;
/**
* Hide the ring in Profile picture
*/
displayAvatarRing?: boolean;
/**
* Available themes
*/
themes?: Array<string>;
/**
* Custom theme
*/
customTheme?: CustomTheme;
}
interface Config {
/**
* GitHub config
*/
github: Github;
/**
* Vite's base url
*/
base?: string;
/**
* Projects config
*/
projects?: Projects;
/**
* SEO config
*/
seo?: SEO;
/**
* Social links
*/
social?: Social;
/**
* Skill list
*/
skills?: Array<string>;
/**
* Experience list
*/
experiences?: Array<Experience>;
/**
* Certifications list
*/
certifications?: Array<Certification>;
/**
* Education list
*/
educations?: Array<Education>;
/**
* Resume
*/
resume?: Resume;
/**
* Google Analytics config
*/
googleAnalytics?: GoogleAnalytics;
/**
* Hotjar config
*/
hotjar?: Hotjar;
/**
* Blog config
*/
blog?: Blog;
/**
* Theme config
*/
themeConfig?: ThemeConfig;
/**
* Custom footer
*/
footer?: string;
/**
* Enable PWA
*/
enablePWA?: boolean;
}
declare const CONFIG: Config;

31
index.html Normal file
View File

@@ -0,0 +1,31 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/favicon.ico" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title><%- metaTitle %></title>
<meta property="title" content="<%- metaTitle %>" />
<meta name="description" content="<%- metaDescription %>" />
<meta itemprop="name" content="<%- metaTitle %>" />
<meta itemprop="description" content="<%- metaDescription %>" />
<meta itemprop="image" content="<%- metaImageURL %>" />
<meta property="og:title" content="<%- metaTitle %>" />
<meta property="og:description" content="<%- metaDescription %>" />
<meta property="og:image" content="<%- metaImageURL %>" />
<meta property="og:image:secure_url" content="<%- metaImageURL %>" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="<%- metaTitle %>" />
<meta name="twitter:description" content="<%- metaDescription %>" />
<meta name="twitter:image" content="<%- metaImageURL %>" />
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>

47321
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,79 +1,86 @@
{ {
"name": "ezprofile", "name": "@arifszn/gitprofile",
"version": "1.1.1", "description": "Create an automatic portfolio based on GitHub profile",
"description": "Kickstart your personal portfolio with Github Api and blog", "version": "3.0.0",
"homepage": "https://arifszn.github.io/ezprofile", "type": "module",
"private": true, "license": "MIT",
"license": "Apache-2.0", "author": "arifszn",
"author": "arifszn", "repository": {
"repository": { "type": "git",
"type": "git", "url": "https://github.com/arifszn/gitprofile.git"
"url": "https://github.com/arifszn/ezprofile.git" },
}, "bugs": {
"dependencies": { "url": "https://github.com/arifszn/gitprofile/issues"
"@craco/craco": "^6.2.0", },
"@testing-library/jest-dom": "^5.11.4", "scripts": {
"@testing-library/react": "^11.1.0", "dev": "vite",
"@testing-library/user-event": "^12.1.10", "build": "tsc && vite build",
"article-api": "^1.0.5", "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
"axios": "^0.23.0", "lint:fix": "eslint . --fix --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
"daisyui": "^1.12.1", "prettier": "prettier --check \"./**/*.{js,jsx,ts,tsx,css,md,json}\"",
"gh-pages": "^3.2.3", "prettier:fix": "prettier --write \"./**/*.{js,jsx,ts,tsx,css,md,json}\"",
"moment": "^2.29.1", "preview": "vite preview"
"prop-types": "^15.7.2", },
"react": "^17.0.2", "dependencies": {
"react-dom": "^17.0.2", "react": "^18.2.0",
"react-helmet-async": "^1.1.0", "react-dom": "^18.2.0"
"react-hotjar": "^3.0.1", },
"react-icons": "^4.2.0", "devDependencies": {
"react-scripts": "4.0.3", "@arifszn/blog-js": "^2.0.5",
"sass": "^1.38.0", "@types/react": "^18.2.55",
"web-vitals": "^1.0.1" "@types/react-dom": "^18.2.17",
}, "@typescript-eslint/eslint-plugin": "^6.14.0",
"scripts": { "@typescript-eslint/parser": "^6.14.0",
"start": "craco start", "@vitejs/plugin-react": "^4.2.1",
"build": "craco build", "autoprefixer": "^10.4.17",
"test": "craco test", "axios": "^1.6.7",
"eject": "react-scripts eject", "daisyui": "^4.6.0",
"predeploy": "npm run build", "date-fns": "^3.3.1",
"deploy": "gh-pages -d build" "eslint": "^8.55.0",
}, "eslint-config-prettier": "^9.1.0",
"eslintConfig": { "eslint-plugin-prettier": "^5.1.3",
"extends": [ "eslint-plugin-react-hooks": "^4.6.0",
"react-app", "eslint-plugin-react-refresh": "^0.4.5",
"react-app/jest" "postcss": "^8.4.33",
] "prettier": "^3.2.4",
}, "react-helmet-async": "^2.0.4",
"browserslist": { "react-hotjar": "^6.2.0",
"production": [ "react-icons": "^5.0.1",
">0.2%", "tailwindcss": "^3.4.1",
"not dead", "typescript": "^5.2.2",
"not op_mini all" "vail": "^1.0.3",
], "vite": "^5.0.12",
"development": [ "vite-plugin-html": "^3.2.2",
"last 1 chrome version", "vite-plugin-pwa": "^0.18.2"
"last 1 firefox version", },
"last 1 safari version" "keywords": [
] "git-profile",
}, "gitprofile",
"devDependencies": { "gitportfolio",
"autoprefixer": "^9.8.6", "personal-site",
"postcss": "^7.0.36", "template",
"tailwindcss": "npm:@tailwindcss/postcss7-compat@^2.2.7" "portfolio",
}, "resume",
"keywords": [ "cv",
"personal-site", "personal-website",
"template", "portfolio-website",
"portfolio", "portfolio-site",
"personal-website", "portfolio-template",
"portfolio-website", "portfolio-page",
"portfolio-site", "developer-portfolio",
"portfolio-template", "portfolio-project",
"portfolio-page", "github-portfolio",
"developer-portfolio", "tailwind-portfolio",
"portfolio-project", "vite-portfolio",
"github-portfolio", "projects",
"react-portfolio", "open-source",
"github-api" "git",
] "react-portfolio",
"github",
"github-page",
"github-pages",
"github-portfolio",
"vite-portfolio",
"github-api"
]
} }

6
postcss.config.js Normal file
View File

@@ -0,0 +1,6 @@
export default {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 434 B

After

Width:  |  Height:  |  Size: 655 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 767 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -1,18 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="apple-touch-icon" href="%PUBLIC_URL%/apple-touch-icon.png" />
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<title>Portfolio</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -1,25 +0,0 @@
{
"short_name": "ezProfile",
"name": "Personal Portfolio",
"icons": [
{
"src": "favicon.ico",
"sizes": "64x64 32x32 24x24 16x16",
"type": "image/x-icon"
},
{
"src": "logo192.png",
"type": "image/png",
"sizes": "192x192"
},
{
"src": "logo512.png",
"type": "image/png",
"sizes": "512x512"
}
],
"start_url": ".",
"display": "standalone",
"theme_color": "#7a44ee",
"background_color": "#ffffff"
}

View File

@@ -1,178 +0,0 @@
import axios from "axios";
import { Fragment, useCallback, useContext, useEffect, useState } from "react";
import AvatarCard from "./components/AvatarCard";
import ErrorPage from "./components/ErrorPage";
import ThemeChanger from "./components/ThemeChanger";
import config from "./config";
import moment from 'moment';
import Details from "./components/Details";
import Skill from "./components/Skill";
import Experience from "./components/Experience";
import Education from "./components/Education";
import Project from "./components/Project";
import Blog from "./components/Blog";
import MetaTags from "./components/MetaTags";
import { LoadingContext } from "./contexts/LoadingContext";
import { ThemeContext } from "./contexts/ThemeContext";
function App() {
const [theme] = useContext(ThemeContext);
const [, setLoading] = useContext(LoadingContext);
const [profile, setProfile] = useState(null);
const [repo, setRepo] = useState(null);
const [error, setError] = useState(null);
const [rateLimit, setRateLimit] = useState(null);
useEffect(() => {
if (theme) {
document.documentElement.setAttribute('data-theme', theme);
}
}, [theme])
const loadData = useCallback(() => {
axios.get(`https://api.github.com/users/${config.github.username}`)
.then(response => {
let data = response.data;
let profileData = {
avatar: data.avatar_url,
name: data.name ? data.name : '',
bio: data.bio ? data.bio : '',
location: data.location ? data.location : '',
company: data.company ? data.company : ''
}
setProfile(profileData);
})
.then(() => {
let excludeRepo = ``;
config.github.exclude.projects.forEach(project => {
excludeRepo += `+-repo:${config.github.username}/${project}`;
});
let query = `user:${config.github.username}+fork:${!config.github.exclude.forks}${excludeRepo}`;
let url = `https://api.github.com/search/repositories?q=${query}&sort=${config.github.sortBy}&per_page=${config.github.limit}&type=Repositories`;
axios.get(url, {
headers: {
'Content-Type': 'application/vnd.github.v3+json'
}
})
.then(response => {
let data = response.data;
setRepo(data.items);
})
.catch((error) => {
handleError(error);
});
})
.catch((error) => {
handleError(error);
})
.finally(() => {
setLoading(false);
});
}, [setLoading])
useEffect(() => {
loadData();
}, [loadData])
const handleError = (error) => {
console.error('Error:', error);
try {
setRateLimit({
remaining: error.response.headers['x-ratelimit-remaining'],
reset: moment(new Date(error.response.headers['x-ratelimit-reset'] * 1000)).fromNow(),
});
if (error.response.status === 403) {
setError(429);
} else if (error.response.status === 404) {
setError(404);
} else {
setError(500);
}
} catch (error2) {
setError(500);
}
}
return (
<Fragment>
<MetaTags profile={profile}/>
<div className="fade-in h-screen">
{
error ? (
<ErrorPage
status={`${error}`}
title={(error === 404) ? 'The Github Username is Incorrect' : (
error === 429 ? 'Too Many Requests.' : `Ops!!`
)}
subTitle={
(error === 404) ? (
<p>
Please provide correct github username in <code>src\config.js</code>
</p>
) : (
error === 429 ? (
<p>
Oh no, you hit the{' '}
<a
href="https://developer.github.com/v3/rate_limit/"
target="_blank"
rel="noopener noreferrer"
>
rate limit
</a>
! Try again later{rateLimit && ` ${rateLimit.reset}`}.
</p>
) : `Something went wrong`
)
}
/>
) : (
<Fragment>
<div className="p-4 lg:p-10 min-h-full bg-base-200">
<div className="grid grid-cols-1 lg:grid-cols-3 gap-6 rounded-box">
<div className="col-span-1">
<div className="grid grid-cols-1 gap-6">
{
!config.themeConfig.disableSwitch && (
<ThemeChanger/>
)
}
<AvatarCard profile={profile}/>
<Details profile={profile}/>
<Skill/>
<Experience/>
<Education/>
</div>
</div>
<div className="lg:col-span-2 col-span-1">
<div className="grid grid-cols-1 gap-6">
<Project repo={repo}/>
<Blog/>
</div>
</div>
</div>
</div>
{/* DO NOT REMOVE/MODIFY THE FOOTER. FOR MORE INFO https://github.com/arifszn/ezprofile#-please-read */}
<footer className="p-4 footer bg-base-200 text-base-content footer-center">
<div>
<p className="font-mono text-sm">Made with <a className="text-primary" href="https://github.com/arifszn/ezprofile" target="_blank" rel="noreferrer">ezProfile</a> and </p>
</div>
</footer>
</Fragment>
)
}
</div>
</Fragment>
);
}
export default App;

View File

@@ -1,8 +0,0 @@
import { render, screen } from '@testing-library/react';
import App from './App';
test('renders learn react link', () => {
render(<App />);
const linkElement = screen.getByText(/learn react/i);
expect(linkElement).toBeInTheDocument();
});

92
src/assets/index.css Normal file
View File

@@ -0,0 +1,92 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
* {
scrollbar-width: thin;
}
::-webkit-scrollbar-track {
box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
-moz-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
}
@media screen and (min-width: 966px) {
::-webkit-scrollbar,
.scroller {
width: 8px;
height: 8px;
background-color: #f1f1f1;
}
}
::-webkit-scrollbar-thumb {
background-color: #888;
border-radius: 10px;
}
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
code {
font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
monospace;
}
.text-base-content-important {
color: hsla(var(--bc) / var(--tw-text-opacity)) !important;
}
svg {
vertical-align: unset;
}
.z-hover {
transition: all ease-in-out 0.3s !important;
}
.z-hover:hover,
.z-hover:focus,
.z-hover:active {
transition: transform 0.3s !important;
-ms-transform: scale(1.01) !important;
-webkit-transform: scale(1.01) !important;
transform: scale(1.01) !important;
}
.pb-0-important {
padding-bottom: 0 !important;
}
.fade-in {
opacity: 1;
animation-name: fadeIn;
animation-iteration-count: 1;
animation-timing-function: ease-in;
animation-duration: 1s;
}
@keyframes fadeIn {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@-webkit-keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}

View File

@@ -1,71 +0,0 @@
import { fallbackImage, skeleton } from "../helpers/utils";
import LazyImage from "./LazyImage";
import PropTypes from 'prop-types';
import { useContext } from "react";
import { LoadingContext } from "../contexts/LoadingContext";
const AvatarCard = (props) => {
const [loading] = useContext(LoadingContext);
return (
<div className="card shadow-lg compact bg-base-100">
<div className="grid place-items-center py-8">
{
(loading || !props.profile) ? (
<div className="avatar opacity-90">
<div className="mb-8 rounded-full w-32 h-32">
{
skeleton({
width: 'w-full',
height: 'h-full',
shape: '',
})
}
</div>
</div>
) : (
<div className="avatar opacity-90">
<div className="mb-8 rounded-full w-32 h-32 ring ring-primary ring-offset-base-100 ring-offset-2">
{
<LazyImage
src={props.profile.avatar ? props.profile.avatar : fallbackImage}
alt={props.profile.name}
placeholder={
skeleton({
width: 'w-full',
height: 'h-full',
shape: '',
})
}
/>
}
</div>
</div>
)
}
<div className="text-center mx-auto px-8">
<h5 className="font-bold text-2xl">
{
(loading || !props.profile) ? (
skeleton({ width: 'w-48', height: 'h-8' })
) : <span className="opacity-70">{props.profile.name}</span>
}
</h5>
<div className="mt-3 text-base-content text-opacity-60">
{
(loading || !props.profile) ? (
skeleton({ width: 'w-48', height: 'h-5' })
) : props.profile.bio
}
</div>
</div>
</div>
</div>
)
}
AvatarCard.propTypes = {
profile: PropTypes.object
}
export default AvatarCard;

View File

@@ -1,197 +0,0 @@
import { getDevtoArticle, getMediumArticle } from "article-api";
import moment from "moment";
import { Fragment, useContext, useEffect, useState } from "react";
import { CgHashtag } from 'react-icons/cg';
import config from "../config";
import { LoadingContext } from "../contexts/LoadingContext";
import { ga, skeleton } from "../helpers/utils";
import LazyImage from "./LazyImage";
const displaySection = () => {
if (
typeof config.blog !== 'undefined' &&
typeof config.blog.source !== 'undefined' &&
typeof config.blog.username !== 'undefined' &&
config.blog.source &&
config.blog.username
) {
return true;
} else {
return false;
}
}
const Blog = () => {
const [articles, setArticles] = useState(null);
const [loading] = useContext(LoadingContext);
useEffect(() => {
if (displaySection()) {
if (config.blog.source === 'medium') {
getMediumArticle({
user: config.blog.username
})
.then(res => {
setArticles(res);
});
} else if (config.blog.source === 'dev.to') {
getDevtoArticle({
user: config.blog.username
})
.then(res => {
setArticles(res);
});
}
}
}, [])
const renderSkeleton = () => {
let array = [];
for (let index = 0; index < config.blog.limit; index++) {
array.push((
<div className="card shadow-lg compact bg-base-100" key={index}>
<div className="p-8 h-full w-full">
<div className="flex items-center flex-col md:flex-row">
<div className="avatar mb-5 md:mb-0">
<div className="w-24 h-24 mask mask-squircle">
{
skeleton({
width: 'w-full',
height: 'h-full',
shape: '',
})
}
</div>
</div>
<div className="w-full">
<div className="flex items-start px-4">
<div className="w-full">
<h2>
{skeleton({ width: 'w-full', height: 'h-8', className: 'mb-2 mx-auto md:mx-0' })}
</h2>
{skeleton({ width: 'w-24', height: 'h-3', className: 'mx-auto md:mx-0' })}
<div className="mt-3">
{skeleton({ width: 'w-full', height: 'h-4', className: 'mx-auto md:mx-0' })}
</div>
<div className="mt-4 flex items-center flex-wrap justify-center md:justify-start">
{skeleton({ width: 'w-32', height: 'h-4', className: "md:mr-2 mx-auto md:mx-0" })}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
))
}
return array;
}
const renderArticles = () => {
return articles && articles.slice(0, config.blog.limit).map((article, index) => (
<div
className="card shadow-lg compact bg-base-100 cursor-pointer"
key={index}
onClick={() => {
try {
if (config.googleAnalytics?.id) {
ga.event({
action: "Click Blog Post",
params: {
post: article.title
}
});
}
} catch (error) {
console.error(error);
}
window.open(article.link, '_blank')
}}
>
<div className="p-8 h-full w-full">
<div className="flex items-center flex-col md:flex-row">
<div className="avatar mb-5 md:mb-0 opacity-90">
<div className="w-24 h-24 mask mask-squircle">
<LazyImage
src={article.thumbnail}
alt={'thumbnail'}
placeholder={
skeleton({
width: 'w-full',
height: 'h-full',
shape: '',
})
}
/>
</div>
</div>
<div className="w-full">
<div className="flex items-start px-4">
<div className="text-center md:text-left w-full">
<h2 className="font-semibold text-base-content opacity-60">{article.title}</h2>
<p className="opacity-50 text-xs">
{moment(article.publishedAt).fromNow()}
</p>
<p className="mt-3 text-base-content text-opacity-60 text-sm">
{article.description}
</p>
<div className="mt-4 flex items-center flex-wrap justify-center md:justify-start">
{
article.categories.map((category, index2) => (
<div key={index2} className="flex text-sm mr-3 items-center opacity-50 font-bold font-mono">
<span><CgHashtag /></span>
<span>{category}</span>
</div>
))
}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
))
}
return (
<Fragment>
{
displaySection() && (
<div className="col-span-1 lg:col-span-2">
<div className="grid grid-cols-2 gap-6">
<div className="col-span-2">
<div className="card compact bg-base-100 shadow-sm">
<div className="card-body">
<ul className="menu row-span-3 bg-base-100 text-base-content">
<li>
<div className="pb-0-important mx-4 flex items-center justify-between">
<h5 className="card-title">
{
(loading || !articles) ? skeleton({ width: 'w-28', height: 'h-8' }) : (
<span className="opacity-70">Recent Posts</span>
)
}
</h5>
</div>
</li>
</ul>
</div>
</div>
</div>
<div className="col-span-2">
<div className="grid grid-cols-1 gap-6">
{(loading || !articles) ? renderSkeleton() : renderArticles()}
</div>
</div>
</div>
</div>
)
}
</Fragment>
)
}
export default Blog;

View File

@@ -1,307 +0,0 @@
import { MdLocationOn, MdMail } from 'react-icons/md';
import { AiFillGithub, AiFillMediumSquare } from 'react-icons/ai';
import { SiTwitter } from 'react-icons/si';
import { GrLinkedinOption } from 'react-icons/gr';
import { CgDribbble } from 'react-icons/cg';
import { RiPhoneFill } from 'react-icons/ri';
import { FaBehanceSquare, FaBuilding, FaDev, FaFacebook, FaGlobe } from 'react-icons/fa';
import config from '../config';
import { skeleton } from '../helpers/utils';
import PropTypes from 'prop-types';
import { useContext } from 'react';
import { LoadingContext } from '../contexts/LoadingContext';
const Details = (props) => {
const [loading] = useContext(LoadingContext);
const renderSkeleton = () => {
let array = [];
for (let index = 0; index < 4; index++) {
array.push((
<li key={index}>
<span>
{skeleton({ width: 'w-6', height: 'h-4', className: 'mr-2' })}
{skeleton({ width: 'w-32', height: 'h-4' })}
</span>
</li>
))
}
return array;
}
return (
<div className="card shadow-lg compact bg-base-100">
<div className="card-body">
<ul className="menu row-span-3 bg-base-100 text-base-content text-opacity-60">
{
(loading || !props.profile) ? renderSkeleton() : (
<>
{
props.profile.location && (
<li>
<span>
<div>
<MdLocationOn className="mr-2"/>
</div>
<div>
{props.profile.location}
</div>
</span>
</li>
)
}
{
props.profile.company && (
<li>
<span>
<div>
<FaBuilding className="mr-2"/>
</div>
<div>
{props.profile.company}
</div>
</span>
</li>
)
}
<li>
<span>
<div>
<AiFillGithub className="mr-2"/>
</div>
<div>
<a
href={`https://github.com/${config.github.username}`}
target="_blank"
rel="noreferrer"
className="text-base-content-important"
>
{config.github.username}
</a>
</div>
</span>
</li>
{
typeof config.social.linkedin !== 'undefined' && config.social.linkedin && (
<li>
<span>
<div>
<GrLinkedinOption className="mr-2"/>
</div>
<div>
<a
href={`https://www.linkedin.com/in/${config.social.linkedin}`}
target="_blank"
rel="noreferrer"
className="text-base-content-important"
>
{config.social.linkedin}
</a>
</div>
</span>
</li>
)
}
{
typeof config.social.twitter !== 'undefined' && config.social.twitter && (
<li>
<span>
<div>
<SiTwitter className="mr-2"/>
</div>
<div>
<a
href={`https://twitter.com/${config.social.twitter}`}
target="_blank"
rel="noreferrer"
className="text-base-content-important"
>
{config.social.twitter}
</a>
</div>
</span>
</li>
)
}
{
typeof config.social.dribbble !== 'undefined' && config.social.dribbble && (
<li>
<span>
<div>
<CgDribbble className="mr-2"/>
</div>
<div>
<a
href={`https://dribbble.com/${config.social.dribbble}`}
target="_blank"
rel="noreferrer"
className="text-base-content-important"
>
{config.social.dribbble}
</a>
</div>
</span>
</li>
)
}
{
typeof config.social.behance !== 'undefined' && config.social.behance && (
<li>
<span>
<div>
<FaBehanceSquare className="mr-2"/>
</div>
<div>
<a
href={`https://www.behance.net/${config.social.behance}`}
target="_blank"
rel="noreferrer"
className="text-base-content-important"
>
{config.social.behance}
</a>
</div>
</span>
</li>
)
}
{
typeof config.social.facebook !== 'undefined' && config.social.facebook && (
<li>
<span>
<div>
<FaFacebook className="mr-2"/>
</div>
<div>
<a
href={`https://www.facebook.com/${config.social.facebook}`}
target="_blank"
rel="noreferrer"
className="text-base-content-important"
>
{config.social.facebook}
</a>
</div>
</span>
</li>
)
}
{
typeof config.social.medium !== 'undefined' && config.social.medium && (
<li>
<span>
<div>
<AiFillMediumSquare className="mr-2"/>
</div>
<div>
<a
href={`https://medium.com/@${config.social.medium}`}
target="_blank"
rel="noreferrer"
className="text-base-content-important"
>
{config.social.medium}
</a>
</div>
</span>
</li>
)
}
{
typeof config.social.devto !== 'undefined' && config.social.devto && (
<li>
<span>
<div>
<FaDev className="mr-2"/>
</div>
<div>
<a
href={`https://dev.to/${config.social.devto}`}
target="_blank"
rel="noreferrer"
className="text-base-content-important"
>
{config.social.devto}
</a>
</div>
</span>
</li>
)
}
{
typeof config.social.website !== 'undefined' && config.social.website && (
<li>
<span>
<div>
<FaGlobe className="mr-2"/>
</div>
<div>
<a
href={`${config.social.website}`}
target="_blank"
rel="noreferrer"
className="text-base-content-important"
>
{config.social.website}
</a>
</div>
</span>
</li>
)
}
{
typeof config.social.phone !== 'undefined' && config.social.phone && (
<li>
<span>
<div>
<RiPhoneFill className="mr-2"/>
</div>
<div>
<a
href={`tel:${config.social.phone}`}
rel="noreferrer"
className="text-base-content-important"
>
{config.social.phone}
</a>
</div>
</span>
</li>
)
}
{
typeof config.social.email !== 'undefined' && config.social.email && (
<li>
<span>
<div>
<MdMail className="mr-2"/>
</div>
<div>
<a
href={`mailto:${config.social.email}`}
target="_blank"
rel="noreferrer"
className="text-base-content-important"
>
{config.social.email}
</a>
</div>
</span>
</li>
)
}
</>
)
}
</ul>
</div>
</div>
)
}
Details.propTypes = {
profile: PropTypes.object
}
export default Details;

View File

@@ -1,91 +0,0 @@
import config from "../config";
import { GoPrimitiveDot } from 'react-icons/go';
import { skeleton } from "../helpers/utils";
import { useContext } from "react";
import { LoadingContext } from "../contexts/LoadingContext";
const Education = () => {
const [loading] = useContext(LoadingContext);
const renderSkeleton = () => {
let array = [];
for (let index = 0; index < 2; index++) {
array.push((
<li key={index}>
<span>
{skeleton({ width: 'w-2', height: 'h-2', className: "mr-2" })}
<div className="w-full">
<div className="block justify-between">
<div>
{skeleton({ width: 'w-9/12', height: 'h-4', className: "mb-2" })}
</div>
<div>
{skeleton({ width: 'w-6/12', height: 'h-4', className: "mb-2" })}
</div>
</div>
<div>
{skeleton({ width: 'w-6/12', height: 'h-3' })}
</div>
</div>
</span>
</li>
))
}
return array;
}
return (
<>
{
(typeof config.education !== 'undefined' && config.education.length !== 0) && (
<div className="card shadow-lg compact bg-base-100">
<div className="card-body">
<ul className="menu row-span-3 bg-base-100 text-base-content">
<li>
<div className="pb-0-important mx-3">
<h5 className="card-title">
{
loading ? skeleton({width: 'w-32', height: 'h-8'}) : (
<span className="opacity-70">Education</span>
)
}
</h5>
</div>
</li>
{
loading ? renderSkeleton() : (
config.education.map((item, index) => (
<li key={index}>
<span>
<div>
<GoPrimitiveDot className="mr-2 opacity-40"/>
</div>
<div>
<div className="block justify-between">
<div className="font-medium opacity-70">
{item.institution}
</div>
<div className="opacity-50">
{item.from} - {item.to}
</div>
</div>
<div className="opacity-70">
{item.degree}
</div>
</div>
</span>
</li>
))
)
}
</ul>
</div>
</div>
)
}
</>
)
}
export default Education;

View File

@@ -1,27 +0,0 @@
import PropTypes from 'prop-types';
const ErrorPage = (props) => {
return (
<div className="min-w-screen min-h-screen bg-base-200 flex items-center p-5 lg:p-20 overflow-hidden relative">
<div className="flex-1 min-h-full min-w-full rounded-3xl bg-base-100 shadow-xl p-10 lg:p-20 text-gray-800 relative md:flex items-center text-center md:text-left">
<div className="w-full">
<div className="mb-10 md:mb-20 mt-10 md:mt-20 text-gray-600 font-light">
<h1 className="font-black uppercase text-3xl lg:text-5xl text-primary mb-10">{props.status}</h1>
<p className="text-lg pb-2 text-base-content">{props.title}</p>
<p className="text-base-content text-opacity-60">{props.subTitle}</p>
</div>
</div>
</div>
<div className="w-64 md:w-96 h-96 md:h-full bg-accent bg-opacity-10 absolute -top-64 md:-top-96 right-20 md:right-32 rounded-full pointer-events-none -rotate-45 transform"></div>
<div className="w-96 h-full bg-secondary bg-opacity-10 absolute -bottom-96 right-64 rounded-full pointer-events-none -rotate-45 transform"></div>
</div>
)
}
ErrorPage.propTypes = {
status: PropTypes.string.isRequired,
title: PropTypes.string.isRequired,
subTitle: PropTypes.string.isRequired
}
export default ErrorPage;

View File

@@ -1,91 +0,0 @@
import config from "../config";
import { GoPrimitiveDot } from 'react-icons/go';
import { skeleton } from "../helpers/utils";
import { useContext } from "react";
import { LoadingContext } from "../contexts/LoadingContext";
const Experience = () => {
const [loading] = useContext(LoadingContext);
const renderSkeleton = () => {
let array = [];
for (let index = 0; index < 2; index++) {
array.push((
<li key={index}>
<span>
{skeleton({ width: 'w-2', height: 'h-2', className: "mr-2" })}
<div className="w-full">
<div className="block justify-between">
<div>
{skeleton({ width: 'w-9/12', height: 'h-4', className: "mb-2" })}
</div>
<div>
{skeleton({ width: 'w-6/12', height: 'h-4', className: "mb-2" })}
</div>
</div>
<div>
{skeleton({ width: 'w-6/12', height: 'h-3' })}
</div>
</div>
</span>
</li>
))
}
return array;
}
return (
<>
{
(typeof config.experiences !== 'undefined' && config.experiences.length !== 0) && (
<div className="card shadow-lg compact bg-base-100">
<div className="card-body">
<ul className="menu row-span-3 bg-base-100 text-base-content">
<li>
<div className="pb-0-important mx-3">
<h5 className="card-title">
{
loading ? skeleton({width: 'w-32', height: 'h-8'}) : (
<span className="opacity-70">Experience</span>
)
}
</h5>
</div>
</li>
{
loading ? renderSkeleton() : (
config.experiences.map((experience, index) => (
<li key={index}>
<span>
<div>
<GoPrimitiveDot className="mr-2 opacity-40"/>
</div>
<div>
<div className="block justify-between">
<div className="font-medium opacity-70">
{experience.company}
</div>
<div className="opacity-50">
{experience.from} - {experience.to}
</div>
</div>
<div className="opacity-70">
{experience.position}
</div>
</div>
</span>
</li>
))
)
}
</ul>
</div>
</div>
)
}
</>
)
}
export default Experience;

View File

@@ -1,30 +0,0 @@
import { useState, Fragment, useEffect } from 'react';
const LazyImage = ({ placeholder, src, alt, ...rest }) => {
const [loading, setLoading] = useState(true);
useEffect(() => {
const imageToLoad = new Image();
imageToLoad.src = src;
imageToLoad.onload = () => {
setLoading(false);
}
}, [src])
return (
<Fragment>
{
loading ? placeholder : (
<img
src={src}
alt={alt}
{...rest}
/>
)
}
</Fragment>
)
}
export default LazyImage;

View File

@@ -1,66 +0,0 @@
import React, { Fragment, useContext } from 'react';
import { Helmet } from "react-helmet-async";
import config from '../config';
import { isThemeDarkish } from '../helpers/utils';
import PropTypes from 'prop-types';
import { ThemeContext } from '../contexts/ThemeContext';
const MetaTags = (props) => {
const [theme] = useContext(ThemeContext);
return (
<Fragment>
{
props.profile && (
<Helmet>
{
config.googleAnalytics?.id && (
<script async src={`https://www.googletagmanager.com/gtag/js?id=${config.googleAnalytics.id}`}></script>
)
}
{
config.googleAnalytics?.id && (
<script>
{
`
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', '${config.googleAnalytics.id}');
`
}
</script>
)
}
<title>Portfolio of {props.profile.name}</title>
<meta name="theme-color" content={isThemeDarkish(theme) ? '#000000' : '#ffffff'}/>
<meta name="description" content={props.profile.bio} />
<meta itemprop="name" content={`Portfolio of ${props.profile.name}`} />
<meta itemprop="description" content={props.profile.bio} />
<meta itemprop="image" content={props.profile.avatar} />
<meta property="og:url" content={typeof config.social.website !== 'undefined' ? config.social.website : ''} />
<meta property="og:type" content="website" />
<meta property="og:title" content={`Portfolio of ${props.profile.name}`} />
<meta property="og:description" content={props.profile.bio} />
<meta property="og:image" content={props.profile.avatar} />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={`Portfolio of ${props.profile.name}`} />
<meta name="twitter:description" content={props.profile.bio} />
<meta name="twitter:image" content={props.profile.avatar} />
</Helmet>
)
}
</Fragment>
)
}
MetaTags.propTypes = {
profile: PropTypes.object
}
export default MetaTags;

View File

@@ -1,162 +0,0 @@
import { Fragment, useContext } from "react";
import { ga, languageColor, skeleton } from "../helpers/utils";
import { AiOutlineStar, AiOutlineFork } from 'react-icons/ai';
import config from "../config";
import PropTypes from 'prop-types';
import { LoadingContext } from "../contexts/LoadingContext";
const Project = (props) => {
const [loading] = useContext(LoadingContext);
const renderSkeleton = () => {
let array = [];
for (let index = 0; index < config.github.limit; index++) {
array.push((
<div className="card shadow-lg compact bg-base-100" key={index}>
<div className="flex justify-between flex-col p-8 h-full w-full">
<div>
<div className="flex items-center">
<span>
<h5 className="card-title text-lg">
{skeleton({ width: 'w-32', height: 'h-8' })}
</h5>
</span>
</div>
<div className="mb-5 mt-1">
{skeleton({ width: 'w-full', height: 'h-4', className: 'mb-2' })}
{skeleton({ width: 'w-full', height: 'h-4' })}
</div>
</div>
<div className="flex justify-between">
<div className="flex flex-grow">
<span className="mr-3 flex items-center">
{skeleton({ width: 'w-12', height: 'h-4' })}
</span>
<span className="flex items-center">
{skeleton({ width: 'w-12', height: 'h-4' })}
</span>
</div>
<div>
<span className="flex items-center">
{skeleton({ width: 'w-12', height: 'h-4' })}
</span>
</div>
</div>
</div>
</div>
))
}
return array;
}
const renderProjects = () => {
return props.repo.map((item, index) => (
<div
className="card shadow-lg compact bg-base-100 cursor-pointer"
key={index}
onClick={() => {
try {
if (config.googleAnalytics?.id) {
ga.event({
action: "Click project",
params: {
project: item.name
}
});
}
} catch (error) {
console.error(error);
}
window.open(item.html_url, '_blank')
}}
>
<div className="flex justify-between flex-col p-8 h-full w-full">
<div>
<div className="flex items-center opacity-60">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" className="inline-block w-5 h-5 mr-2 stroke-current"><path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"></path></svg>
<span>
<h5 className="card-title text-lg">
{item.name}
</h5>
</span>
</div>
<p className="mb-5 mt-1 text-base-content text-opacity-60 text-sm">
{item.description}
</p>
</div>
<div className="flex justify-between text-sm text-base-content text-opacity-60">
<div className="flex flex-grow">
<span className="mr-3 flex items-center">
<AiOutlineStar className="mr-0.5" />
<span>{item.stargazers_count}</span>
</span>
<span className="flex items-center">
<AiOutlineFork className="mr-0.5" />
<span>{item.forks_count}</span>
</span>
</div>
<div>
<span className="flex items-center">
<div className="w-3 h-3 rounded-full mr-1 opacity-60" style={{ backgroundColor: languageColor(item.language) }} />
<span>{item.language}</span>
</span>
</div>
</div>
</div>
</div>
));
}
return (
<Fragment>
<div className="col-span-1 lg:col-span-2">
<div className="grid grid-cols-2 gap-6">
<div className="col-span-2">
<div className="card compact bg-base-100 shadow-sm">
<div className="card-body">
<ul className="menu row-span-3 bg-base-100 text-base-content">
<li>
<div className="pb-0-important mx-4 flex items-center justify-between">
<h5 className="card-title">
{
loading ? skeleton({ width: 'w-28', height: 'h-8' }) : (
<span className="opacity-70">My Projects</span>
)
}
</h5>
{
loading ? skeleton({ width: 'w-10', height: 'h-5' }) : (
<a
href={`https://github.com/${config.github.username}?tab=repositories`}
target="_blank"
rel="noreferrer"
className="opacity-50"
>
See All
</a>
)
}
</div>
</li>
</ul>
</div>
</div>
</div>
<div className="col-span-2">
<div className="grid grid-cols-1 md:grid-cols-2 gap-6">
{(loading || !props.repo) ? renderSkeleton() : renderProjects()}
</div>
</div>
</div>
</div>
</Fragment>
)
}
Project.propTypes = {
repo: PropTypes.array
}
export default Project;

View File

@@ -1,58 +0,0 @@
import { useContext } from "react";
import config from "../config";
import { LoadingContext } from "../contexts/LoadingContext";
import { skeleton } from "../helpers/utils";
const Skill = () => {
const [loading] = useContext(LoadingContext);
const renderSkeleton = () => {
let array = [];
for (let index = 0; index < 12; index++) {
array.push((
<div key={index}>
{skeleton({ width: 'w-16', height: 'h-4', className: 'm-1' })}
</div>
))
}
return array;
}
return (
<>
{
(typeof config.skills !== 'undefined' && config.skills.length !== 0) && (
<div className="card shadow-lg compact bg-base-100">
<div className="card-body">
<div className="mx-3">
<h5 className="card-title">
{
loading ? skeleton({width: 'w-32', height: 'h-8'}) : (
<span className="opacity-70">Tech Stack</span>
)
}
</h5>
</div>
<div className="p-3 flow-root">
<div className="-m-1 flex flex-wrap">
{
loading ? renderSkeleton() : (
config.skills.map((skill, index) => (
<div key={index} className="m-1 text-xs inline-flex items-center font-bold leading-sm uppercase px-3 py-1 badge-primary bg-opacity-75 rounded-full">
{skill}
</div>
))
)
}
</div>
</div>
</div>
</div>
)
}
</>
)
}
export default Skill;

View File

@@ -1,78 +0,0 @@
import config from '../config';
import { skeleton } from '../helpers/utils';
import { AiOutlineControl } from 'react-icons/ai';
import { useContext } from 'react';
import { ThemeContext } from '../contexts/ThemeContext';
import { LoadingContext } from '../contexts/LoadingContext';
const ThemeChanger = () => {
const [theme, setTheme] = useContext(ThemeContext);
const [loading] = useContext(LoadingContext);
const changeTheme = (e, selectedTheme) => {
e.preventDefault();
document.querySelector('html').setAttribute('data-theme', selectedTheme);
localStorage.setItem('ezprofile-theme', selectedTheme);
setTheme(selectedTheme);
}
return (
<div className="card overflow-visible shadow-lg compact bg-base-100">
<div className="flex-row items-center space-x-4 flex pl-6 pr-2 py-4">
<div className="flex-1">
<h5 className="card-title">
{
loading ? skeleton({ width: 'w-20', height: 'h-8' }) : (
<span className="opacity-70">Theme</span>
)
}
</h5>
<span className="text-base-content text-opacity-40 capitalize text-sm">
{
loading ? skeleton({ width: 'w-16', height: 'h-5' }) : (theme === config.themeConfig.default ? 'Default' : theme)
}
</span>
</div>
<div className="flex-0">
{
loading ? skeleton({ width: 'w-14 md:w-28', height: 'h-10', className: 'mr-6' }) : (
<div title="Change Theme" className="dropdown dropdown-end">
<div tabIndex={0} className="btn btn-ghost m-1 normal-case opacity-50">
<AiOutlineControl className="inline-block w-5 h-5 stroke-current md:mr-2"/>
<span className="hidden md:inline">
Change Theme
</span>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1792 1792" className="inline-block w-4 h-4 ml-1 fill-current">
<path d="M1395 736q0 13-10 23l-466 466q-10 10-23 10t-23-10l-466-466q-10-10-10-23t10-23l50-50q10-10 23-10t23 10l393 393 393-393q10-10 23-10t23 10l50 50q10 10 10 23z" />
</svg>
</div>
<div tabIndex={0} className="mt-16 overflow-y-auto shadow-2xl top-px dropdown-content h-96 w-52 rounded-b-box bg-base-200 text-base-content">
<ul className="p-4 menu compact">
{
[config.themeConfig.default, ...config.themeConfig.themes.filter(item => item !== config.themeConfig.default)].map((item, index) => (
<li key={index}>
{/* eslint-disable-next-line */}
<a
onClick={(e) => changeTheme(e, item)}
className={`${theme === item ? 'active' : ''}`}
>
<span className="opacity-60 capitalize">
{item === config.themeConfig.default ? 'Default' : item}
</span>
</a>
</li>
))
}
</ul>
</div>
</div>
)
}
</div>
</div>
</div>
)
}
export default ThemeChanger;

View File

@@ -0,0 +1,100 @@
import { FALLBACK_IMAGE } from '../../constants';
import { Profile } from '../../interfaces/profile';
import { skeleton } from '../../utils';
import LazyImage from '../lazy-image';
interface AvatarCardProps {
profile: Profile | null;
loading: boolean;
avatarRing: boolean;
resumeFileUrl?: string;
}
/**
* Renders an AvatarCard component.
* @param profile - The profile object.
* @param loading - A boolean indicating if the profile is loading.
* @param avatarRing - A boolean indicating if the avatar should have a ring.
* @param resumeFileUrl - The URL of the resume file.
* @returns JSX element representing the AvatarCard.
*/
const AvatarCard: React.FC<AvatarCardProps> = ({
profile,
loading,
avatarRing,
resumeFileUrl,
}): JSX.Element => {
return (
<div className="card shadow-lg compact bg-base-100">
<div className="grid place-items-center py-8">
{loading || !profile ? (
<div className="avatar opacity-90">
<div className="mb-8 rounded-full w-32 h-32">
{skeleton({
widthCls: 'w-full',
heightCls: 'h-full',
shape: '',
})}
</div>
</div>
) : (
<div className="avatar opacity-90">
<div
className={`mb-8 rounded-full w-32 h-32 ${
avatarRing
? 'ring ring-primary ring-offset-base-100 ring-offset-2'
: ''
}`}
>
{
<LazyImage
src={profile.avatar ? profile.avatar : FALLBACK_IMAGE}
alt={profile.name}
placeholder={skeleton({
widthCls: 'w-full',
heightCls: 'h-full',
shape: '',
})}
/>
}
</div>
</div>
)}
<div className="text-center mx-auto px-8">
<h5 className="font-bold text-2xl">
{loading || !profile ? (
skeleton({ widthCls: 'w-48', heightCls: 'h-8' })
) : (
<span className="text-base-content opacity-70">
{profile.name}
</span>
)}
</h5>
<div className="mt-3 text-base-content text-opacity-60 font-mono">
{loading || !profile
? skeleton({ widthCls: 'w-48', heightCls: 'h-5' })
: profile.bio}
</div>
</div>
{resumeFileUrl &&
(loading ? (
<div className="mt-6">
{skeleton({ widthCls: 'w-40', heightCls: 'h-8' })}
</div>
) : (
<a
href={resumeFileUrl}
target="_blank"
className="btn btn-outline btn-sm text-xs mt-6 opacity-50"
download
rel="noreferrer"
>
Download Resume
</a>
))}
</div>
</div>
);
};
export default AvatarCard;

View File

@@ -0,0 +1,209 @@
import { useEffect, useState } from 'react';
import LazyImage from '../lazy-image';
import { AiOutlineContainer } from 'react-icons/ai';
import { getDevPost, getMediumPost } from '@arifszn/blog-js';
import { formatDistance } from 'date-fns';
import { SanitizedBlog } from '../../interfaces/sanitized-config';
import { ga, skeleton } from '../../utils';
import { Article } from '../../interfaces/article';
const BlogCard = ({
loading,
blog,
googleAnalyticsId,
}: {
loading: boolean;
blog: SanitizedBlog;
googleAnalyticsId?: string;
}) => {
const [articles, setArticles] = useState<Article[]>([]);
useEffect(() => {
if (blog.source === 'medium') {
getMediumPost({
user: blog.username,
}).then((res) => {
setArticles(res);
});
} else if (blog.source === 'dev') {
getDevPost({
user: blog.username,
}).then((res) => {
setArticles(res);
});
}
}, [blog.source, blog.username]);
const renderSkeleton = () => {
const array = [];
for (let index = 0; index < blog.limit; index++) {
array.push(
<div className="card shadow-lg compact bg-base-100" key={index}>
<div className="p-8 h-full w-full">
<div className="flex items-center flex-col md:flex-row">
<div className="avatar mb-5 md:mb-0">
<div className="w-24 h-24 mask mask-squircle">
{skeleton({
widthCls: 'w-full',
heightCls: 'h-full',
shape: '',
})}
</div>
</div>
<div className="w-full">
<div className="flex items-start px-4">
<div className="w-full">
<h2>
{skeleton({
widthCls: 'w-full',
heightCls: 'h-8',
className: 'mb-2 mx-auto md:mx-0',
})}
</h2>
{skeleton({
widthCls: 'w-24',
heightCls: 'h-3',
className: 'mx-auto md:mx-0',
})}
<div className="mt-3">
{skeleton({
widthCls: 'w-full',
heightCls: 'h-4',
className: 'mx-auto md:mx-0',
})}
</div>
<div className="mt-4 flex items-center flex-wrap justify-center md:justify-start">
{skeleton({
widthCls: 'w-32',
heightCls: 'h-4',
className: 'md:mr-2 mx-auto md:mx-0',
})}
</div>
</div>
</div>
</div>
</div>
</div>
</div>,
);
}
return array;
};
const renderArticles = () => {
return articles && articles.length ? (
articles.slice(0, blog.limit).map((article, index) => (
<a
className="card shadow-lg compact bg-base-100 cursor-pointer"
key={index}
href={article.link}
onClick={(e) => {
e.preventDefault();
try {
if (googleAnalyticsId) {
ga.event('Click Blog Post', {
post: article.title,
});
}
} catch (error) {
console.error(error);
}
window?.open(article.link, '_blank');
}}
>
<div className="p-8 h-full w-full">
<div className="flex items-center flex-col md:flex-row">
<div className="avatar mb-5 md:mb-0 opacity-90">
<div className="w-24 h-24 mask mask-squircle">
<LazyImage
src={article.thumbnail}
alt={'thumbnail'}
placeholder={skeleton({
widthCls: 'w-full',
heightCls: 'h-full',
shape: '',
})}
/>
</div>
</div>
<div className="w-full">
<div className="flex items-start px-4">
<div className="text-center md:text-left w-full">
<h2 className="font-semibold text-base-content opacity-60">
{article.title}
</h2>
<p className="text-base-content opacity-50 text-xs">
{formatDistance(article.publishedAt, new Date(), {
addSuffix: true,
})}
</p>
<p className="mt-3 text-base-content text-opacity-60 text-sm">
{article.description}
</p>
<div className="mt-4 flex items-center flex-wrap justify-center md:justify-start">
{article.categories.map((category, index2) => (
<div
className="py-2 px-4 text-xs leading-3 rounded-full bg-base-300 mr-1 mb-1 opacity-50 text-base-content"
key={index2}
>
#{category}
</div>
))}
</div>
</div>
</div>
</div>
</div>
</div>
</a>
))
) : (
<div className="text-center mb-6">
<AiOutlineContainer className="mx-auto h-12 w-12 opacity-30" />
<p className="mt-1 text-sm opacity-50 text-base-content">
No recent post
</p>
</div>
);
};
return (
<div className="col-span-1 lg:col-span-2">
<div className="grid grid-cols-2 gap-6">
<div className="col-span-2">
<div
className={`card compact bg-base-100 ${
loading || (articles && articles.length)
? 'shadow bg-opacity-40'
: 'shadow-lg'
}`}
>
<div className="card-body">
<div className="mx-3 mb-2">
<h5 className="card-title">
{loading ? (
skeleton({ widthCls: 'w-28', heightCls: 'h-8' })
) : (
<span className="text-base-content opacity-70">
My Articles
</span>
)}
</h5>
</div>
<div className="col-span-2">
<div className="grid grid-cols-1 gap-6">
{loading || !articles ? renderSkeleton() : renderArticles()}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
);
};
export default BlogCard;

View File

@@ -0,0 +1,99 @@
import React from 'react';
import { SanitizedCertification } from '../../interfaces/sanitized-config';
import { skeleton } from '../../utils';
const ListItem = ({
year,
name,
body,
link,
}: {
year?: React.ReactNode;
name?: React.ReactNode;
body?: React.ReactNode;
link?: string;
}) => (
<li className="mb-5 ml-4">
<div
className="absolute w-2 h-2 bg-base-300 rounded-full border border-base-300 mt-1.5"
style={{ left: '-4.5px' }}
></div>
<div className="my-0.5 text-xs">{year}</div>
<div className="font-semibold">
<a href={link} target="_blank" rel="noreferrer">
{name}
</a>
</div>
<h3 className="mb-4 font-normal">{body}</h3>
</li>
);
const CertificationCard = ({
certifications,
loading,
}: {
certifications: SanitizedCertification[];
loading: boolean;
}) => {
const renderSkeleton = () => {
const array = [];
for (let index = 0; index < 2; index++) {
array.push(
<ListItem
key={index}
year={skeleton({
widthCls: 'w-5/12',
heightCls: 'h-4',
})}
name={skeleton({
widthCls: 'w-6/12',
heightCls: 'h-4',
className: 'my-1.5',
})}
body={skeleton({ widthCls: 'w-6/12', heightCls: 'h-3' })}
/>,
);
}
return array;
};
return (
<div className="card shadow-lg compact bg-base-100">
<div className="card-body">
<div className="mx-3">
<h5 className="card-title">
{loading ? (
skeleton({ widthCls: 'w-32', heightCls: 'h-8' })
) : (
<span className="text-base-content opacity-70">
Certification
</span>
)}
</h5>
</div>
<div className="text-base-content text-opacity-60">
<ol className="relative border-l border-base-300 border-opacity-30 my-2 mx-4">
{loading ? (
renderSkeleton()
) : (
<>
{certifications.map((certification, index) => (
<ListItem
key={index}
year={`${certification.year}`}
name={certification.name}
body={certification.body}
link={certification.link ? certification.link : undefined}
/>
))}
</>
)}
</ol>
</div>
</div>
</div>
);
};
export default CertificationCard;

View File

@@ -0,0 +1,293 @@
import { MdLocationOn } from 'react-icons/md';
import {
AiFillGithub,
AiFillInstagram,
AiFillMediumSquare,
} from 'react-icons/ai';
import { SiTwitter } from 'react-icons/si';
import { CgDribbble } from 'react-icons/cg';
import { RiPhoneFill, RiMailFill } from 'react-icons/ri';
import { Fragment } from 'react';
import {
FaBehanceSquare,
FaBuilding,
FaDev,
FaFacebook,
FaGlobe,
FaSkype,
FaMastodon,
FaStackOverflow,
FaTelegram,
FaLinkedin,
FaYoutube,
} from 'react-icons/fa';
import { skeleton } from '../../utils';
import { Profile } from '../../interfaces/profile';
import {
SanitizedGithub,
SanitizedSocial,
} from '../../interfaces/sanitized-config';
type Props = {
profile: Profile | null;
loading: boolean;
social: SanitizedSocial;
github: SanitizedGithub;
};
const isCompanyMention = (company: string): boolean => {
return company.startsWith('@') && !company.includes(' ');
};
const companyLink = (company: string): string => {
return `https://github.com/${company.substring(1)}`;
};
const getFormattedMastodonValue = (
mastodonValue: string,
isLink: boolean,
): string => {
const [username, server] = mastodonValue.split('@');
if (isLink) {
return `https://${server}/@${username}`;
} else {
return `${username}@${server}`;
}
};
const ListItem: React.FC<{
icon: React.ReactNode;
title: React.ReactNode;
value: React.ReactNode;
link?: string;
skeleton?: boolean;
}> = ({ icon, title, value, link, skeleton = false }) => {
return (
<a
href={link}
target="_blank"
rel="noreferrer"
className="flex justify-start py-2 px-1 items-center"
>
<div className="flex-grow font-medium gap-2 flex items-center my-1">
{icon} {title}
</div>
<div
className={`${
skeleton ? 'flex-grow' : ''
} text-sm font-normal text-right mr-2 ml-3 ${link ? 'truncate' : ''}`}
style={{
wordBreak: 'break-word',
}}
>
{value}
</div>
</a>
);
};
/**
* Renders the details card component.
*
* @param {Object} profile - The profile object.
* @param {boolean} loading - Indicates whether the data is loading.
* @param {Object} social - The social object.
* @param {Object} github - The GitHub object.
* @return {JSX.Element} The details card component.
*/
const DetailsCard = ({ profile, loading, social, github }: Props) => {
const renderSkeleton = () => {
const array = [];
for (let index = 0; index < 4; index++) {
array.push(
<ListItem
key={index}
skeleton={true}
icon={skeleton({ widthCls: 'w-4', heightCls: 'h-4' })}
title={skeleton({ widthCls: 'w-24', heightCls: 'h-4' })}
value={skeleton({ widthCls: 'w-full', heightCls: 'h-4' })}
/>,
);
}
return array;
};
return (
<div className="card shadow-lg compact bg-base-100">
<div className="card-body">
<div className="text-base-content text-opacity-60">
{loading || !profile ? (
renderSkeleton()
) : (
<Fragment>
{profile.location && (
<ListItem
icon={<MdLocationOn />}
title="Based in:"
value={profile.location}
/>
)}
{profile.company && (
<ListItem
icon={<FaBuilding />}
title="Company:"
value={profile.company}
link={
isCompanyMention(profile.company.trim())
? companyLink(profile.company.trim())
: undefined
}
/>
)}
<ListItem
icon={<AiFillGithub />}
title="GitHub:"
value={github.username}
link={`https://github.com/${github.username}`}
/>
{social?.twitter && (
<ListItem
icon={<SiTwitter />}
title="Twitter:"
value={social.twitter}
link={`https://twitter.com/${social.twitter}`}
/>
)}
{social?.mastodon && (
<ListItem
icon={<FaMastodon />}
title="Mastodon:"
value={getFormattedMastodonValue(social.mastodon, false)}
link={getFormattedMastodonValue(social.mastodon, true)}
/>
)}
{social?.linkedin && (
<ListItem
icon={<FaLinkedin />}
title="LinkedIn:"
value={social.linkedin}
link={`https://www.linkedin.com/in/${social.linkedin}`}
/>
)}
{social?.dribbble && (
<ListItem
icon={<CgDribbble />}
title="Dribbble:"
value={social.dribbble}
link={`https://dribbble.com/${social.dribbble}`}
/>
)}
{social?.behance && (
<ListItem
icon={<FaBehanceSquare />}
title="Behance:"
value={social.behance}
link={`https://www.behance.net/${social.behance}`}
/>
)}
{social?.facebook && (
<ListItem
icon={<FaFacebook />}
title="Facebook:"
value={social.facebook}
link={`https://www.facebook.com/${social.facebook}`}
/>
)}
{social?.instagram && (
<ListItem
icon={<AiFillInstagram />}
title="Instagram:"
value={social.instagram}
link={`https://www.instagram.com/${social.instagram}`}
/>
)}
{social?.youtube && (
<ListItem
icon={<FaYoutube />}
title="YouTube:"
value={`@${social.youtube}`}
link={`https://www.youtube.com/@${social.youtube}`}
/>
)}
{social?.medium && (
<ListItem
icon={<AiFillMediumSquare />}
title="Medium:"
value={social.medium}
link={`https://medium.com/@${social.medium}`}
/>
)}
{social?.dev && (
<ListItem
icon={<FaDev />}
title="Dev:"
value={social.dev}
link={`https://dev.to/${social.dev}`}
/>
)}
{social?.stackoverflow && (
<ListItem
icon={<FaStackOverflow />}
title="Stack Overflow:"
value={social.stackoverflow.split('/').slice(-1)}
link={`https://stackoverflow.com/users/${social.stackoverflow}`}
/>
)}
{social?.website && (
<ListItem
icon={<FaGlobe />}
title="Website:"
value={social.website
.replace('https://', '')
.replace('http://', '')}
link={
!social.website.startsWith('http')
? `http://${social.website}`
: social.website
}
/>
)}
{social?.skype && (
<ListItem
icon={<FaSkype />}
title="Skype"
value={social.skype}
link={`skype:${social.skype}?chat`}
/>
)}
{social?.telegram && (
<ListItem
icon={<FaTelegram />}
title="Telegram"
value={social.telegram}
link={`https://t.me/${social.telegram}`}
/>
)}
{social?.phone && (
<ListItem
icon={<RiPhoneFill />}
title="Phone:"
value={social.phone}
link={`tel:${social.phone}`}
/>
)}
{social?.email && (
<ListItem
icon={<RiMailFill />}
title="Email:"
value={social.email}
link={`mailto:${social.email}`}
/>
)}
</Fragment>
)}
</div>
</div>
</div>
);
};
export default DetailsCard;

View File

@@ -0,0 +1,90 @@
import React from 'react';
import { SanitizedEducation } from '../../interfaces/sanitized-config';
import { skeleton } from '../../utils';
const ListItem = ({
time,
degree,
institution,
}: {
time: React.ReactNode;
degree?: React.ReactNode;
institution?: React.ReactNode;
}) => (
<li className="mb-5 ml-4">
<div
className="absolute w-2 h-2 bg-base-300 rounded-full border border-base-300 mt-1.5"
style={{ left: '-4.5px' }}
></div>
<div className="my-0.5 text-xs">{time}</div>
<h3 className="font-semibold">{degree}</h3>
<div className="mb-4 font-normal">{institution}</div>
</li>
);
const EducationCard = ({
loading,
educations,
}: {
loading: boolean;
educations: SanitizedEducation[];
}) => {
const renderSkeleton = () => {
const array = [];
for (let index = 0; index < 2; index++) {
array.push(
<ListItem
key={index}
time={skeleton({
widthCls: 'w-5/12',
heightCls: 'h-4',
})}
degree={skeleton({
widthCls: 'w-6/12',
heightCls: 'h-4',
className: 'my-1.5',
})}
institution={skeleton({ widthCls: 'w-6/12', heightCls: 'h-3' })}
/>,
);
}
return array;
};
return (
<div className="card shadow-lg compact bg-base-100">
<div className="card-body">
<div className="mx-3">
<h5 className="card-title">
{loading ? (
skeleton({ widthCls: 'w-32', heightCls: 'h-8' })
) : (
<span className="text-base-content opacity-70">Education</span>
)}
</h5>
</div>
<div className="text-base-content text-opacity-60">
<ol className="relative border-l border-base-300 border-opacity-30 my-2 mx-4">
{loading ? (
renderSkeleton()
) : (
<>
{educations.map((item, index) => (
<ListItem
key={index}
time={`${item.from} - ${item.to}`}
degree={item.degree}
institution={item.institution}
/>
))}
</>
)}
</ol>
</div>
</div>
</div>
);
};
export default EducationCard;

View File

@@ -0,0 +1,31 @@
import { CustomError } from '../../constants/errors';
/**
* Render the ErrorPage component.
*
* @param props - The props for the ErrorPage component.
* @returns The rendered ErrorPage component.
*/
const ErrorPage: React.FC<CustomError> = (props) => {
return (
<div className="min-w-screen min-h-screen bg-base-200 flex items-center p-5 lg:p-20 overflow-hidden relative">
<div className="flex-1 min-h-full min-w-full rounded-3xl bg-base-100 shadow-xl p-10 lg:p-20 text-gray-800 relative md:flex items-center text-center md:text-left">
<div className="w-full">
<div className="mb-10 md:mb-20 mt-10 md:mt-20 text-gray-600 font-light">
<h1 className="font-black uppercase text-3xl lg:text-5xl text-primary mb-10">
{`${props.status}`}
</h1>
<p className="text-lg pb-2 text-base-content">{props.title}</p>
<div className="text-base-content text-opacity-60">
{props.subTitle}
</div>
</div>
</div>
</div>
<div className="w-64 md:w-96 h-96 md:h-full bg-accent bg-opacity-10 absolute -top-64 md:-top-96 right-20 md:right-32 rounded-full pointer-events-none -rotate-45 transform"></div>
<div className="w-96 h-full bg-secondary bg-opacity-10 absolute -bottom-96 right-64 rounded-full pointer-events-none -rotate-45 transform"></div>
</div>
);
};
export default ErrorPage;

View File

@@ -0,0 +1,100 @@
import React, { Fragment } from 'react';
import { SanitizedExperience } from '../../interfaces/sanitized-config';
import { skeleton } from '../../utils';
const ListItem = ({
time,
position,
company,
companyLink,
}: {
time: React.ReactNode;
position?: React.ReactNode;
company?: React.ReactNode;
companyLink?: string;
}) => (
<li className="mb-5 ml-4">
<div
className="absolute w-2 h-2 bg-base-300 rounded-full border border-base-300 mt-1.5"
style={{ left: '-4.5px' }}
></div>
<div className="my-0.5 text-xs">{time}</div>
<h3 className="font-semibold">{position}</h3>
<div className="mb-4 font-normal">
<a href={companyLink} target="_blank" rel="noreferrer">
{company}
</a>
</div>
</li>
);
const ExperienceCard = ({
experiences,
loading,
}: {
experiences: SanitizedExperience[];
loading: boolean;
}) => {
const renderSkeleton = () => {
const array = [];
for (let index = 0; index < 2; index++) {
array.push(
<ListItem
key={index}
time={skeleton({
widthCls: 'w-5/12',
heightCls: 'h-4',
})}
position={skeleton({
widthCls: 'w-6/12',
heightCls: 'h-4',
className: 'my-1.5',
})}
company={skeleton({ widthCls: 'w-6/12', heightCls: 'h-3' })}
/>,
);
}
return array;
};
return (
<div className="card shadow-lg compact bg-base-100">
<div className="card-body">
<div className="mx-3">
<h5 className="card-title">
{loading ? (
skeleton({ widthCls: 'w-32', heightCls: 'h-8' })
) : (
<span className="text-base-content opacity-70">Experience</span>
)}
</h5>
</div>
<div className="text-base-content text-opacity-60">
<ol className="relative border-l border-base-300 border-opacity-30 my-2 mx-4">
{loading ? (
renderSkeleton()
) : (
<Fragment>
{experiences.map((experience, index) => (
<ListItem
key={index}
time={`${experience.from} - ${experience.to}`}
position={experience.position}
company={experience.company}
companyLink={
experience.companyLink
? experience.companyLink
: undefined
}
/>
))}
</Fragment>
)}
</ol>
</div>
</div>
</div>
);
};
export default ExperienceCard;

View File

@@ -0,0 +1,158 @@
import { Fragment } from 'react';
import LazyImage from '../lazy-image';
import { ga, skeleton } from '../../utils';
import { SanitizedExternalProject } from '../../interfaces/sanitized-config';
const ExternalProjectCard = ({
externalProjects,
header,
loading,
googleAnalyticId,
}: {
externalProjects: SanitizedExternalProject[];
header: string;
loading: boolean;
googleAnalyticId?: string;
}) => {
const renderSkeleton = () => {
const array = [];
for (let index = 0; index < externalProjects.length; index++) {
array.push(
<div className="card shadow-lg compact bg-base-100" key={index}>
<div className="p-8 h-full w-full">
<div className="flex items-center flex-col">
<div className="w-full">
<div className="flex items-start px-4">
<div className="w-full">
<h2>
{skeleton({
widthCls: 'w-32',
heightCls: 'h-8',
className: 'mb-2 mx-auto',
})}
</h2>
<div className="avatar w-full h-full">
<div className="w-20 h-20 mask mask-squircle mx-auto">
{skeleton({
widthCls: 'w-full',
heightCls: 'h-full',
shape: '',
})}
</div>
</div>
<div className="mt-2">
{skeleton({
widthCls: 'w-full',
heightCls: 'h-4',
className: 'mx-auto',
})}
</div>
<div className="mt-2 flex items-center flex-wrap justify-center">
{skeleton({
widthCls: 'w-full',
heightCls: 'h-4',
className: 'mx-auto',
})}
</div>
</div>
</div>
</div>
</div>
</div>
</div>,
);
}
return array;
};
const renderExternalProjects = () => {
return externalProjects.map((item, index) => (
<a
className="card shadow-lg compact bg-base-100 cursor-pointer"
key={index}
href={item.link}
onClick={(e) => {
e.preventDefault();
try {
if (googleAnalyticId) {
ga.event('Click External Project', {
post: item.title,
});
}
} catch (error) {
console.error(error);
}
window?.open(item.link, '_blank');
}}
>
<div className="p-8 h-full w-full">
<div className="flex items-center flex-col">
<div className="w-full">
<div className="px-4">
<div className="text-center w-full">
<h2 className="font-semibold text-lg tracking-wide text-center opacity-60 mb-2">
{item.title}
</h2>
{item.imageUrl && (
<div className="avatar opacity-90">
<div className="w-20 h-20 mask mask-squircle">
<LazyImage
src={item.imageUrl}
alt={'thumbnail'}
placeholder={skeleton({
widthCls: 'w-full',
heightCls: 'h-full',
shape: '',
})}
/>
</div>
</div>
)}
<p className="mt-1 text-base-content text-opacity-60 text-sm">
{item.description}
</p>
</div>
</div>
</div>
</div>
</div>
</a>
));
};
return (
<Fragment>
<div className="col-span-1 lg:col-span-2">
<div className="grid grid-cols-2 gap-6">
<div className="col-span-2">
<div className="card compact bg-base-100 shadow bg-opacity-40">
<div className="card-body">
<div className="mx-3 flex items-center justify-between mb-2">
<h5 className="card-title">
{loading ? (
skeleton({ widthCls: 'w-40', heightCls: 'h-8' })
) : (
<span className="text-base-content opacity-70">
{header}
</span>
)}
</h5>
</div>
<div className="col-span-2">
<div className="grid grid-cols-1 md:grid-cols-2 gap-6">
{loading ? renderSkeleton() : renderExternalProjects()}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</Fragment>
);
};
export default ExternalProjectCard;

View File

@@ -0,0 +1,23 @@
import { skeleton } from '../../utils';
const Footer = ({
content,
loading,
}: {
content: string | null;
loading: boolean;
}) => {
if (!content) return null;
return (
<div className="card-body">
{loading ? (
skeleton({ widthCls: 'w-52', heightCls: 'h-6' })
) : (
<div dangerouslySetInnerHTML={{ __html: content }} />
)}
</div>
);
};
export default Footer;

View File

@@ -0,0 +1,180 @@
import { Fragment } from 'react';
import { AiOutlineFork, AiOutlineStar } from 'react-icons/ai';
import { MdInsertLink } from 'react-icons/md';
import { ga, getLanguageColor, skeleton } from '../../utils';
import { GithubProject } from '../../interfaces/github-project';
const GithubProjectCard = ({
header,
githubProjects,
loading,
limit,
username,
googleAnalyticsId,
}: {
header: string;
githubProjects: GithubProject[];
loading: boolean;
limit: number;
username: string;
googleAnalyticsId?: string;
}) => {
if (!loading && githubProjects.length === 0) {
return;
}
const renderSkeleton = () => {
const array = [];
for (let index = 0; index < limit; index++) {
array.push(
<div className="card shadow-lg compact bg-base-100" key={index}>
<div className="flex justify-between flex-col p-8 h-full w-full">
<div>
<div className="flex items-center">
<span>
<h5 className="card-title text-lg">
{skeleton({
widthCls: 'w-32',
heightCls: 'h-8',
className: 'mb-1',
})}
</h5>
</span>
</div>
<div className="mb-5 mt-1">
{skeleton({
widthCls: 'w-full',
heightCls: 'h-4',
className: 'mb-2',
})}
{skeleton({ widthCls: 'w-full', heightCls: 'h-4' })}
</div>
</div>
<div className="flex justify-between">
<div className="flex flex-grow">
<span className="mr-3 flex items-center">
{skeleton({ widthCls: 'w-12', heightCls: 'h-4' })}
</span>
<span className="flex items-center">
{skeleton({ widthCls: 'w-12', heightCls: 'h-4' })}
</span>
</div>
<div>
<span className="flex items-center">
{skeleton({ widthCls: 'w-12', heightCls: 'h-4' })}
</span>
</div>
</div>
</div>
</div>,
);
}
return array;
};
const renderProjects = () => {
return githubProjects.map((item, index) => (
<a
className="card shadow-lg compact bg-base-100 cursor-pointer"
href={item.html_url}
key={index}
onClick={(e) => {
e.preventDefault();
try {
if (googleAnalyticsId) {
ga.event('Click project', {
project: item.name,
});
}
} catch (error) {
console.error(error);
}
window?.open(item.html_url, '_blank');
}}
>
<div className="flex justify-between flex-col p-8 h-full w-full">
<div>
<div className="flex items-center">
<div className="card-title text-lg tracking-wide flex text-base-content opacity-60">
<MdInsertLink className="my-auto" />
<span>{item.name}</span>
</div>
</div>
<p className="mb-5 mt-1 text-base-content text-opacity-60 text-sm">
{item.description}
</p>
</div>
<div className="flex justify-between text-sm text-base-content text-opacity-60 truncate">
<div className="flex flex-grow">
<span className="mr-3 flex items-center">
<AiOutlineStar className="mr-0.5" />
<span>{item.stargazers_count}</span>
</span>
<span className="flex items-center">
<AiOutlineFork className="mr-0.5" />
<span>{item.forks_count}</span>
</span>
</div>
<div>
<span className="flex items-center">
<div
className="w-3 h-3 rounded-full mr-1 opacity-60"
style={{ backgroundColor: getLanguageColor(item.language) }}
/>
<span>{item.language}</span>
</span>
</div>
</div>
</div>
</a>
));
};
return (
<Fragment>
<div className="col-span-1 lg:col-span-2">
<div className="grid grid-cols-2 gap-6">
<div className="col-span-2">
<div className="card compact bg-base-100 shadow bg-opacity-40">
<div className="card-body">
<div className="mx-3 flex items-center justify-between mb-2">
<h5 className="card-title">
{loading ? (
skeleton({ widthCls: 'w-40', heightCls: 'h-8' })
) : (
<span className="text-base-content opacity-70">
{header}
</span>
)}
</h5>
{loading ? (
skeleton({ widthCls: 'w-10', heightCls: 'h-5' })
) : (
<a
href={`https://github.com/${username}?tab=repositories`}
target="_blank"
rel="noreferrer"
className="text-base-content opacity-50 hover:underline"
>
See All
</a>
)}
</div>
<div className="col-span-2">
<div className="grid grid-cols-1 md:grid-cols-2 gap-6">
{loading ? renderSkeleton() : renderProjects()}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</Fragment>
);
};
export default GithubProjectCard;

View File

@@ -0,0 +1,296 @@
import { useCallback, useEffect, useState } from 'react';
import axios, { AxiosError } from 'axios';
import { formatDistance } from 'date-fns';
import {
CustomError,
GENERIC_ERROR,
INVALID_CONFIG_ERROR,
INVALID_GITHUB_USERNAME_ERROR,
setTooManyRequestError,
} from '../constants/errors';
import { HelmetProvider } from 'react-helmet-async';
import '../assets/index.css';
import { getInitialTheme, getSanitizedConfig, setupHotjar } from '../utils';
import { SanitizedConfig } from '../interfaces/sanitized-config';
import ErrorPage from './error-page';
import HeadTagEditor from './head-tag-editor';
import { DEFAULT_THEMES } from '../constants/default-themes';
import ThemeChanger from './theme-changer';
import { BG_COLOR } from '../constants';
import AvatarCard from './avatar-card';
import { Profile } from '../interfaces/profile';
import DetailsCard from './details-card';
import SkillCard from './skill-card';
import ExperienceCard from './experience-card';
import EducationCard from './education-card';
import CertificationCard from './certification-card';
import { GithubProject } from '../interfaces/github-project';
import GithubProjectCard from './github-project-card';
import ExternalProjectCard from './external-project-card';
import BlogCard from './blog-card';
import Footer from './footer';
/**
* Renders the GitProfile component.
*
* @param {Object} config - the configuration object
* @return {JSX.Element} the rendered GitProfile component
*/
const GitProfile = ({ config }: { config: Config }) => {
const [sanitizedConfig] = useState<SanitizedConfig | Record<string, never>>(
getSanitizedConfig(config),
);
const [theme, setTheme] = useState<string>(DEFAULT_THEMES[0]);
const [error, setError] = useState<CustomError | null>(null);
const [loading, setLoading] = useState<boolean>(false);
const [profile, setProfile] = useState<Profile | null>(null);
const [githubProjects, setGithubProjects] = useState<GithubProject[]>([]);
const getGithubProjects = useCallback(
async (publicRepoCount: number): Promise<GithubProject[]> => {
if (sanitizedConfig.projects.github.mode === 'automatic') {
if (publicRepoCount === 0) {
return [];
}
const excludeRepo =
sanitizedConfig.projects.github.automatic.exclude.projects
.map((project) => `+-repo:${project}`)
.join('');
const query = `user:${sanitizedConfig.github.username}+fork:${!sanitizedConfig.projects.github.automatic.exclude.forks}${excludeRepo}`;
const url = `https://api.github.com/search/repositories?q=${query}&sort=${sanitizedConfig.projects.github.automatic.sortBy}&per_page=${sanitizedConfig.projects.github.automatic.limit}&type=Repositories`;
const repoResponse = await axios.get(url, {
headers: { 'Content-Type': 'application/vnd.github.v3+json' },
});
const repoData = repoResponse.data;
return repoData.items;
} else {
if (sanitizedConfig.projects.github.manual.projects.length === 0) {
return [];
}
const repos = sanitizedConfig.projects.github.manual.projects
.map((project) => `+repo:${project}`)
.join('');
const url = `https://api.github.com/search/repositories?q=${repos}&type=Repositories`;
const repoResponse = await axios.get(url, {
headers: { 'Content-Type': 'application/vnd.github.v3+json' },
});
const repoData = repoResponse.data;
return repoData.items;
}
},
[
sanitizedConfig.github.username,
sanitizedConfig.projects.github.mode,
sanitizedConfig.projects.github.manual.projects,
sanitizedConfig.projects.github.automatic.sortBy,
sanitizedConfig.projects.github.automatic.limit,
sanitizedConfig.projects.github.automatic.exclude.forks,
sanitizedConfig.projects.github.automatic.exclude.projects,
],
);
const loadData = useCallback(async () => {
try {
setLoading(true);
const response = await axios.get(
`https://api.github.com/users/${sanitizedConfig.github.username}`,
);
const data = response.data;
setProfile({
avatar: data.avatar_url,
name: data.name || ' ',
bio: data.bio || '',
location: data.location || '',
company: data.company || '',
});
if (!sanitizedConfig.projects.github.display) {
return;
}
setGithubProjects(await getGithubProjects(data.public_repos));
} catch (error) {
handleError(error as AxiosError | Error);
} finally {
setLoading(false);
}
}, [
sanitizedConfig.github.username,
sanitizedConfig.projects.github.display,
getGithubProjects,
]);
useEffect(() => {
if (Object.keys(sanitizedConfig).length === 0) {
setError(INVALID_CONFIG_ERROR);
} else {
setError(null);
setTheme(getInitialTheme(sanitizedConfig.themeConfig));
setupHotjar(sanitizedConfig.hotjar);
loadData();
}
}, [sanitizedConfig, loadData]);
useEffect(() => {
theme && document.documentElement.setAttribute('data-theme', theme);
}, [theme]);
const handleError = (error: AxiosError | Error): void => {
console.error('Error:', error);
if (error instanceof AxiosError) {
try {
const reset = formatDistance(
new Date(error.response?.headers?.['x-ratelimit-reset'] * 1000),
new Date(),
{ addSuffix: true },
);
if (typeof error.response?.status === 'number') {
switch (error.response.status) {
case 403:
setError(setTooManyRequestError(reset));
break;
case 404:
setError(INVALID_GITHUB_USERNAME_ERROR);
break;
default:
setError(GENERIC_ERROR);
break;
}
} else {
setError(GENERIC_ERROR);
}
} catch (innerError) {
setError(GENERIC_ERROR);
}
} else {
setError(GENERIC_ERROR);
}
};
return (
<HelmetProvider>
<div className="fade-in h-screen">
{error ? (
<ErrorPage
status={error.status}
title={error.title}
subTitle={error.subTitle}
/>
) : (
<>
<HeadTagEditor
googleAnalyticsId={sanitizedConfig.googleAnalytics.id}
appliedTheme={theme}
/>
<div className={`p-4 lg:p-10 min-h-full ${BG_COLOR}`}>
<div className="grid grid-cols-1 lg:grid-cols-3 gap-6 rounded-box">
<div className="col-span-1">
<div className="grid grid-cols-1 gap-6">
{!sanitizedConfig.themeConfig.disableSwitch && (
<ThemeChanger
theme={theme}
setTheme={setTheme}
loading={loading}
themeConfig={sanitizedConfig.themeConfig}
/>
)}
<AvatarCard
profile={profile}
loading={loading}
avatarRing={sanitizedConfig.themeConfig.displayAvatarRing}
resumeFileUrl={sanitizedConfig.resume.fileUrl}
/>
<DetailsCard
profile={profile}
loading={loading}
github={sanitizedConfig.github}
social={sanitizedConfig.social}
/>
{sanitizedConfig.skills.length !== 0 && (
<SkillCard
loading={loading}
skills={sanitizedConfig.skills}
/>
)}
{sanitizedConfig.experiences.length !== 0 && (
<ExperienceCard
loading={loading}
experiences={sanitizedConfig.experiences}
/>
)}
{sanitizedConfig.certifications.length !== 0 && (
<CertificationCard
loading={loading}
certifications={sanitizedConfig.certifications}
/>
)}
{sanitizedConfig.educations.length !== 0 && (
<EducationCard
loading={loading}
educations={sanitizedConfig.educations}
/>
)}
</div>
</div>
<div className="lg:col-span-2 col-span-1">
<div className="grid grid-cols-1 gap-6">
{sanitizedConfig.projects.github.display && (
<GithubProjectCard
header={sanitizedConfig.projects.github.header}
limit={sanitizedConfig.projects.github.automatic.limit}
githubProjects={githubProjects}
loading={loading}
username={sanitizedConfig.github.username}
googleAnalyticsId={sanitizedConfig.googleAnalytics.id}
/>
)}
{sanitizedConfig.projects.external.projects.length !==
0 && (
<ExternalProjectCard
loading={loading}
header={sanitizedConfig.projects.external.header}
externalProjects={
sanitizedConfig.projects.external.projects
}
googleAnalyticId={sanitizedConfig.googleAnalytics.id}
/>
)}
{sanitizedConfig.blog.display && (
<BlogCard
loading={loading}
googleAnalyticsId={sanitizedConfig.googleAnalytics.id}
blog={sanitizedConfig.blog}
/>
)}
</div>
</div>
</div>
</div>
{sanitizedConfig.footer && (
<footer
className={`p-4 footer ${BG_COLOR} text-base-content footer-center`}
>
<div className="card compact bg-base-100 shadow">
<Footer content={sanitizedConfig.footer} loading={loading} />
</div>
</footer>
)}
</>
)}
</div>
</HelmetProvider>
);
};
export default GitProfile;

View File

@@ -0,0 +1,47 @@
import { Helmet } from 'react-helmet-async';
import { isDarkishTheme } from '../../utils';
type HeadTagEditorProps = {
googleAnalyticsId?: string;
appliedTheme: string;
};
/**
* Renders the head tag editor component.
*
* @param {HeadTagEditorProps} googleAnalyticsId - The Google Analytics ID.
* @param {HeadTagEditorProps} appliedTheme - The applied theme.
* @return {React.ReactElement} The head tag editor component.
*/
const HeadTagEditor: React.FC<HeadTagEditorProps> = ({
googleAnalyticsId,
appliedTheme,
}) => {
return (
<Helmet>
<meta
name="theme-color"
content={isDarkishTheme(appliedTheme) ? '#000000' : '#ffffff'}
/>
{googleAnalyticsId && (
<>
<script
async
src={`https://www.googletagmanager.com/gtag/js?id=${googleAnalyticsId}`}
></script>
<script>
{`window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', '${googleAnalyticsId}');
`}
</script>
</>
)}
</Helmet>
);
};
export default HeadTagEditor;

View File

@@ -0,0 +1,38 @@
import { useState, Fragment, useEffect } from 'react';
/**
* LazyImage component.
*
* @param {string} placeholder The placeholder image URL.
* @param {string} src The image URL.
* @param {string} alt The alt text for the image.
* @param {object} rest Additional props for the image element.
*
* @returns {ReactElement} The LazyImage component.
*/
const LazyImage: React.FC<{
placeholder: React.ReactElement;
src: string;
alt: string;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
[key: string]: any;
}> = ({ placeholder, src, alt, ...rest }): React.ReactElement => {
const [loading, setLoading] = useState(true);
useEffect(() => {
const imageToLoad = new Image();
imageToLoad.src = src;
imageToLoad.onload = () => {
setLoading(false);
};
}, [src]);
return (
<Fragment>
{loading ? placeholder : <img src={src} alt={alt} {...rest} />}
</Fragment>
);
};
export default LazyImage;

View File

@@ -0,0 +1,54 @@
import { skeleton } from '../../utils';
const SkillCard = ({
loading,
skills,
}: {
loading: boolean;
skills: string[];
}) => {
const renderSkeleton = () => {
const array = [];
for (let index = 0; index < 12; index++) {
array.push(
<div key={index}>
{skeleton({ widthCls: 'w-16', heightCls: 'h-4', className: 'm-1' })}
</div>,
);
}
return array;
};
return (
<div className="card shadow-lg compact bg-base-100">
<div className="card-body">
<div className="mx-3">
<h5 className="card-title">
{loading ? (
skeleton({ widthCls: 'w-32', heightCls: 'h-8' })
) : (
<span className="text-base-content opacity-70">Tech Stack</span>
)}
</h5>
</div>
<div className="p-3 flow-root">
<div className="-m-1 flex flex-wrap justify-center">
{loading
? renderSkeleton()
: skills.map((skill, index) => (
<div
key={index}
className="m-1 text-xs inline-flex items-center font-bold leading-sm px-3 py-1 badge-primary bg-opacity-90 rounded-full"
>
{skill}
</div>
))}
</div>
</div>
</div>
</div>
);
};
export default SkillCard;

View File

@@ -0,0 +1,121 @@
import { AiOutlineControl } from 'react-icons/ai';
import { SanitizedThemeConfig } from '../../interfaces/sanitized-config';
import { LOCAL_STORAGE_KEY_NAME } from '../../constants';
import { skeleton } from '../../utils';
import { MouseEvent } from 'react';
/**
* Renders a theme changer component.
*
* @param {Object} props - The props object.
* @param {string} props.theme - The current theme.
* @param {function} props.setTheme - A function to set the theme.
* @param {boolean} props.loading - Whether the component is in a loading state.
* @param {SanitizedThemeConfig} props.themeConfig - The theme configuration object.
* @return {JSX.Element} The rendered theme changer component.
*/
const ThemeChanger = ({
theme,
setTheme,
loading,
themeConfig,
}: {
theme: string;
setTheme: (theme: string) => void;
loading: boolean;
themeConfig: SanitizedThemeConfig;
}) => {
const changeTheme = (
e: MouseEvent<HTMLAnchorElement>,
selectedTheme: string,
) => {
e.preventDefault();
document.querySelector('html')?.setAttribute('data-theme', selectedTheme);
typeof window !== 'undefined' &&
localStorage.setItem(LOCAL_STORAGE_KEY_NAME, selectedTheme);
setTheme(selectedTheme);
};
return (
<div className="card overflow-visible shadow-lg compact bg-base-100">
<div className="flex-row items-center space-x-4 flex pl-6 pr-2 py-4">
<div className="flex-1">
<h5 className="card-title">
{loading ? (
skeleton({
widthCls: 'w-20',
heightCls: 'h-8',
className: 'mb-1',
})
) : (
<span className="text-base-content opacity-70">Theme</span>
)}
</h5>
<span className="text-base-content text-opacity-40 capitalize text-sm">
{loading
? skeleton({ widthCls: 'w-16', heightCls: 'h-5' })
: theme === themeConfig.defaultTheme
? 'Default'
: theme}
</span>
</div>
<div className="flex-0">
{loading ? (
skeleton({
widthCls: 'w-14 md:w-28',
heightCls: 'h-10',
className: 'mr-6',
})
) : (
<div title="Change Theme" className="dropdown dropdown-end">
<div
tabIndex={0}
className="btn btn-ghost m-1 normal-case opacity-50 text-base-content"
>
<AiOutlineControl className="inline-block w-5 h-5 stroke-current md:mr-2" />
<span className="hidden md:inline">Change Theme</span>
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 1792 1792"
className="inline-block w-4 h-4 ml-1 fill-current"
>
<path d="M1395 736q0 13-10 23l-466 466q-10 10-23 10t-23-10l-466-466q-10-10-10-23t10-23l50-50q10-10 23-10t23 10l393 393 393-393q10-10 23-10t23 10l50 50q10 10 10 23z" />
</svg>
</div>
<div
tabIndex={0}
className="mt-16 overflow-y-auto shadow-2xl top-px dropdown-content max-h-96 w-52 rounded-lg bg-base-200 text-base-content z-10"
>
<ul className="p-4 menu compact">
{[
themeConfig.defaultTheme,
...themeConfig.themes.filter(
(item) => item !== themeConfig.defaultTheme,
),
].map((item, index) => (
<li key={index}>
{}
<a
onClick={(e) => changeTheme(e, item)}
className={`${theme === item ? 'active' : ''}`}
>
<span className="opacity-60 capitalize">
{item === themeConfig.defaultTheme ? 'Default' : item}
</span>
</a>
</li>
))}
</ul>
</div>
</div>
)}
</div>
</div>
</div>
);
};
export default ThemeChanger;

View File

@@ -1,128 +0,0 @@
// config.js
module.exports = {
github: {
username: 'arifszn', // Your GitHub org/user name. (Required)
sortBy: 'stars', // stars | updated
limit: 8, // How many projects to display.
exclude: {
forks: false, // Forked projects will not be displayed if set to true.
projects: ['laravel-ecommerce'] // These projects will not be displayed. example: ['my-project1', 'my-project2']
}
},
social: {
linkedin: 'ariful-alam',
twitter: 'arif_swozon',
facebook: '',
dribbble: '',
behance: '',
medium: '',
devto: 'arifszn',
website: 'https://arifszn.github.io',
phone: '',
email: 'arifulalamszn@gmail.com'
},
skills: [
'PHP',
'Laravel',
'JavaScript',
'React.js',
'Node.js',
'MySQL',
'Git',
'Docker',
'CSS',
'Antd',
'Tailwind',
'Bootstrap',
],
experiences: [
{
company: 'Monstarlab Bangladesh',
position: 'Backend Engineer II',
from: 'September 2021',
to: 'Present'
},
{
company: 'Orangetoolz',
position: 'Jr. Full Stack Engineer',
from: 'July 2019',
to: 'August 2021'
},
{
company: 'Techvillage',
position: 'Jr. Software Engineer',
from: 'January 2019',
to: ' June 2019'
}
],
education: [
{
institution: 'American International University-Bangladesh',
degree: 'Bachelor of Science',
from: '2015',
to: '2019'
},
{
institution: 'Cantonment College, Jessore',
degree: 'Higher Secondary Certificate (HSC)',
from: '2012',
to: '2014',
},
{
institution: 'Chowgacha Shahadat Pilot High School',
degree: 'Secondary School Certificate (SSC)',
from: '2007',
to: '2012'
}
],
blog: {
// Display blog posts from your medium or dev.to account. (Optional)
source: 'dev.to', // medium | dev.to
username: 'arifszn',
limit: 3 // How many posts to display. Max is 10.
},
googleAnalytics: {
// GA3 tracking id/GA4 tag id UA-XXXXXXXXX-X | G-XXXXXXXXXX
id: 'G-WLLB5E14M6' // Please remove this and use your own tag id or keep it empty
},
hotjar: {
id: '2617601', // Please remove this and use your own id or keep it empty
snippetVersion : 6
},
themeConfig: {
default: 'light',
// Hides the switch in the navbar
// Useful if you want to support a single color mode
disableSwitch: false,
// Should we use the prefers-color-scheme media-query,
// using user system preferences, instead of the hardcoded default
respectPrefersColorScheme: true,
// Available themes. To remove any theme, exclude from here.
themes: [
'light',
'dark',
'cupcake',
'bumblebee',
'emerald',
'corporate',
'synthwave',
'retro',
'cyberpunk',
'valentine',
'halloween',
'garden',
'forest',
'aqua',
'lofi',
'pastel',
'fantasy',
'wireframe',
'black',
'luxury',
'dracula'
]
}
}

View File

@@ -0,0 +1,9 @@
export const DEFAULT_CUSTOM_THEME = {
primary: '#fc055b',
secondary: '#219aaf',
accent: '#e8d03a',
neutral: '#2A2730',
'base-100': '#E3E3ED',
'--rounded-box': '3rem',
'--rounded-btn': '3rem',
};

View File

@@ -0,0 +1,35 @@
export const DEFAULT_THEMES = [
'light',
'dark',
'cupcake',
'bumblebee',
'emerald',
'corporate',
'synthwave',
'retro',
'cyberpunk',
'valentine',
'halloween',
'garden',
'forest',
'aqua',
'lofi',
'pastel',
'fantasy',
'wireframe',
'black',
'luxury',
'dracula',
'cmyk',
'autumn',
'business',
'acid',
'lemonade',
'night',
'coffee',
'winter',
'dim',
'nord',
'sunset',
'procyon',
];

55
src/constants/errors.tsx Normal file
View File

@@ -0,0 +1,55 @@
import { ReactElement } from 'react';
export interface CustomError {
status: number;
title: string;
subTitle: string | ReactElement;
}
export const INVALID_CONFIG_ERROR: CustomError = {
status: 500,
title: 'Invalid Config!',
subTitle: (
<p>
Please provide correct config in <code>gitprofile.config.ts</code>.
</p>
),
};
export const setTooManyRequestError = (resetTime: string): CustomError => {
return {
status: 429,
title: 'Too Many Requests!',
subTitle: (
<p>
Oh no, you hit the{' '}
<a
href="https://developer.github.com/v3/rate_limit/"
target="_blank"
rel="noopener noreferrer"
className="underline"
>
rate limit
</a>
! Try again later{` ${resetTime}`}.
</p>
),
};
};
export const INVALID_GITHUB_USERNAME_ERROR: CustomError = {
status: 404,
title: 'Invalid GitHub Username!',
subTitle: (
<p>
Please provide correct github username in{' '}
<code>gitprofile.config.ts</code>.
</p>
),
};
export const GENERIC_ERROR: CustomError = {
status: 500,
title: 'Ops!!',
subTitle: 'Something went wrong.',
};

6
src/constants/index.tsx Normal file
View File

@@ -0,0 +1,6 @@
export const LOCAL_STORAGE_KEY_NAME = 'gitprofile-theme';
export const BG_COLOR = 'bg-base-300';
export const FALLBACK_IMAGE =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMIAAADDCAYAAADQvc6UAAABRWlDQ1BJQ0MgUHJvZmlsZQAAKJFjYGASSSwoyGFhYGDIzSspCnJ3UoiIjFJgf8LAwSDCIMogwMCcmFxc4BgQ4ANUwgCjUcG3awyMIPqyLsis7PPOq3QdDFcvjV3jOD1boQVTPQrgSkktTgbSf4A4LbmgqISBgTEFyFYuLykAsTuAbJEioKOA7DkgdjqEvQHEToKwj4DVhAQ5A9k3gGyB5IxEoBmML4BsnSQk8XQkNtReEOBxcfXxUQg1Mjc0dyHgXNJBSWpFCYh2zi+oLMpMzyhRcASGUqqCZ16yno6CkYGRAQMDKMwhqj/fAIcloxgHQqxAjIHBEugw5sUIsSQpBobtQPdLciLEVJYzMPBHMDBsayhILEqEO4DxG0txmrERhM29nYGBddr//5/DGRjYNRkY/l7////39v///y4Dmn+LgeHANwDrkl1AuO+pmgAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAwqADAAQAAAABAAAAwwAAAAD9b/HnAAAHlklEQVR4Ae3dP3PTWBSGcbGzM6GCKqlIBRV0dHRJFarQ0eUT8LH4BnRU0NHR0UEFVdIlFRV7TzRksomPY8uykTk/zewQfKw/9znv4yvJynLv4uLiV2dBoDiBf4qP3/ARuCRABEFAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghgg0Aj8i0JO4OzsrPv69Wv+hi2qPHr0qNvf39+iI97soRIh4f3z58/u7du3SXX7Xt7Z2enevHmzfQe+oSN2apSAPj09TSrb+XKI/f379+08+A0cNRE2ANkupk+ACNPvkSPcAAEibACyXUyfABGm3yNHuAECRNgAZLuYPgEirKlHu7u7XdyytGwHAd8jjNyng4OD7vnz51dbPT8/7z58+NB9+/bt6jU/TI+AGWHEnrx48eJ/EsSmHzx40L18+fLyzxF3ZVMjEyDCiEDjMYZZS5wiPXnyZFbJaxMhQIQRGzHvWR7XCyOCXsOmiDAi1HmPMMQjDpbpEiDCiL358eNHurW/5SnWdIBbXiDCiA38/Pnzrce2YyZ4//59F3ePLNMl4PbpiL2J0L979+7yDtHDhw8vtzzvdGnEXdvUigSIsCLAWavHp/+qM0BcXMd/q25n1vF57TYBp0a3mUzilePj4+7k5KSLb6gt6ydAhPUzXnoPR0dHl79WGTNCfBnn1uvSCJdegQhLI1vvCk+fPu2ePXt2tZOYEV6/fn31dz+shwAR1sP1cqvLntbEN9MxA9xcYjsxS1jWR4AIa2Ibzx0tc44fYX/16lV6NDFLXH+YL32jwiACRBiEbf5KcXoTIsQSpzXx4N28Ja4BQoK7rgXiydbHjx/P25TaQAJEGAguWy0+2Q8PD6/Ki4R8EVl+bzBOnZY95fq9rj9zAkTI2SxdidBHqG9+skdw43borCXO/ZcJdraPWdv22uIEiLA4q7nvvCug8WTqzQveOH26fodo7g6uFe/a17W3+nFBAkRYENRdb1vkkz1CH9cPsVy/jrhr27PqMYvENYNlHAIesRiBYwRy0V+8iXP8+/fvX11Mr7L7ECueb/r48eMqm7FuI2BGWDEG8cm+7G3NEOfmdcTQw4h9/55lhm7DekRYKQPZF2ArbXTAyu4kDYB2YxUzwg0gi/41ztHnfQG26HbGel/crVrm7tNY+/1btkOEAZ2M05r4FB7r9GbAIdxaZYrHdOsgJ/wCEQY0J74TmOKnbxxT9n3FgGGWWsVdowHtjt9Nnvf7yQM2aZU/TIAIAxrw6dOnAWtZZcoEnBpNuTuObWMEiLAx1HY0ZQJEmHJ3HNvGCBBhY6jtaMoEiJB0Z29vL6ls58vxPcO8/zfrdo5qvKO+d3Fx8Wu8zf1dW4p/cPzLly/dtv9Ts/EbcvGAHhHyfBIhZ6NSiIBTo0LNNtScABFyNiqFCBChULMNNSdAhJyNSiECRCjUbEPNCRAhZ6NSiAARCjXbUHMCRMjZqBQiQIRCzTbUnAARcjYqhQgQoVCzDTUnQIScjUohAkQo1GxDzQkQIWejUogAEQo121BzAkTI2agUIkCEQs021JwAEXI2KoUIEKFQsw01J0CEnI1KIQJEKNRsQ80JECFno1KIABEKNdtQcwJEyNmoFCJAhELNNtScABFyNiqFCBChULMNNSdAhJyNSiECRCjUbEPNCRAhZ6NSiAARCjXbUHMCRMjZqBQiQIRCzTbUnAARcjYqhQgQoVCzDTUnQIScjUohAkQo1GxDzQkQIWejUogAEQo121BzAkTI2agUIkCEQs021JwAEXI2KoUIEKFQsw01J0CEnI1KIQJEKNRsQ80JECFno1KIABEKNdtQcwJEyNmoFCJAhELNNtScABFyNiqFCBChULMNNSdAhJyNSiECRCjUbEPNCRAhZ6NSiAARCjXbUHMCRMjZqBQiQIRCzTbUnAARcjYqhQgQoVCzDTUnQIScjUohAkQo1GxDzQkQIWejUogAEQo121BzAkTI2agUIkCEQs021JwAEXI2KoUIEKFQsw01J0CEnI1KIQJEKNRsQ80JECFno1KIABEKNdtQcwJEyNmoFCJAhELNNtScABFyNiqFCBChULMNNSdAhJyNSiEC/wGgKKC4YMA4TAAAAABJRU5ErkJggg==';

View File

@@ -1,15 +0,0 @@
import { createContext, useState } from "react";
const initialValue = true;
export const LoadingContext = createContext();
export const LoadingProvider = (props) => {
const [loading, setLoading] = useState(initialValue);
return (
<LoadingContext.Provider value={[loading, setLoading]}>
{props.children}
</LoadingContext.Provider>
);
}

View File

@@ -1,16 +0,0 @@
import { createContext, useState } from "react";
import { getInitialTheme } from "../helpers/utils";
const initialValue = getInitialTheme();
export const ThemeContext = createContext();
export const ThemeProvider = (props) => {
const [theme, setTheme] = useState(initialValue);
return (
<ThemeContext.Provider value={[theme, setTheme]}>
{props.children}
</ThemeContext.Provider>
);
}

1434
src/data/colors.json Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,79 +0,0 @@
import config from "../config";
import colors from './colors.json';
import { hotjar } from 'react-hotjar';
export const getInitialTheme = () => {
if (config.themeConfig.disableSwitch) {
return config.themeConfig.default;
}
if (localStorage.hasOwnProperty('ezprofile-theme')) {
let theme = localStorage.getItem('ezprofile-theme');
return theme;
}
if (config.themeConfig.respectPrefersColorScheme && !config.themeConfig.disableSwitch) {
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : config.themeConfig.default;
}
return config.themeConfig.default;
}
export const skeleton = ({width = null, height = null, style = {}, shape = 'rounded-full', className = null}) => {
return <div className={`bg-base-300 animate-pulse ${shape}${className ? ` ${className}` : ''}${width ? ` ${width}` : ''}${height ? ` ${height}` : ''}`} style={style}/>;
}
export const languageColor = (language) => {
if (typeof colors[language] !== 'undefined') {
return colors[language].color;
} else {
return 'gray';
}
}
export const fallbackImage = (
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMIAAADDCAYAAADQvc6UAAABRWlDQ1BJQ0MgUHJvZmlsZQAAKJFjYGASSSwoyGFhYGDIzSspCnJ3UoiIjFJgf8LAwSDCIMogwMCcmFxc4BgQ4ANUwgCjUcG3awyMIPqyLsis7PPOq3QdDFcvjV3jOD1boQVTPQrgSkktTgbSf4A4LbmgqISBgTEFyFYuLykAsTuAbJEioKOA7DkgdjqEvQHEToKwj4DVhAQ5A9k3gGyB5IxEoBmML4BsnSQk8XQkNtReEOBxcfXxUQg1Mjc0dyHgXNJBSWpFCYh2zi+oLMpMzyhRcASGUqqCZ16yno6CkYGRAQMDKMwhqj/fAIcloxgHQqxAjIHBEugw5sUIsSQpBobtQPdLciLEVJYzMPBHMDBsayhILEqEO4DxG0txmrERhM29nYGBddr//5/DGRjYNRkY/l7////39v///y4Dmn+LgeHANwDrkl1AuO+pmgAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAwqADAAQAAAABAAAAwwAAAAD9b/HnAAAHlklEQVR4Ae3dP3PTWBSGcbGzM6GCKqlIBRV0dHRJFarQ0eUT8LH4BnRU0NHR0UEFVdIlFRV7TzRksomPY8uykTk/zewQfKw/9znv4yvJynLv4uLiV2dBoDiBf4qP3/ARuCRABEFAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghgg0Aj8i0JO4OzsrPv69Wv+hi2qPHr0qNvf39+iI97soRIh4f3z58/u7du3SXX7Xt7Z2enevHmzfQe+oSN2apSAPj09TSrb+XKI/f379+08+A0cNRE2ANkupk+ACNPvkSPcAAEibACyXUyfABGm3yNHuAECRNgAZLuYPgEirKlHu7u7XdyytGwHAd8jjNyng4OD7vnz51dbPT8/7z58+NB9+/bt6jU/TI+AGWHEnrx48eJ/EsSmHzx40L18+fLyzxF3ZVMjEyDCiEDjMYZZS5wiPXnyZFbJaxMhQIQRGzHvWR7XCyOCXsOmiDAi1HmPMMQjDpbpEiDCiL358eNHurW/5SnWdIBbXiDCiA38/Pnzrce2YyZ4//59F3ePLNMl4PbpiL2J0L979+7yDtHDhw8vtzzvdGnEXdvUigSIsCLAWavHp/+qM0BcXMd/q25n1vF57TYBp0a3mUzilePj4+7k5KSLb6gt6ydAhPUzXnoPR0dHl79WGTNCfBnn1uvSCJdegQhLI1vvCk+fPu2ePXt2tZOYEV6/fn31dz+shwAR1sP1cqvLntbEN9MxA9xcYjsxS1jWR4AIa2Ibzx0tc44fYX/16lV6NDFLXH+YL32jwiACRBiEbf5KcXoTIsQSpzXx4N28Ja4BQoK7rgXiydbHjx/P25TaQAJEGAguWy0+2Q8PD6/Ki4R8EVl+bzBOnZY95fq9rj9zAkTI2SxdidBHqG9+skdw43borCXO/ZcJdraPWdv22uIEiLA4q7nvvCug8WTqzQveOH26fodo7g6uFe/a17W3+nFBAkRYENRdb1vkkz1CH9cPsVy/jrhr27PqMYvENYNlHAIesRiBYwRy0V+8iXP8+/fvX11Mr7L7ECueb/r48eMqm7FuI2BGWDEG8cm+7G3NEOfmdcTQw4h9/55lhm7DekRYKQPZF2ArbXTAyu4kDYB2YxUzwg0gi/41ztHnfQG26HbGel/crVrm7tNY+/1btkOEAZ2M05r4FB7r9GbAIdxaZYrHdOsgJ/wCEQY0J74TmOKnbxxT9n3FgGGWWsVdowHtjt9Nnvf7yQM2aZU/TIAIAxrw6dOnAWtZZcoEnBpNuTuObWMEiLAx1HY0ZQJEmHJ3HNvGCBBhY6jtaMoEiJB0Z29vL6ls58vxPcO8/zfrdo5qvKO+d3Fx8Wu8zf1dW4p/cPzLly/dtv9Ts/EbcvGAHhHyfBIhZ6NSiIBTo0LNNtScABFyNiqFCBChULMNNSdAhJyNSiECRCjUbEPNCRAhZ6NSiAARCjXbUHMCRMjZqBQiQIRCzTbUnAARcjYqhQgQoVCzDTUnQIScjUohAkQo1GxDzQkQIWejUogAEQo121BzAkTI2agUIkCEQs021JwAEXI2KoUIEKFQsw01J0CEnI1KIQJEKNRsQ80JECFno1KIABEKNdtQcwJEyNmoFCJAhELNNtScABFyNiqFCBChULMNNSdAhJyNSiECRCjUbEPNCRAhZ6NSiAARCjXbUHMCRMjZqBQiQIRCzTbUnAARcjYqhQgQoVCzDTUnQIScjUohAkQo1GxDzQkQIWejUogAEQo121BzAkTI2agUIkCEQs021JwAEXI2KoUIEKFQsw01J0CEnI1KIQJEKNRsQ80JECFno1KIABEKNdtQcwJEyNmoFCJAhELNNtScABFyNiqFCBChULMNNSdAhJyNSiECRCjUbEPNCRAhZ6NSiAARCjXbUHMCRMjZqBQiQIRCzTbUnAARcjYqhQgQoVCzDTUnQIScjUohAkQo1GxDzQkQIWejUogAEQo121BzAkTI2agUIkCEQs021JwAEXI2KoUIEKFQsw01J0CEnI1KIQJEKNRsQ80JECFno1KIABEKNdtQcwJEyNmoFCJAhELNNtScABFyNiqFCBChULMNNSdAhJyNSiEC/wGgKKC4YMA4TAAAAABJRU5ErkJggg=="
)
export const ga = {
// initialize google analytic
initialize: (id) => {
try {
window.gtag('js', new Date());
window.gtag('config', id);
} catch (error) {
console.error(error);
}
},
// log specific events happening
event: ({ action, params }) => {
try {
window.gtag('event', action, params);
} catch (error) {
console.error(error);
}
}
}
export const isThemeDarkish = (theme) => {
if (
theme === 'dark' ||
theme === 'halloween' ||
theme === 'forest' ||
theme === 'black' ||
theme === 'luxury' ||
theme === 'dracula'
) {
return true;
} else {
return false;
}
}
export const setupHotjar = () => {
if (config.hotjar?.id) {
let snippetVersion = config.hotjar?.snippetVersion ? config.hotjar?.snippetVersion : 6;
hotjar.initialize(config.hotjar.id, snippetVersion);
}
}

View File

@@ -1,87 +0,0 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
* {
scrollbar-width: thin;
}
::-webkit-scrollbar-track {
box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
-moz-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
}
@media screen and (min-width: 966px) {
::-webkit-scrollbar, .scroller {
width: 8px;
height: 8px;
background-color: #f1f1f1;
}
}
::-webkit-scrollbar-thumb {
background-color: #888;
border-radius: 10px;
}
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
code {
font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
monospace;
}
.text-base-content-important {
color: hsla(var(--bc) / var(--tw-text-opacity)) !important;
}
svg {
vertical-align: unset
}
.z-hover {
transition: all ease-in-out 0.3s !important;
}
.z-hover:hover,
.z-hover:focus,
.z-hover:active {
transition: transform 0.3s !important;
-ms-transform: scale(1.01) !important;
-webkit-transform: scale(1.01) !important;
transform: scale(1.01) !important;
}
.pb-0-important {
padding-bottom: 0 !important;
}
.fade-in {
opacity: 1;
animation-name: fadeIn;
animation-iteration-count: 1;
animation-timing-function: ease-in;
animation-duration: 1s;
}
@keyframes fadeIn {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@-webkit-keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}

View File

@@ -1,25 +0,0 @@
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
import { HelmetProvider } from 'react-helmet-async';
import { ThemeProvider } from './contexts/ThemeContext';
import { LoadingProvider } from './contexts/LoadingContext';
import { setupHotjar } from './helpers/utils';
ReactDOM.render(
<React.StrictMode>
<ThemeProvider>
<LoadingProvider>
<HelmetProvider>
<App/>
</HelmetProvider>
</LoadingProvider>
</ThemeProvider>
</React.StrictMode>,
document.getElementById('root')
);
reportWebVitals();
setupHotjar();

View File

@@ -0,0 +1,8 @@
export interface Article {
title: string;
thumbnail: string;
link: string;
publishedAt: Date;
description: string;
categories: string[];
}

View File

@@ -0,0 +1,8 @@
export interface GithubProject {
name: string;
html_url: string;
description: string;
stargazers_count: string;
forks_count: string;
language: string;
}

View File

@@ -0,0 +1,7 @@
export interface Profile {
avatar: string;
name: string;
bio?: string;
location?: string;
company?: string;
}

View File

@@ -0,0 +1,141 @@
export interface SanitizedGithub {
username: string;
}
export interface SanitizedGitHubProjects {
display: boolean;
header: string;
mode: string;
automatic: {
sortBy: string;
limit: number;
exclude: {
forks: boolean;
projects: Array<string>;
};
};
manual: {
projects: Array<string>;
};
}
export interface SanitizedExternalProject {
title: string;
description?: string;
imageUrl?: string;
link: string;
}
export interface SanitizedExternalProjects {
header: string;
projects: SanitizedExternalProject[];
}
export interface SanitizedProjects {
github: SanitizedGitHubProjects;
external: SanitizedExternalProjects;
}
export interface SanitizedSEO {
title?: string;
description?: string;
imageURL?: string;
}
export interface SanitizedSocial {
linkedin?: string;
twitter?: string;
mastodon?: string;
facebook?: string;
instagram?: string;
youtube?: string;
dribbble?: string;
behance?: string;
medium?: string;
dev?: string;
stackoverflow?: string;
website?: string;
skype?: string;
telegram?: string;
phone?: string;
email?: string;
}
export interface SanitizedResume {
fileUrl?: string;
}
export interface SanitizedExperience {
company?: string;
position?: string;
from: string;
to: string;
companyLink?: string;
}
export interface SanitizedCertification {
body?: string;
name?: string;
year?: string;
link?: string;
}
export interface SanitizedEducation {
institution?: string;
degree?: string;
from: string;
to: string;
}
export interface SanitizedGoogleAnalytics {
id?: string;
}
export interface SanitizedHotjar {
id?: string;
snippetVersion: number;
}
export interface SanitizedBlog {
display: boolean;
source: string;
username: string;
limit: number;
}
export interface SanitizedCustomTheme {
primary: string;
secondary: string;
accent: string;
neutral: string;
'base-100': string;
'--rounded-box': string;
'--rounded-btn': string;
}
export interface SanitizedThemeConfig {
defaultTheme: string;
disableSwitch: boolean;
respectPrefersColorScheme: boolean;
displayAvatarRing: boolean;
themes: Array<string>;
customTheme: SanitizedCustomTheme;
}
export interface SanitizedConfig {
github: SanitizedGithub;
projects: SanitizedProjects;
seo: SanitizedSEO;
social: SanitizedSocial;
resume: SanitizedResume;
skills: Array<string>;
experiences: Array<SanitizedExperience>;
educations: Array<SanitizedEducation>;
certifications: Array<SanitizedCertification>;
googleAnalytics: SanitizedGoogleAnalytics;
hotjar: SanitizedHotjar;
blog: SanitizedBlog;
themeConfig: SanitizedThemeConfig;
footer?: string;
enablePWA: boolean;
}

9
src/main.tsx Normal file
View File

@@ -0,0 +1,9 @@
import React from 'react';
import ReactDOM from 'react-dom/client';
import GitProfile from './components/gitprofile.tsx';
ReactDOM.createRoot(document.getElementById('root')!).render(
<React.StrictMode>
<GitProfile config={CONFIG} />
</React.StrictMode>,
);

View File

@@ -1,13 +0,0 @@
const reportWebVitals = onPerfEntry => {
if (onPerfEntry && onPerfEntry instanceof Function) {
import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
getCLS(onPerfEntry);
getFID(onPerfEntry);
getFCP(onPerfEntry);
getLCP(onPerfEntry);
getTTFB(onPerfEntry);
});
}
};
export default reportWebVitals;

View File

@@ -1,5 +0,0 @@
// jest-dom adds custom jest matchers for asserting on DOM nodes.
// allows you to do things like:
// expect(element).toHaveTextContent(/react/i)
// learn more: https://github.com/testing-library/jest-dom
import '@testing-library/jest-dom';

218
src/utils/index.tsx Normal file
View File

@@ -0,0 +1,218 @@
import { LOCAL_STORAGE_KEY_NAME } from '../constants';
import { DEFAULT_CUSTOM_THEME } from '../constants/default-custom-theme';
import { DEFAULT_THEMES } from '../constants/default-themes';
import {
SanitizedConfig,
SanitizedHotjar,
SanitizedThemeConfig,
} from '../interfaces/sanitized-config';
import { hotjar } from 'react-hotjar';
import colors from '../data/colors.json';
export const isDarkishTheme = (appliedTheme: string): boolean => {
return ['dark', 'halloween', 'forest', 'black', 'luxury', 'dracula'].includes(
appliedTheme,
);
};
type EventParams = {
[key: string]: string;
};
type Colors = {
[key: string]: { color: string | null; url: string };
};
export const getSanitizedConfig = (
config: Config,
): SanitizedConfig | Record<string, never> => {
try {
return {
github: {
username: config.github.username,
},
projects: {
github: {
display: config?.projects?.github?.display ?? true,
header: config?.projects?.github?.header || 'Github Projects',
mode: config?.projects?.github?.mode || 'automatic',
automatic: {
sortBy: config?.projects?.github?.automatic?.sortBy || 'stars',
limit: config?.projects?.github?.automatic?.limit || 8,
exclude: {
forks:
config?.projects?.github?.automatic?.exclude?.forks || false,
projects:
config?.projects?.github?.automatic?.exclude?.projects || [],
},
},
manual: {
projects: config?.projects?.github?.manual?.projects || [],
},
},
external: {
header: config?.projects?.external?.header || 'My Projects',
projects: config?.projects?.external?.projects || [],
},
},
seo: {
title: config?.seo?.title,
description: config?.seo?.description,
imageURL: config?.seo?.imageURL,
},
social: {
linkedin: config?.social?.linkedin,
twitter: config?.social?.twitter,
mastodon: config?.social?.mastodon,
facebook: config?.social?.facebook,
instagram: config?.social?.instagram,
youtube: config?.social?.youtube,
dribbble: config?.social?.dribbble,
behance: config?.social?.behance,
medium: config?.social?.medium,
dev: config?.social?.dev,
stackoverflow: config?.social?.stackoverflow,
website: config?.social?.website,
phone: config?.social?.phone,
email: config?.social?.email,
skype: config?.social?.skype,
telegram: config?.social?.telegram,
},
resume: {
fileUrl: config?.resume?.fileUrl || '',
},
skills: config?.skills || [],
experiences: config?.experiences || [],
certifications: config?.certifications || [],
educations: config?.educations || [],
googleAnalytics: {
id: config?.googleAnalytics?.id,
},
hotjar: {
id: config?.hotjar?.id,
snippetVersion: config?.hotjar?.snippetVersion || 6,
},
blog: {
username: config?.blog?.username || '',
source: config?.blog?.source || 'dev',
limit: config?.blog?.limit || 5,
display: !!config?.blog?.username && !!config?.blog?.source,
},
themeConfig: {
defaultTheme: config?.themeConfig?.defaultTheme || DEFAULT_THEMES[0],
disableSwitch: config?.themeConfig?.disableSwitch || false,
respectPrefersColorScheme:
config?.themeConfig?.respectPrefersColorScheme || false,
displayAvatarRing: config?.themeConfig?.displayAvatarRing ?? true,
themes: config?.themeConfig?.themes || DEFAULT_THEMES,
customTheme: {
primary:
config?.themeConfig?.customTheme?.primary ||
DEFAULT_CUSTOM_THEME.primary,
secondary:
config?.themeConfig?.customTheme?.secondary ||
DEFAULT_CUSTOM_THEME.secondary,
accent:
config?.themeConfig?.customTheme?.accent ||
DEFAULT_CUSTOM_THEME.accent,
neutral:
config?.themeConfig?.customTheme?.neutral ||
DEFAULT_CUSTOM_THEME.neutral,
'base-100':
config?.themeConfig?.customTheme?.['base-100'] ||
DEFAULT_CUSTOM_THEME['base-100'],
'--rounded-box':
config?.themeConfig?.customTheme?.['--rounded-box'] ||
DEFAULT_CUSTOM_THEME['--rounded-box'],
'--rounded-btn':
config?.themeConfig?.customTheme?.['--rounded-btn'] ||
DEFAULT_CUSTOM_THEME['--rounded-btn'],
},
},
footer: config?.footer,
enablePWA: config?.enablePWA ?? true,
};
} catch (error) {
return {};
}
};
export const getInitialTheme = (themeConfig: SanitizedThemeConfig): string => {
if (themeConfig.disableSwitch) {
return themeConfig.defaultTheme;
}
if (
typeof window !== 'undefined' &&
!(localStorage.getItem(LOCAL_STORAGE_KEY_NAME) === null)
) {
const savedTheme = localStorage.getItem(LOCAL_STORAGE_KEY_NAME);
if (savedTheme && themeConfig.themes.includes(savedTheme)) {
return savedTheme;
}
}
if (themeConfig.respectPrefersColorScheme && !themeConfig.disableSwitch) {
return typeof window !== 'undefined' &&
window.matchMedia('(prefers-color-scheme: dark)').matches
? 'dark'
: themeConfig.defaultTheme;
}
return themeConfig.defaultTheme;
};
export const skeleton = ({
widthCls = null,
heightCls = null,
style = {} as React.CSSProperties,
shape = 'rounded-full',
className = null,
}: {
widthCls?: string | null;
heightCls?: string | null;
style?: React.CSSProperties;
shape?: string;
className?: string | null;
}): JSX.Element => {
const classNames = ['bg-base-300', 'animate-pulse', shape];
if (className) {
classNames.push(className);
}
if (widthCls) {
classNames.push(widthCls);
}
if (heightCls) {
classNames.push(heightCls);
}
return <div className={classNames.join(' ')} style={style} />;
};
export const setupHotjar = (hotjarConfig: SanitizedHotjar): void => {
if (hotjarConfig?.id) {
const snippetVersion = hotjarConfig?.snippetVersion || 6;
hotjar.initialize(parseInt(hotjarConfig.id), snippetVersion);
}
};
export const ga = {
event(action: string, params: EventParams): void {
try {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
(window as any)?.gtag('event', action, params);
} catch (error) {
console.error(error);
}
},
};
export const getLanguageColor = (language: string): string => {
const languageColors: Colors = colors;
if (typeof languageColors[language] !== 'undefined') {
return languageColors[language].color || 'gray';
} else {
return 'gray';
}
};

1
src/vite-env.d.ts vendored Normal file
View File

@@ -0,0 +1 @@
/// <reference types="vite/client" />

View File

@@ -1,16 +1,17 @@
module.exports = { import CONFIG from './gitprofile.config';
purge: ['./src/**/*.{js,jsx,ts,tsx}', './public/index.html'],
darkMode: false, // or 'media' or 'class' /** @type {import('tailwindcss').Config} */
theme: { export default {
extend: {}, content: ['./index.html', './src/**/*.{js,ts,jsx,tsx}'],
}, theme: {
variants: { extend: {},
extend: {}, },
}, plugins: [require('daisyui')],
plugins: [ daisyui: {
require('daisyui') logs: false,
themes: [
...CONFIG.themeConfig.themes,
{ procyon: CONFIG.themeConfig.customTheme },
], ],
daisyui: { },
logs: false };
},
}

25
tsconfig.json Normal file
View File

@@ -0,0 +1,25 @@
{
"compilerOptions": {
"target": "ES2020",
"useDefineForClassFields": true,
"lib": ["ES2020", "DOM", "DOM.Iterable"],
"module": "ESNext",
"skipLibCheck": true,
/* Bundler mode */
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "react-jsx",
/* Linting */
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true,
},
"include": ["src", "global.d.ts"],
"references": [{ "path": "./tsconfig.node.json" }],
}

10
tsconfig.node.json Normal file
View File

@@ -0,0 +1,10 @@
{
"compilerOptions": {
"composite": true,
"skipLibCheck": true,
"module": "ESNext",
"moduleResolution": "bundler",
"allowSyntheticDefaultImports": true
},
"include": ["gitprofile.config.ts", "vite.config.ts"]
}

48
vite.config.ts Normal file
View File

@@ -0,0 +1,48 @@
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import { VitePWA } from 'vite-plugin-pwa';
import CONFIG from './gitprofile.config';
import { createHtmlPlugin } from 'vite-plugin-html';
// https://vitejs.dev/config/
export default defineConfig({
base: CONFIG.base || '/',
plugins: [
react(),
createHtmlPlugin({
inject: {
data: {
metaTitle: CONFIG.seo.title,
metaDescription: CONFIG.seo.description,
metaImageURL: CONFIG.seo.imageURL,
},
},
}),
...(CONFIG.enablePWA
? [
VitePWA({
registerType: 'autoUpdate',
workbox: {
navigateFallback: undefined,
},
includeAssets: ['logo.png'],
manifest: {
name: 'Portfolio',
short_name: 'Portfolio',
description: 'Personal Portfolio',
icons: [
{
src: 'logo.png',
sizes: '64x64 32x32 24x24 16x16 192x192 512x512',
type: 'image/png',
},
],
},
}),
]
: []),
],
define: {
CONFIG: CONFIG,
},
});