From bd6539d4b66c14895462f539927b6bcff72ba2c7 Mon Sep 17 00:00:00 2001 From: Taqi Tahmid Date: Sat, 4 Jan 2025 11:59:57 +0200 Subject: [PATCH] added menubar and experience section --- frontend/package-lock.json | 64 +++++++++++- frontend/package.json | 3 +- frontend/src/App.tsx | 18 ++-- frontend/src/components/Footer.tsx | 2 +- frontend/src/components/Navbar.tsx | 95 +++++++++++++++--- frontend/src/pages/Experience.tsx | 153 +++++++++++++++++++++++++++++ frontend/src/pages/Home.tsx | 13 +++ 7 files changed, 327 insertions(+), 21 deletions(-) create mode 100644 frontend/src/pages/Experience.tsx create mode 100644 frontend/src/pages/Home.tsx diff --git a/frontend/package-lock.json b/frontend/package-lock.json index c19c56c..199327a 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -11,7 +11,8 @@ "lucide-react": "^0.469.0", "react": "^18.3.1", "react-dom": "^18.3.1", - "react-icons": "^5.3.0" + "react-icons": "^5.3.0", + "react-router-dom": "^7.1.1" }, "devDependencies": { "@eslint/js": "^9.9.0", @@ -1241,6 +1242,11 @@ "@babel/types": "^7.20.7" } }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==" + }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", @@ -1843,6 +1849,14 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, + "node_modules/cookie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "engines": { + "node": ">=18" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -3293,6 +3307,44 @@ "node": ">=0.10.0" } }, + "node_modules/react-router": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.1.1.tgz", + "integrity": "sha512-39sXJkftkKWRZ2oJtHhCxmoCrBCULr/HAH4IT5DHlgu/Q0FCPV0S4Lx+abjDTx/74xoZzNYDYbOZWlJjruyuDQ==", + "dependencies": { + "@types/cookie": "^0.6.0", + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0", + "turbo-stream": "2.4.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-router-dom": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.1.1.tgz", + "integrity": "sha512-vSrQHWlJ5DCfyrhgo0k6zViOe9ToK8uT5XGSmnuC2R3/g261IdIMpZVqfjD6vWSXdnf5Czs4VA/V60oVR6/jnA==", + "dependencies": { + "react-router": "7.1.1" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -3425,6 +3477,11 @@ "semver": "bin/semver.js" } }, + "node_modules/set-cookie-parser": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==" + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -3718,6 +3775,11 @@ "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", "dev": true }, + "node_modules/turbo-stream": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", + "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==" + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", diff --git a/frontend/package.json b/frontend/package.json index 145558c..d586ff8 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -13,7 +13,8 @@ "lucide-react": "^0.469.0", "react": "^18.3.1", "react-dom": "^18.3.1", - "react-icons": "^5.3.0" + "react-icons": "^5.3.0", + "react-router-dom": "^7.1.1" }, "devDependencies": { "@eslint/js": "^9.9.0", diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 1f1800d..a479ee4 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -1,9 +1,11 @@ import { useState } from 'react' +import { BrowserRouter as Router } from 'react-router-dom'; +import { Routes, Route } from 'react-router-dom'; import './App.css' +import Home from './pages/Home' import Navbar from './components/Navbar' -import Introduction from './components/Introduction' -import Skills from './components/Skills' import Footer from './components/Footer' +import Experience from './pages/Experience'; function App() { const [darkMode, setDarkMode] = useState(true) @@ -14,12 +16,16 @@ function App() { return ( <>
-
+
- - -
+ + + } /> + } /> + + +
diff --git a/frontend/src/components/Footer.tsx b/frontend/src/components/Footer.tsx index f6758cc..46437e5 100644 --- a/frontend/src/components/Footer.tsx +++ b/frontend/src/components/Footer.tsx @@ -4,7 +4,7 @@ const Footer = () => { const currentYear = new Date().getFullYear(); return ( -