From c8016b04a9f327f09d0891e7f62d73998d12c25c Mon Sep 17 00:00:00 2001 From: "bhavnish.arora" Date: Tue, 28 Jan 2025 17:48:12 +0530 Subject: [PATCH] frontend completed --- package-lock.json | 77 ++++++++++++++++ package.json | 2 + public/vite.svg | 1 - public/warning.png | Bin 0 -> 15857 bytes src/App.jsx | 26 +++++- src/components/Coach.jsx | 57 +++++++++++- src/components/Events.jsx | 61 +++++++++++++ src/components/Hero.jsx | 42 ++++++++- src/components/LoginForm.jsx | 70 ++++++++++++++ src/pages/AdminDashboard.jsx | 171 +++++++++++------------------------ src/pages/Error.jsx | 26 ++++++ src/pages/Login.jsx | 18 ++++ 12 files changed, 426 insertions(+), 125 deletions(-) delete mode 100644 public/vite.svg create mode 100644 public/warning.png create mode 100644 src/components/LoginForm.jsx create mode 100644 src/pages/Error.jsx create mode 100644 src/pages/Login.jsx diff --git a/package-lock.json b/package-lock.json index c0f1f72..3a33332 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,9 @@ "framer-motion": "^12.0.6", "react": "^18.3.1", "react-dom": "^18.3.1", + "react-router": "^7.1.3", "react-router-dom": "^7.1.3", + "react-toastify": "^11.0.3", "swiper": "^11.2.1", "tailwindcss": "^4.0.0" }, @@ -36,6 +38,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -52,6 +55,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -68,6 +72,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -84,6 +89,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -100,6 +106,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -116,6 +123,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -132,6 +140,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -148,6 +157,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -164,6 +174,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -180,6 +191,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -196,6 +208,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -212,6 +225,7 @@ "cpu": [ "loong64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -228,6 +242,7 @@ "cpu": [ "mips64el" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -244,6 +259,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -260,6 +276,7 @@ "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -276,6 +293,7 @@ "cpu": [ "s390x" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -292,6 +310,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -308,6 +327,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -324,6 +344,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -340,6 +361,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -356,6 +378,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -372,6 +395,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -388,6 +412,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -404,6 +429,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -420,6 +446,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -643,6 +670,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -656,6 +684,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -669,6 +698,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -682,6 +712,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -695,6 +726,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -708,6 +740,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -721,6 +754,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -734,6 +768,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -747,6 +782,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -760,6 +796,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -773,6 +810,7 @@ "cpu": [ "loong64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -786,6 +824,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -799,6 +838,7 @@ "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -812,6 +852,7 @@ "cpu": [ "s390x" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -825,6 +866,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -838,6 +880,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -851,6 +894,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -864,6 +908,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -877,6 +922,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1343,6 +1389,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, "license": "MIT" }, "node_modules/@types/json-schema": { @@ -1713,6 +1760,15 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -2114,6 +2170,7 @@ "version": "0.24.2", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", + "dev": true, "hasInstallScript": true, "license": "MIT", "bin": { @@ -2492,6 +2549,7 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, @@ -3609,6 +3667,7 @@ "version": "3.3.8", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "dev": true, "funding": [ { "type": "github", @@ -3849,6 +3908,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, "license": "ISC" }, "node_modules/possible-typed-array-names": { @@ -3865,6 +3925,7 @@ "version": "8.5.1", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", + "dev": true, "funding": [ { "type": "opencollective", @@ -3993,6 +4054,19 @@ "react-dom": ">=18" } }, + "node_modules/react-toastify": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-11.0.3.tgz", + "integrity": "sha512-cbPtHJPfc0sGqVwozBwaTrTu1ogB9+BLLjd4dDXd863qYLj7DGrQ2sg5RAChjFUB4yc3w8iXOtWcJqPK/6xqRQ==", + "license": "MIT", + "dependencies": { + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + } + }, "node_modules/reflect.getprototypeof": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", @@ -4069,6 +4143,7 @@ "version": "4.32.0", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.32.0.tgz", "integrity": "sha512-JmrhfQR31Q4AuNBjjAX4s+a/Pu/Q8Q9iwjWBsjRH1q52SPFE2NqRMK6fUZKKnvKO6id+h7JIRf0oYsph53eATg==", + "dev": true, "license": "MIT", "dependencies": { "@types/estree": "1.0.6" @@ -4335,6 +4410,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -4647,6 +4723,7 @@ "version": "6.0.11", "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.11.tgz", "integrity": "sha512-4VL9mQPKoHy4+FE0NnRE/kbY51TOfaknxAjt3fJbGJxhIpBZiqVzlZDEesWWsuREXHwNdAoOFZ9MkPEVXczHwg==", + "dev": true, "license": "MIT", "dependencies": { "esbuild": "^0.24.2", diff --git a/package.json b/package.json index 0c10262..4ed2595 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,9 @@ "framer-motion": "^12.0.6", "react": "^18.3.1", "react-dom": "^18.3.1", + "react-router": "^7.1.3", "react-router-dom": "^7.1.3", + "react-toastify": "^11.0.3", "swiper": "^11.2.1", "tailwindcss": "^4.0.0" }, diff --git a/public/vite.svg b/public/vite.svg deleted file mode 100644 index e7b8dfb..0000000 --- a/public/vite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/warning.png b/public/warning.png new file mode 100644 index 0000000000000000000000000000000000000000..ff3d3011ccb8e51ed5f5943600e94a54337bd9d7 GIT binary patch literal 15857 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 j$a3%!{QvmDPae?bN}I+iw*IJ~&_mx, + children: [ + { + path: "/", + element: , + }, + { + path: "/dashboard", + element: , + }, + ], + }, + ]); + return ( <> - + + ); } export default App; + \ No newline at end of file diff --git a/src/components/Coach.jsx b/src/components/Coach.jsx index 4980877..317c3bc 100644 --- a/src/components/Coach.jsx +++ b/src/components/Coach.jsx @@ -1,7 +1,60 @@ import React from "react"; -const Coach = () => { - return
; +const Coach = ({ coaches, newCoach, setNewCoach, addCoach, removeCoach }) => { + return ( +
+

Manage Coaches

+
+ setNewCoach({ ...newCoach, name: e.target.value })} + className="px-4 py-2 border rounded-lg bg-gray-800 text-white focus:ring focus:ring-gray-500" + /> + setNewCoach({ ...newCoach, title: e.target.value })} + className="px-4 py-2 border rounded-lg bg-gray-800 text-white focus:ring focus:ring-gray-500" + /> + +
+ +
    + {coaches.map((coach, index) => ( +
  • +
    +

    {coach.name}

    +

    {coach.title}

    +
    +
    + + +
    +
  • + ))} +
+
+ ); }; export default Coach; diff --git a/src/components/Events.jsx b/src/components/Events.jsx index e69de29..602e181 100644 --- a/src/components/Events.jsx +++ b/src/components/Events.jsx @@ -0,0 +1,61 @@ +import React from "react"; + +const Events = ({ events, newEvent, setNewEvent, addEvent }) => { + return ( +
+

Events Calendar

+
+ setNewEvent({ ...newEvent, title: e.target.value })} + className="px-4 py-2 border rounded-lg bg-gray-800 text-white focus:ring focus:ring-gray-500" + /> + setNewEvent({ ...newEvent, date: e.target.value })} + className="px-4 py-2 border rounded-lg bg-gray-800 text-white focus:ring focus:ring-gray-500" + /> +