From 122d2431126ca0c834aef05d2e1703ccc43f4e0a Mon Sep 17 00:00:00 2001
From: priyakumari0104
Date: Sun, 24 May 2026 12:40:03 +0530
Subject: [PATCH 1/2] card clicable
---
package-lock.json | 15 +++++++
src/app/login-required/page.tsx | 57 +++++++++++++++++++++++++
src/app/page.tsx | 73 ++++++++++++++++++---------------
3 files changed, 111 insertions(+), 34 deletions(-)
create mode 100644 src/app/login-required/page.tsx
diff --git a/package-lock.json b/package-lock.json
index ce0b55ff..5109e54f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -523,6 +523,7 @@
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.49.1.tgz",
"integrity": "sha512-Ky+BVzPz8pL6PQxHqNRW1k3mIyv933LML7HktS8uik0bUXNCdPhoS/kLihiO1tMf/egaJb4IutXd7UywvXEW+g==",
"devOptional": true,
+ "peer": true,
"dependencies": {
"playwright": "1.49.1"
},
@@ -764,6 +765,7 @@
"integrity": "sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@types/prop-types": "*",
"csstype": "^3.2.2"
@@ -1211,6 +1213,7 @@
"integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",
"dev": true,
"license": "MIT",
+ "peer": true,
"bin": {
"acorn": "bin/acorn"
},
@@ -1663,6 +1666,7 @@
}
],
"license": "MIT",
+ "peer": true,
"dependencies": {
"baseline-browser-mapping": "^2.10.12",
"caniuse-lite": "^1.0.30001782",
@@ -2532,6 +2536,7 @@
"deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1",
@@ -2700,6 +2705,7 @@
"integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@rtsao/scc": "^1.1.0",
"array-includes": "^3.1.9",
@@ -4145,6 +4151,7 @@
"integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==",
"dev": true,
"license": "MIT",
+ "peer": true,
"bin": {
"jiti": "bin/jiti.js"
}
@@ -4216,6 +4223,7 @@
"resolved": "https://registry.npmjs.org/jspdf/-/jspdf-4.2.1.tgz",
"integrity": "sha512-YyAXyvnmjTbR4bHQRLzex3CuINCDlQnBqoSYyjJwTP2x9jDLuKDzy7aKUl0hgx3uhcl7xzg32agn5vlie6HIlQ==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@babel/runtime": "^7.28.6",
"fast-png": "^6.2.0",
@@ -5062,6 +5070,7 @@
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "dev": true,
"hasInstallScript": true,
"license": "MIT",
"optional": true,
@@ -5102,6 +5111,7 @@
}
],
"license": "MIT",
+ "peer": true,
"dependencies": {
"nanoid": "^3.3.11",
"picocolors": "^1.1.1",
@@ -5272,6 +5282,7 @@
"resolved": "https://registry.npmjs.org/preact/-/preact-10.29.1.tgz",
"integrity": "sha512-gQCLc/vWroE8lIpleXtdJhTFDogTdZG9AjMUpVkDf2iTCNwYNWA+u16dL41TqUDJO4gm2IgrcMv3uTpjd4Pwmg==",
"license": "MIT",
+ "peer": true,
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/preact"
@@ -5362,6 +5373,7 @@
"resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
"integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"loose-envify": "^1.1.0"
},
@@ -5374,6 +5386,7 @@
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
"integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"loose-envify": "^1.1.0",
"scheduler": "^0.23.2"
@@ -6427,6 +6440,7 @@
"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
"dev": true,
"license": "MIT",
+ "peer": true,
"engines": {
"node": ">=12"
},
@@ -6596,6 +6610,7 @@
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
"dev": true,
"license": "Apache-2.0",
+ "peer": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
diff --git a/src/app/login-required/page.tsx b/src/app/login-required/page.tsx
new file mode 100644
index 00000000..97124034
--- /dev/null
+++ b/src/app/login-required/page.tsx
@@ -0,0 +1,57 @@
+import Link from "next/link";
+
+export default function LoginRequiredPage() {
+ return (
+
+
+ {/* Dynamic Background Glow Accents */}
+
+
+
+ {/* Main Interactive Card */}
+
+
+ {/* Floating Rocket Icon Container */}
+
+ 🚀
+
+
+ {/* Title */}
+
+ Unlock DevTrack Features
+
+
+ {/* Description */}
+
+ Sign in with your GitHub account to access premium features like streak tracking, PR analytics, and custom coding goals.
+
+
+ {/* Primary Action Button (Sign In) */}
+
+ {/* Subtle button glare effect */}
+
+
+ {/* Modern SVG GitHub Icon */}
+
+ Continue with GitHub
+
+
+ {/* Secondary Action (GitHub Link) */}
+
+ View project on GitHub
+ →
+
+
+
+ );
+}
\ No newline at end of file
diff --git a/src/app/page.tsx b/src/app/page.tsx
index b4147ffb..2812d415 100644
--- a/src/app/page.tsx
+++ b/src/app/page.tsx
@@ -11,28 +11,32 @@ export default async function HomePage() {
}
const features = [
- {
- icon: "🔥",
- title: "Streak Tracking",
- description: "Never lose your streak and stay consistent every day.",
- },
- {
- icon: "📊",
- title: "PR Analytics",
- description: "Understand your pull request activity and review velocity.",
- },
- {
- icon: "🏆",
- title: "Goals",
- description: "Set coding goals and automatically track your progress.",
- },
- {
- icon: "🌐",
- title: "Public Profile",
- description:
- "Share your developer stats and achievements with the world.",
- },
- ];
+ {
+ icon: "🔥",
+ title: "Streak Tracking",
+ description: "Never lose your streak and stay consistent every day.",
+ link: "/login-required",
+ },
+ {
+ icon: "📊",
+ title: "PR Analytics",
+ description: "Understand your pull request activity and review velocity.",
+ link: "/login-required",
+ },
+ {
+ icon: "🏆",
+ title: "Goals",
+ description: "Set coding goals and automatically track your progress.",
+ link: "/login-required",
+ },
+ {
+ icon: "🌐",
+ title: "Public Profile",
+ description:
+ "Share your developer stats and achievements with the world.",
+ link: "/login-required",
+ },
+];
return (
@@ -69,20 +73,21 @@ export default async function HomePage() {
{features.map((feature) => (
-
-
{feature.icon}
+
+
{feature.icon}
-
- {feature.title}
-
+
+ {feature.title}
+
-
- {feature.description}
-
-
+
+ {feature.description}
+
+
))}
From 1a27545178c197eab33215b7cc9f62473af48a1d Mon Sep 17 00:00:00 2001
From: priyakumari0104
Date: Sun, 24 May 2026 16:02:36 +0530
Subject: [PATCH 2/2] removing redirect looping in features card
---
src/app/login-required/page.tsx | 16 ++--------------
src/components/GithubSignInButton.tsx | 17 +++++++++++++++++
2 files changed, 19 insertions(+), 14 deletions(-)
create mode 100644 src/components/GithubSignInButton.tsx
diff --git a/src/app/login-required/page.tsx b/src/app/login-required/page.tsx
index 97124034..a233de65 100644
--- a/src/app/login-required/page.tsx
+++ b/src/app/login-required/page.tsx
@@ -1,5 +1,5 @@
import Link from "next/link";
-
+import GithubSignInButton from "@/components/GithubSignInButton";
export default function LoginRequiredPage() {
return (
@@ -27,19 +27,7 @@ export default function LoginRequiredPage() {
{/* Primary Action Button (Sign In) */}
-
- {/* Subtle button glare effect */}
-
-
- {/* Modern SVG GitHub Icon */}
-
- Continue with GitHub
-
+
{/* Secondary Action (GitHub Link) */}
+ signIn("github", { callbackUrl: "/dashboard" })
+ }
+ className="flex items-center justify-center gap-3 bg-black text-white py-4 rounded-xl font-semibold hover:scale-105 hover:opacity-90 transition duration-300 w-full"
+ >
+ 🐙
+ Continue with GitHub
+
+ );
+}
\ No newline at end of file