From d3566330b3b2be7e3be69149e51a1ccabadffb10 Mon Sep 17 00:00:00 2001 From: bender Date: Thu, 5 Mar 2026 17:10:00 +0000 Subject: [PATCH 1/4] Add src/app/auth/page.tsx --- src/app/auth/page.tsx | 137 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 src/app/auth/page.tsx diff --git a/src/app/auth/page.tsx b/src/app/auth/page.tsx new file mode 100644 index 0000000..76bd797 --- /dev/null +++ b/src/app/auth/page.tsx @@ -0,0 +1,137 @@ +"use client"; + +import { useState } from "react"; +import { Mail, Lock, User, ArrowRight } from "lucide-react"; + +interface LoginSignupPageProps { + onAuthSuccess: () => void; +} + +export default function LoginSignupPage({ onAuthSuccess }: LoginSignupPageProps) { + const [isLogin, setIsLogin] = useState(true); + const [email, setEmail] = useState(""); + const [password, setPassword] = useState(""); + const [name, setName] = useState(""); + const [isLoading, setIsLoading] = useState(false); + + const handleSubmit = async (e: React.FormEvent) => { + e.preventDefault(); + setIsLoading(true); + // Simulate API call + setTimeout(() => { + setIsLoading(false); + onAuthSuccess(); + }, 1000); + }; + + return ( +
+
+
+ {/* Header */} +
+

+ PathBound +

+

+ {isLogin + ? "Welcome back. Sign in to continue." + : "Create your account to get started."} +

+
+ + {/* Form */} +
+ {!isLogin && ( +
+ +
+ + setName(e.target.value)} + placeholder="Your full name" + className="w-full pl-10 pr-4 py-3 bg-background border border-accent/30 rounded-lg text-foreground placeholder-foreground/40 focus:outline-none focus:border-primary-cta transition-colors" + required + /> +
+
+ )} + +
+ +
+ + setEmail(e.target.value)} + placeholder="your@email.com" + className="w-full pl-10 pr-4 py-3 bg-background border border-accent/30 rounded-lg text-foreground placeholder-foreground/40 focus:outline-none focus:border-primary-cta transition-colors" + required + /> +
+
+ +
+ +
+ + setPassword(e.target.value)} + placeholder="••••••••" + className="w-full pl-10 pr-4 py-3 bg-background border border-accent/30 rounded-lg text-foreground placeholder-foreground/40 focus:outline-none focus:border-primary-cta transition-colors" + required + /> +
+
+ + +
+ + {/* Toggle */} +
+

+ {isLogin ? "Don't have an account?" : "Already have an account?"}{" "} + +

+
+ + {/* Demo Notice */} +
+

+ Demo: Enter any email/password to proceed to the dashboard. +

+
+
+
+
+ ); +} -- 2.49.1 From ee0b72a69882638c791ab663947e173c1cc8a07f Mon Sep 17 00:00:00 2001 From: bender Date: Thu, 5 Mar 2026 17:10:00 +0000 Subject: [PATCH 2/4] Add src/app/dashboard/page.tsx --- src/app/dashboard/page.tsx | 265 +++++++++++++++++++++++++++++++++++++ 1 file changed, 265 insertions(+) create mode 100644 src/app/dashboard/page.tsx diff --git a/src/app/dashboard/page.tsx b/src/app/dashboard/page.tsx new file mode 100644 index 0000000..74d30f9 --- /dev/null +++ b/src/app/dashboard/page.tsx @@ -0,0 +1,265 @@ +"use client"; + +import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; +import NavbarLayoutFloatingInline from "@/components/navbar/NavbarLayoutFloatingInline"; +import HeroBillboardGallery from "@/components/sections/hero/HeroBillboardGallery"; +import TestimonialAboutCard from "@/components/sections/about/TestimonialAboutCard"; +import FeatureCardTwentyFour from "@/components/sections/feature/FeatureCardTwentyFour"; +import MetricCardTen from "@/components/sections/metrics/MetricCardTen"; +import SocialProofOne from "@/components/sections/socialProof/SocialProofOne"; +import ProductCardThree from "@/components/sections/product/ProductCardThree"; +import TeamCardTen from "@/components/sections/team/TeamCardTen"; +import FaqDouble from "@/components/sections/faq/FaqDouble"; +import ContactText from "@/components/sections/contact/ContactText"; +import FooterCard from "@/components/sections/footer/FooterCard"; +import { Award, CheckCircle, DollarSign, HelpCircle, Linkedin, MapPin, Twitter, Zap, Github, TrendingUp, LogOut } from "lucide-react"; + +interface DashboardPageProps { + onLogout: () => void; +} + +export default function DashboardPage({ onLogout }: DashboardPageProps) { + return ( + <> + + +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + + + ); +} -- 2.49.1 From 2654da2633523b4b1ed132ad535b90c6964206bf Mon Sep 17 00:00:00 2001 From: bender Date: Thu, 5 Mar 2026 17:10:01 +0000 Subject: [PATCH 3/4] Update src/app/layout.tsx --- src/app/layout.tsx | 52 +++++++--------------------------------------- 1 file changed, 8 insertions(+), 44 deletions(-) diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 47c0d30..4247f32 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,57 +1,22 @@ import type { Metadata } from "next"; -import { Halant } from "next/font/google"; import { Inter } from "next/font/google"; -import { Nunito } from "next/font/google"; import "./globals.css"; -import { ServiceWrapper } from "@/components/ServiceWrapper"; -import Tag from "@/tag/Tag"; +import "./styles/variables.css"; +import "./styles/base.css"; -const halant = Halant({ - variable: "--font-halant", subsets: ["latin"], - weight: ["300", "400", "500", "600", "700"], -}); - -const inter = Inter({ - variable: "--font-inter", subsets: ["latin"], -}); - -const nunito = Nunito({ - variable: "--font-nunito", subsets: ["latin"], -}); +const inter = Inter({ subsets: ["latin"] }); export const metadata: Metadata = { - title: "PathBound | Stop Guessing, Start Proving Your Skills", description: "The gamified platform connecting verified talent with opportunity through transparent skills, government grants, and mentorship—no ghosting guaranteed.", keywords: "skill verification, merit-based hiring, career platform, government grants, talent matching, fintech, RPG gamification", metadataBase: new URL("https://pathbound.io"), - alternates: { - canonical: "https://pathbound.io"}, - openGraph: { - title: "PathBound | Stop Guessing, Start Proving", description: "Verified skills, automated grants, and transparent career pathways for early-career professionals.", url: "https://pathbound.io", siteName: "PathBound", type: "website", images: [ - { - url: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AXC1iC7n8wpgGHKDNrNvntOAHx/a-dynamic-rpg-style-dashboard-showing-a--1772729677584-775d969b.png", alt: "PathBound Momentum Meter Dashboard"}, - ], - }, - twitter: { - card: "summary_large_image", title: "PathBound | Stop Guessing, Start Proving", description: "Gamified career platform with verified skills and no ghosting.", images: ["https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AXC1iC7n8wpgGHKDNrNvntOAHx/skill-verification-badges-floating-in-sp-1772729679821-cbedc9c4.png"], - }, - robots: { - index: true, - follow: true, - }, -}; + title: "PathBound", description: "Gamified Career Platform"}; export default function RootLayout({ children, -}: Readonly<{ +}: { children: React.ReactNode; -}>) { +}) { return ( - - - - - {children} - + + {children}