Compare commits
37 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| bec95ea237 | |||
| a1db1beb1e | |||
| defe3dc8ab | |||
| b172ba178c | |||
| 0ec7bba6f4 | |||
| 587c29684b | |||
| b51a131ebd | |||
| 5005dda660 | |||
| 933b391571 | |||
| 879bbb7648 | |||
| 814071c673 | |||
| ff88d82479 | |||
| 8a58555d0f | |||
| de5025c26a | |||
| a3e007b33c | |||
| 215577c003 | |||
| 4b92a884ca | |||
| cc95961e6a | |||
| ae88fe2497 | |||
| cd7c622fee | |||
| 10f2646e8a | |||
| f36f875292 | |||
| 518adc388a | |||
| 24ebcb03fa | |||
| f485c3ee11 | |||
| 7812e430f2 | |||
| 6dc48d2ed7 | |||
| 2de0d1c00b | |||
| 5b7a02ffb9 | |||
| bbc65a131f | |||
| 9dafef8093 | |||
| 983ac2b824 | |||
| 752d43b9d4 | |||
| 4c198a45f5 | |||
| 050d0d3b34 | |||
| 683472b187 | |||
| 596a59c34e |
101
src/app/admin/analytics-dashboard/page.tsx
Normal file
101
src/app/admin/analytics-dashboard/page.tsx
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import ReactLenis from "lenis/react";
|
||||||
|
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
|
||||||
|
import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
|
||||||
|
import ContactCTA from '@/components/sections/contact/ContactCTA';
|
||||||
|
|
||||||
|
export default function AdminAnalyticsDashboardPage() {
|
||||||
|
const navItems = [
|
||||||
|
{ name: "Home", id: "/" },
|
||||||
|
{ name: "Features", id: "/#features" },
|
||||||
|
{ name: "Jobs", id: "/#jobs" },
|
||||||
|
{ name: "Companies", id: "/#companies" },
|
||||||
|
{ name: "Pricing", id: "/#pricing" },
|
||||||
|
{ name: "Reviews", id: "/#testimonials" },
|
||||||
|
{ name: "FAQ", id: "/#faq" },
|
||||||
|
{ name: "Admin", id: "/admin/user-management" }
|
||||||
|
];
|
||||||
|
|
||||||
|
const footerColumns = [
|
||||||
|
{
|
||||||
|
title: "Platform", items: [
|
||||||
|
{ label: "Job Seekers", href: "/#features" },
|
||||||
|
{ label: "Employers", href: "/#features" },
|
||||||
|
{ label: "Recruiters", href: "/#features" },
|
||||||
|
{ label: "AI Features", href: "/#features" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Resources", items: [
|
||||||
|
{ label: "Featured Jobs", href: "/#jobs" },
|
||||||
|
{ label: "Featured Companies", href: "/#companies" },
|
||||||
|
{ label: "Pricing Plans", href: "/#pricing" },
|
||||||
|
{ label: "FAQ", href: "/#faq" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Company", items: [
|
||||||
|
{ label: "About Us", href: "#" },
|
||||||
|
{ label: "Contact Us", href: "#" },
|
||||||
|
{ label: "Blog", href: "#" },
|
||||||
|
{ label: "Careers", href: "#" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Legal", items: [
|
||||||
|
{ label: "Privacy Policy", href: "#" },
|
||||||
|
{ label: "Terms of Service", href: "#" },
|
||||||
|
{ label: "Cookie Policy", href: "#" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="elastic-effect"
|
||||||
|
defaultTextAnimation="entrance-slide"
|
||||||
|
borderRadius="soft"
|
||||||
|
contentWidth="medium"
|
||||||
|
sizing="mediumLargeSizeLargeTitles"
|
||||||
|
background="fluid"
|
||||||
|
cardStyle="gradient-bordered"
|
||||||
|
primaryButtonStyle="radial-glow"
|
||||||
|
secondaryButtonStyle="radial-glow"
|
||||||
|
headingFontWeight="bold"
|
||||||
|
>
|
||||||
|
<ReactLenis root>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarStyleFullscreen
|
||||||
|
navItems={navItems}
|
||||||
|
brandName="JobGeorgia"
|
||||||
|
button={{ text: "Get Started", href: "/#pricing" }}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="analytics-dashboard" data-section="analytics-dashboard">
|
||||||
|
<ContactCTA
|
||||||
|
tag="Admin Panel"
|
||||||
|
title="Analytics Dashboard"
|
||||||
|
description="Gain insights into platform performance with key metrics on user activity, job postings, applications, and revenue."
|
||||||
|
buttons={[
|
||||||
|
{ text: "View Analytics", href: "#" },
|
||||||
|
{ text: "Generate Custom Report", href: "#" }
|
||||||
|
]}
|
||||||
|
background={{ variant: "plain" }}
|
||||||
|
useInvertedBackground={false}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="footer" data-section="footer">
|
||||||
|
<FooterBaseReveal
|
||||||
|
logoText="JobGeorgia"
|
||||||
|
columns={footerColumns}
|
||||||
|
copyrightText="© 2024 JobGeorgia. All rights reserved."
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</ReactLenis>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
101
src/app/admin/content-moderation/page.tsx
Normal file
101
src/app/admin/content-moderation/page.tsx
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import ReactLenis from "lenis/react";
|
||||||
|
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
|
||||||
|
import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
|
||||||
|
import ContactCTA from '@/components/sections/contact/ContactCTA';
|
||||||
|
|
||||||
|
export default function AdminContentModerationPage() {
|
||||||
|
const navItems = [
|
||||||
|
{ name: "Home", id: "/" },
|
||||||
|
{ name: "Features", id: "/#features" },
|
||||||
|
{ name: "Jobs", id: "/#jobs" },
|
||||||
|
{ name: "Companies", id: "/#companies" },
|
||||||
|
{ name: "Pricing", id: "/#pricing" },
|
||||||
|
{ name: "Reviews", id: "/#testimonials" },
|
||||||
|
{ name: "FAQ", id: "/#faq" },
|
||||||
|
{ name: "Admin", id: "/admin/user-management" }
|
||||||
|
];
|
||||||
|
|
||||||
|
const footerColumns = [
|
||||||
|
{
|
||||||
|
title: "Platform", items: [
|
||||||
|
{ label: "Job Seekers", href: "/#features" },
|
||||||
|
{ label: "Employers", href: "/#features" },
|
||||||
|
{ label: "Recruiters", href: "/#features" },
|
||||||
|
{ label: "AI Features", href: "/#features" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Resources", items: [
|
||||||
|
{ label: "Featured Jobs", href: "/#jobs" },
|
||||||
|
{ label: "Featured Companies", href: "/#companies" },
|
||||||
|
{ label: "Pricing Plans", href: "/#pricing" },
|
||||||
|
{ label: "FAQ", href: "/#faq" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Company", items: [
|
||||||
|
{ label: "About Us", href: "#" },
|
||||||
|
{ label: "Contact Us", href: "#" },
|
||||||
|
{ label: "Blog", href: "#" },
|
||||||
|
{ label: "Careers", href: "#" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Legal", items: [
|
||||||
|
{ label: "Privacy Policy", href: "#" },
|
||||||
|
{ label: "Terms of Service", href: "#" },
|
||||||
|
{ label: "Cookie Policy", href: "#" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="elastic-effect"
|
||||||
|
defaultTextAnimation="entrance-slide"
|
||||||
|
borderRadius="soft"
|
||||||
|
contentWidth="medium"
|
||||||
|
sizing="mediumLargeSizeLargeTitles"
|
||||||
|
background="fluid"
|
||||||
|
cardStyle="gradient-bordered"
|
||||||
|
primaryButtonStyle="radial-glow"
|
||||||
|
secondaryButtonStyle="radial-glow"
|
||||||
|
headingFontWeight="bold"
|
||||||
|
>
|
||||||
|
<ReactLenis root>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarStyleFullscreen
|
||||||
|
navItems={navItems}
|
||||||
|
brandName="JobGeorgia"
|
||||||
|
button={{ text: "Get Started", href: "/#pricing" }}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="content-moderation" data-section="content-moderation">
|
||||||
|
<ContactCTA
|
||||||
|
tag="Admin Panel"
|
||||||
|
title="Content Moderation"
|
||||||
|
description="Ensure platform integrity by reviewing and moderating job postings, resumes, and user-generated content."
|
||||||
|
buttons={[
|
||||||
|
{ text: "Review Content", href: "#" },
|
||||||
|
{ text: "Flagged Items", href: "#" }
|
||||||
|
]}
|
||||||
|
background={{ variant: "plain" }}
|
||||||
|
useInvertedBackground={false}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="footer" data-section="footer">
|
||||||
|
<FooterBaseReveal
|
||||||
|
logoText="JobGeorgia"
|
||||||
|
columns={footerColumns}
|
||||||
|
copyrightText="© 2024 JobGeorgia. All rights reserved."
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</ReactLenis>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
101
src/app/admin/employer-approval/page.tsx
Normal file
101
src/app/admin/employer-approval/page.tsx
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import ReactLenis from "lenis/react";
|
||||||
|
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
|
||||||
|
import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
|
||||||
|
import ContactCTA from '@/components/sections/contact/ContactCTA';
|
||||||
|
|
||||||
|
export default function AdminEmployerApprovalPage() {
|
||||||
|
const navItems = [
|
||||||
|
{ name: "Home", id: "/" },
|
||||||
|
{ name: "Features", id: "/#features" },
|
||||||
|
{ name: "Jobs", id: "/#jobs" },
|
||||||
|
{ name: "Companies", id: "/#companies" },
|
||||||
|
{ name: "Pricing", id: "/#pricing" },
|
||||||
|
{ name: "Reviews", id: "/#testimonials" },
|
||||||
|
{ name: "FAQ", id: "/#faq" },
|
||||||
|
{ name: "Admin", id: "/admin/user-management" }
|
||||||
|
];
|
||||||
|
|
||||||
|
const footerColumns = [
|
||||||
|
{
|
||||||
|
title: "Platform", items: [
|
||||||
|
{ label: "Job Seekers", href: "/#features" },
|
||||||
|
{ label: "Employers", href: "/#features" },
|
||||||
|
{ label: "Recruiters", href: "/#features" },
|
||||||
|
{ label: "AI Features", href: "/#features" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Resources", items: [
|
||||||
|
{ label: "Featured Jobs", href: "/#jobs" },
|
||||||
|
{ label: "Featured Companies", href: "/#companies" },
|
||||||
|
{ label: "Pricing Plans", href: "/#pricing" },
|
||||||
|
{ label: "FAQ", href: "/#faq" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Company", items: [
|
||||||
|
{ label: "About Us", href: "#" },
|
||||||
|
{ label: "Contact Us", href: "#" },
|
||||||
|
{ label: "Blog", href: "#" },
|
||||||
|
{ label: "Careers", href: "#" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Legal", items: [
|
||||||
|
{ label: "Privacy Policy", href: "#" },
|
||||||
|
{ label: "Terms of Service", href: "#" },
|
||||||
|
{ label: "Cookie Policy", href: "#" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="elastic-effect"
|
||||||
|
defaultTextAnimation="entrance-slide"
|
||||||
|
borderRadius="soft"
|
||||||
|
contentWidth="medium"
|
||||||
|
sizing="mediumLargeSizeLargeTitles"
|
||||||
|
background="fluid"
|
||||||
|
cardStyle="gradient-bordered"
|
||||||
|
primaryButtonStyle="radial-glow"
|
||||||
|
secondaryButtonStyle="radial-glow"
|
||||||
|
headingFontWeight="bold"
|
||||||
|
>
|
||||||
|
<ReactLenis root>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarStyleFullscreen
|
||||||
|
navItems={navItems}
|
||||||
|
brandName="JobGeorgia"
|
||||||
|
button={{ text: "Get Started", href: "/#pricing" }}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="employer-approval" data-section="employer-approval">
|
||||||
|
<ContactCTA
|
||||||
|
tag="Admin Panel"
|
||||||
|
title="Employer Approval"
|
||||||
|
description="Review and approve employer accounts, ensuring compliance with platform standards and legal requirements."
|
||||||
|
buttons={[
|
||||||
|
{ text: "Review Employers", href: "#" },
|
||||||
|
{ text: "Approved Employers", href: "#" }
|
||||||
|
]}
|
||||||
|
background={{ variant: "plain" }}
|
||||||
|
useInvertedBackground={false}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="footer" data-section="footer">
|
||||||
|
<FooterBaseReveal
|
||||||
|
logoText="JobGeorgia"
|
||||||
|
columns={footerColumns}
|
||||||
|
copyrightText="© 2024 JobGeorgia. All rights reserved."
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</ReactLenis>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
101
src/app/admin/user-management/page.tsx
Normal file
101
src/app/admin/user-management/page.tsx
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import ReactLenis from "lenis/react";
|
||||||
|
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
|
||||||
|
import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
|
||||||
|
import ContactCTA from '@/components/sections/contact/ContactCTA';
|
||||||
|
|
||||||
|
export default function AdminUserManagementPage() {
|
||||||
|
const navItems = [
|
||||||
|
{ name: "Home", id: "/" },
|
||||||
|
{ name: "Features", id: "/#features" },
|
||||||
|
{ name: "Jobs", id: "/#jobs" },
|
||||||
|
{ name: "Companies", id: "/#companies" },
|
||||||
|
{ name: "Pricing", id: "/#pricing" },
|
||||||
|
{ name: "Reviews", id: "/#testimonials" },
|
||||||
|
{ name: "FAQ", id: "/#faq" },
|
||||||
|
{ name: "Admin", id: "/admin/user-management" }
|
||||||
|
];
|
||||||
|
|
||||||
|
const footerColumns = [
|
||||||
|
{
|
||||||
|
title: "Platform", items: [
|
||||||
|
{ label: "Job Seekers", href: "/#features" },
|
||||||
|
{ label: "Employers", href: "/#features" },
|
||||||
|
{ label: "Recruiters", href: "/#features" },
|
||||||
|
{ label: "AI Features", href: "/#features" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Resources", items: [
|
||||||
|
{ label: "Featured Jobs", href: "/#jobs" },
|
||||||
|
{ label: "Featured Companies", href: "/#companies" },
|
||||||
|
{ label: "Pricing Plans", href: "/#pricing" },
|
||||||
|
{ label: "FAQ", href: "/#faq" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Company", items: [
|
||||||
|
{ label: "About Us", href: "#" },
|
||||||
|
{ label: "Contact Us", href: "#" },
|
||||||
|
{ label: "Blog", href: "#" },
|
||||||
|
{ label: "Careers", href: "#" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Legal", items: [
|
||||||
|
{ label: "Privacy Policy", href: "#" },
|
||||||
|
{ label: "Terms of Service", href: "#" },
|
||||||
|
{ label: "Cookie Policy", href: "#" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="elastic-effect"
|
||||||
|
defaultTextAnimation="entrance-slide"
|
||||||
|
borderRadius="soft"
|
||||||
|
contentWidth="medium"
|
||||||
|
sizing="mediumLargeSizeLargeTitles"
|
||||||
|
background="fluid"
|
||||||
|
cardStyle="gradient-bordered"
|
||||||
|
primaryButtonStyle="radial-glow"
|
||||||
|
secondaryButtonStyle="radial-glow"
|
||||||
|
headingFontWeight="bold"
|
||||||
|
>
|
||||||
|
<ReactLenis root>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarStyleFullscreen
|
||||||
|
navItems={navItems}
|
||||||
|
brandName="JobGeorgia"
|
||||||
|
button={{ text: "Get Started", href: "/#pricing" }}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="user-management" data-section="user-management">
|
||||||
|
<ContactCTA
|
||||||
|
tag="Admin Panel"
|
||||||
|
title="User Management"
|
||||||
|
description="Oversee and manage user accounts, including editing profiles, resetting passwords, and handling suspensions."
|
||||||
|
buttons={[
|
||||||
|
{ text: "View Users", href: "#" },
|
||||||
|
{ text: "Manage Roles", href: "#" }
|
||||||
|
]}
|
||||||
|
background={{ variant: "plain" }}
|
||||||
|
useInvertedBackground={false}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="footer" data-section="footer">
|
||||||
|
<FooterBaseReveal
|
||||||
|
logoText="JobGeorgia"
|
||||||
|
columns={footerColumns}
|
||||||
|
copyrightText="© 2024 JobGeorgia. All rights reserved."
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</ReactLenis>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
81
src/app/auth/forgot-password/page.tsx
Normal file
81
src/app/auth/forgot-password/page.tsx
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import ReactLenis from "lenis/react";
|
||||||
|
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
|
||||||
|
import Link from 'next/link';
|
||||||
|
|
||||||
|
export default function ForgotPasswordPage() {
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="elastic-effect"
|
||||||
|
defaultTextAnimation="entrance-slide"
|
||||||
|
borderRadius="soft"
|
||||||
|
contentWidth="medium"
|
||||||
|
sizing="mediumLargeSizeLargeTitles"
|
||||||
|
background="fluid"
|
||||||
|
cardStyle="gradient-bordered"
|
||||||
|
primaryButtonStyle="radial-glow"
|
||||||
|
secondaryButtonStyle="radial-glow"
|
||||||
|
headingFontWeight="bold"
|
||||||
|
>
|
||||||
|
<ReactLenis root>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarStyleFullscreen
|
||||||
|
navItems={[
|
||||||
|
{ name: "Home", id: "#home" },
|
||||||
|
{ name: "Features", id: "#features" },
|
||||||
|
{ name: "Jobs", id: "#jobs" },
|
||||||
|
{ name: "Companies", id: "#companies" },
|
||||||
|
{ name: "Pricing", id: "#pricing" },
|
||||||
|
{ name: "Reviews", id: "#testimonials" },
|
||||||
|
{ name: "FAQ", id: "#faq" },
|
||||||
|
]}
|
||||||
|
brandName="JobGeorgia"
|
||||||
|
button={{ text: "Get Started", href: "/auth/login" }}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="min-h-screen flex items-center justify-center py-12 px-4 sm:px-6 lg:px-8 bg-gradient-to-br from-background to-background-accent text-foreground">
|
||||||
|
<div className="max-w-md w-full space-y-8 p-10 rounded-xl shadow-2xl bg-card border border-primary-cta/20">
|
||||||
|
<div>
|
||||||
|
<h2 className="mt-6 text-center text-3xl font-extrabold">
|
||||||
|
Forgot your password?
|
||||||
|
</h2>
|
||||||
|
<p className="mt-2 text-center text-sm text-foreground/70">
|
||||||
|
Enter your email address below to receive a password reset link.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<form className="mt-8 space-y-6" action="#" method="POST">
|
||||||
|
<div>
|
||||||
|
<label htmlFor="email-address" className="sr-only">Email address</label>
|
||||||
|
<input
|
||||||
|
id="email-address"
|
||||||
|
name="email"
|
||||||
|
type="email"
|
||||||
|
autoComplete="email"
|
||||||
|
required
|
||||||
|
className="appearance-none relative block w-full px-3 py-2 border border-foreground/30 placeholder-foreground/50 text-foreground rounded-md focus:outline-none focus:ring-primary-cta focus:border-primary-cta focus:z-10 sm:text-sm bg-background-accent/50"
|
||||||
|
placeholder="Email address"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<button
|
||||||
|
type="submit"
|
||||||
|
className="group relative w-full flex justify-center py-2 px-4 border border-transparent text-sm font-medium rounded-md text-white bg-primary-cta hover:bg-primary-cta/80 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-cta"
|
||||||
|
>
|
||||||
|
Send reset link
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div className="text-center text-sm">
|
||||||
|
<Link href="/auth/login" className="font-medium text-primary-cta hover:text-primary-cta/80">
|
||||||
|
Back to Login
|
||||||
|
</Link>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</ReactLenis>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
135
src/app/auth/login/page.tsx
Normal file
135
src/app/auth/login/page.tsx
Normal file
@@ -0,0 +1,135 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import ReactLenis from "lenis/react";
|
||||||
|
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
|
||||||
|
import Link from 'next/link';
|
||||||
|
|
||||||
|
export default function LoginPage() {
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="elastic-effect"
|
||||||
|
defaultTextAnimation="entrance-slide"
|
||||||
|
borderRadius="soft"
|
||||||
|
contentWidth="medium"
|
||||||
|
sizing="mediumLargeSizeLargeTitles"
|
||||||
|
background="fluid"
|
||||||
|
cardStyle="gradient-bordered"
|
||||||
|
primaryButtonStyle="radial-glow"
|
||||||
|
secondaryButtonStyle="radial-glow"
|
||||||
|
headingFontWeight="bold"
|
||||||
|
>
|
||||||
|
<ReactLenis root>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarStyleFullscreen
|
||||||
|
navItems={[
|
||||||
|
{ name: "Home", id: "#home" },
|
||||||
|
{ name: "Features", id: "#features" },
|
||||||
|
{ name: "Jobs", id: "#jobs" },
|
||||||
|
{ name: "Companies", id: "#companies" },
|
||||||
|
{ name: "Pricing", id: "#pricing" },
|
||||||
|
{ name: "Reviews", id: "#testimonials" },
|
||||||
|
{ name: "FAQ", id: "#faq" },
|
||||||
|
]}
|
||||||
|
brandName="JobGeorgia"
|
||||||
|
button={{ text: "Get Started", href: "/auth/login" }}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="min-h-screen flex items-center justify-center py-12 px-4 sm:px-6 lg:px-8 bg-gradient-to-br from-background to-background-accent text-foreground">
|
||||||
|
<div className="max-w-md w-full space-y-8 p-10 rounded-xl shadow-2xl bg-card border border-primary-cta/20">
|
||||||
|
<div>
|
||||||
|
<h2 className="mt-6 text-center text-3xl font-extrabold">
|
||||||
|
Sign in to your account
|
||||||
|
</h2>
|
||||||
|
<p className="mt-2 text-center text-sm text-foreground/70">
|
||||||
|
Or{' '}
|
||||||
|
<Link href="/auth/register" className="font-medium text-primary-cta hover:text-primary-cta/80">
|
||||||
|
register for a new account
|
||||||
|
</Link>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<form className="mt-8 space-y-6" action="#" method="POST">
|
||||||
|
<div className="rounded-md shadow-sm -space-y-px">
|
||||||
|
<div>
|
||||||
|
<label htmlFor="email-address" className="sr-only">Email address</label>
|
||||||
|
<input
|
||||||
|
id="email-address"
|
||||||
|
name="email"
|
||||||
|
type="email"
|
||||||
|
autoComplete="email"
|
||||||
|
required
|
||||||
|
className="appearance-none rounded-none relative block w-full px-3 py-2 border border-foreground/30 placeholder-foreground/50 text-foreground rounded-t-md focus:outline-none focus:ring-primary-cta focus:border-primary-cta focus:z-10 sm:text-sm bg-background-accent/50"
|
||||||
|
placeholder="Email address"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<label htmlFor="password" className="sr-only">Password</label>
|
||||||
|
<input
|
||||||
|
id="password"
|
||||||
|
name="password"
|
||||||
|
type="password"
|
||||||
|
autoComplete="current-password"
|
||||||
|
required
|
||||||
|
className="appearance-none rounded-none relative block w-full px-3 py-2 border border-foreground/30 placeholder-foreground/50 text-foreground rounded-b-md focus:outline-none focus:ring-primary-cta focus:border-primary-cta focus:z-10 sm:text-sm bg-background-accent/50"
|
||||||
|
placeholder="Password"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="flex items-center justify-between">
|
||||||
|
<div className="flex items-center">
|
||||||
|
<input
|
||||||
|
id="remember-me"
|
||||||
|
name="remember-me"
|
||||||
|
type="checkbox"
|
||||||
|
className="h-4 w-4 text-primary-cta focus:ring-primary-cta border-foreground/30 rounded"
|
||||||
|
/>
|
||||||
|
<label htmlFor="remember-me" className="ml-2 block text-sm text-foreground/70">
|
||||||
|
Remember me
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="text-sm">
|
||||||
|
<Link href="/auth/forgot-password" className="font-medium text-primary-cta hover:text-primary-cta/80">
|
||||||
|
Forgot your password?
|
||||||
|
</Link>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<button
|
||||||
|
type="submit"
|
||||||
|
className="group relative w-full flex justify-center py-2 px-4 border border-transparent text-sm font-medium rounded-md text-white bg-primary-cta hover:bg-primary-cta/80 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-cta"
|
||||||
|
>
|
||||||
|
Sign in
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="relative">
|
||||||
|
<div className="absolute inset-0 flex items-center">
|
||||||
|
<div className="w-full border-t border-foreground/30" />
|
||||||
|
</div>
|
||||||
|
<div className="relative flex justify-center text-sm">
|
||||||
|
<span className="px-2 bg-card text-foreground/70">
|
||||||
|
Or continue with
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
className="group relative w-full flex justify-center py-2 px-4 border border-foreground/30 text-sm font-medium rounded-md text-foreground bg-secondary-cta hover:bg-secondary-cta/80 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-secondary-cta"
|
||||||
|
>
|
||||||
|
<svg className="w-5 h-5 mr-2" aria-hidden="true" fill="currentColor" viewBox="0 0 24 24"><path d="M22.56 12.27c0-.78-.07-1.5-.18-2.22H12v4.11h6.14a4.8 4.8 0 01-2.09 3.17v2.67h3.42c2.01-1.85 3.17-4.57 3.17-7.8zm-11.28 9.17c-3.11 0-5.74-2.09-6.68-4.9h3.25a6.49 6.49 0 003.43 2.9v-3.78H5.98V10.74h-2.1V7.96h2.1V5.18H9.36v2.78h2.1zm0-16.71V0H9.36v2.78h-2.1v2.78h2.1v2.78h2.1V7.96z"/></svg>
|
||||||
|
Google
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</ReactLenis>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
55
src/app/auth/oauth-callback/page.tsx
Normal file
55
src/app/auth/oauth-callback/page.tsx
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import ReactLenis from "lenis/react";
|
||||||
|
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
|
||||||
|
|
||||||
|
export default function OAuthCallbackPage() {
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="elastic-effect"
|
||||||
|
defaultTextAnimation="entrance-slide"
|
||||||
|
borderRadius="soft"
|
||||||
|
contentWidth="medium"
|
||||||
|
sizing="mediumLargeSizeLargeTitles"
|
||||||
|
background="fluid"
|
||||||
|
cardStyle="gradient-bordered"
|
||||||
|
primaryButtonStyle="radial-glow"
|
||||||
|
secondaryButtonStyle="radial-glow"
|
||||||
|
headingFontWeight="bold"
|
||||||
|
>
|
||||||
|
<ReactLenis root>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarStyleFullscreen
|
||||||
|
navItems={[
|
||||||
|
{ name: "Home", id: "#home" },
|
||||||
|
{ name: "Features", id: "#features" },
|
||||||
|
{ name: "Jobs", id: "#jobs" },
|
||||||
|
{ name: "Companies", id: "#companies" },
|
||||||
|
{ name: "Pricing", id: "#pricing" },
|
||||||
|
{ name: "Reviews", id: "#testimonials" },
|
||||||
|
{ name: "FAQ", id: "#faq" },
|
||||||
|
]}
|
||||||
|
brandName="JobGeorgia"
|
||||||
|
button={{ text: "Get Started", href: "/auth/login" }}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="min-h-screen flex items-center justify-center py-12 px-4 sm:px-6 lg:px-8 bg-gradient-to-br from-background to-background-accent text-foreground">
|
||||||
|
<div className="max-w-md w-full space-y-8 p-10 rounded-xl shadow-2xl bg-card border border-primary-cta/20 text-center">
|
||||||
|
<h2 className="mt-6 text-3xl font-extrabold">
|
||||||
|
Processing your login...
|
||||||
|
</h2>
|
||||||
|
<p className="mt-2 text-sm text-foreground/70">
|
||||||
|
Please wait while we securely log you in.
|
||||||
|
</p>
|
||||||
|
<div className="mt-6">
|
||||||
|
{/* A simple spinner or loading animation could go here */}
|
||||||
|
<div className="animate-spin rounded-full h-12 w-12 border-b-2 border-primary-cta mx-auto"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</ReactLenis>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
106
src/app/auth/register/page.tsx
Normal file
106
src/app/auth/register/page.tsx
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import ReactLenis from "lenis/react";
|
||||||
|
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
|
||||||
|
import Link from 'next/link';
|
||||||
|
|
||||||
|
export default function RegisterPage() {
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="elastic-effect"
|
||||||
|
defaultTextAnimation="entrance-slide"
|
||||||
|
borderRadius="soft"
|
||||||
|
contentWidth="medium"
|
||||||
|
sizing="mediumLargeSizeLargeTitles"
|
||||||
|
background="fluid"
|
||||||
|
cardStyle="gradient-bordered"
|
||||||
|
primaryButtonStyle="radial-glow"
|
||||||
|
secondaryButtonStyle="radial-glow"
|
||||||
|
headingFontWeight="bold"
|
||||||
|
>
|
||||||
|
<ReactLenis root>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarStyleFullscreen
|
||||||
|
navItems={[
|
||||||
|
{ name: "Home", id: "#home" },
|
||||||
|
{ name: "Features", id: "#features" },
|
||||||
|
{ name: "Jobs", id: "#jobs" },
|
||||||
|
{ name: "Companies", id: "#companies" },
|
||||||
|
{ name: "Pricing", id: "#pricing" },
|
||||||
|
{ name: "Reviews", id: "#testimonials" },
|
||||||
|
{ name: "FAQ", id: "#faq" },
|
||||||
|
]}
|
||||||
|
brandName="JobGeorgia"
|
||||||
|
button={{ text: "Get Started", href: "/auth/login" }}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="min-h-screen flex items-center justify-center py-12 px-4 sm:px-6 lg:px-8 bg-gradient-to-br from-background to-background-accent text-foreground">
|
||||||
|
<div className="max-w-md w-full space-y-8 p-10 rounded-xl shadow-2xl bg-card border border-primary-cta/20">
|
||||||
|
<div>
|
||||||
|
<h2 className="mt-6 text-center text-3xl font-extrabold">
|
||||||
|
Create an account
|
||||||
|
</h2>
|
||||||
|
<p className="mt-2 text-center text-sm text-foreground/70">
|
||||||
|
Or{' '}
|
||||||
|
<Link href="/auth/login" className="font-medium text-primary-cta hover:text-primary-cta/80">
|
||||||
|
sign in to your existing account
|
||||||
|
</Link>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<form className="mt-8 space-y-6" action="#" method="POST">
|
||||||
|
<div className="rounded-md shadow-sm -space-y-px">
|
||||||
|
<div>
|
||||||
|
<label htmlFor="full-name" className="sr-only">Full Name</label>
|
||||||
|
<input
|
||||||
|
id="full-name"
|
||||||
|
name="full-name"
|
||||||
|
type="text"
|
||||||
|
autoComplete="name"
|
||||||
|
required
|
||||||
|
className="appearance-none rounded-none relative block w-full px-3 py-2 border border-foreground/30 placeholder-foreground/50 text-foreground rounded-t-md focus:outline-none focus:ring-primary-cta focus:border-primary-cta focus:z-10 sm:text-sm bg-background-accent/50"
|
||||||
|
placeholder="Full Name"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<label htmlFor="email-address" className="sr-only">Email address</label>
|
||||||
|
<input
|
||||||
|
id="email-address"
|
||||||
|
name="email"
|
||||||
|
type="email"
|
||||||
|
autoComplete="email"
|
||||||
|
required
|
||||||
|
className="appearance-none rounded-none relative block w-full px-3 py-2 border border-foreground/30 placeholder-foreground/50 text-foreground focus:outline-none focus:ring-primary-cta focus:border-primary-cta focus:z-10 sm:text-sm bg-background-accent/50"
|
||||||
|
placeholder="Email address"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<label htmlFor="password" className="sr-only">Password</label>
|
||||||
|
<input
|
||||||
|
id="password"
|
||||||
|
name="password"
|
||||||
|
type="password"
|
||||||
|
autoComplete="new-password"
|
||||||
|
required
|
||||||
|
className="appearance-none rounded-none relative block w-full px-3 py-2 border border-foreground/30 placeholder-foreground/50 text-foreground rounded-b-md focus:outline-none focus:ring-primary-cta focus:border-primary-cta focus:z-10 sm:text-sm bg-background-accent/50"
|
||||||
|
placeholder="Password"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<button
|
||||||
|
type="submit"
|
||||||
|
className="group relative w-full flex justify-center py-2 px-4 border border-transparent text-sm font-medium rounded-md text-white bg-primary-cta hover:bg-primary-cta/80 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-cta"
|
||||||
|
>
|
||||||
|
Register
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</ReactLenis>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
63
src/app/auth/verify-email/page.tsx
Normal file
63
src/app/auth/verify-email/page.tsx
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import ReactLenis from "lenis/react";
|
||||||
|
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
|
||||||
|
import Link from 'next/link';
|
||||||
|
|
||||||
|
export default function VerifyEmailPage() {
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="elastic-effect"
|
||||||
|
defaultTextAnimation="entrance-slide"
|
||||||
|
borderRadius="soft"
|
||||||
|
contentWidth="medium"
|
||||||
|
sizing="mediumLargeSizeLargeTitles"
|
||||||
|
background="fluid"
|
||||||
|
cardStyle="gradient-bordered"
|
||||||
|
primaryButtonStyle="radial-glow"
|
||||||
|
secondaryButtonStyle="radial-glow"
|
||||||
|
headingFontWeight="bold"
|
||||||
|
>
|
||||||
|
<ReactLenis root>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarStyleFullscreen
|
||||||
|
navItems={[
|
||||||
|
{ name: "Home", id: "#home" },
|
||||||
|
{ name: "Features", id: "#features" },
|
||||||
|
{ name: "Jobs", id: "#jobs" },
|
||||||
|
{ name: "Companies", id: "#companies" },
|
||||||
|
{ name: "Pricing", id: "#pricing" },
|
||||||
|
{ name: "Reviews", id: "#testimonials" },
|
||||||
|
{ name: "FAQ", id: "#faq" },
|
||||||
|
]}
|
||||||
|
brandName="JobGeorgia"
|
||||||
|
button={{ text: "Get Started", href: "/auth/login" }}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="min-h-screen flex items-center justify-center py-12 px-4 sm:px-6 lg:px-8 bg-gradient-to-br from-background to-background-accent text-foreground">
|
||||||
|
<div className="max-w-md w-full space-y-8 p-10 rounded-xl shadow-2xl bg-card border border-primary-cta/20 text-center">
|
||||||
|
<h2 className="mt-6 text-3xl font-extrabold">
|
||||||
|
Verify your email address
|
||||||
|
</h2>
|
||||||
|
<p className="mt-2 text-sm text-foreground/70">
|
||||||
|
We've sent a verification email to your inbox. Please check your email and click the link to activate your account.
|
||||||
|
</p>
|
||||||
|
<p className="mt-4 text-sm text-foreground/70">
|
||||||
|
Didn't receive the email?{' '}
|
||||||
|
<Link href="#" className="font-medium text-primary-cta hover:text-primary-cta/80">
|
||||||
|
Resend verification email
|
||||||
|
</Link>
|
||||||
|
</p>
|
||||||
|
<div className="mt-6">
|
||||||
|
<Link href="/auth/login" className="inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-primary-cta hover:bg-primary-cta/80 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-cta">
|
||||||
|
Back to Login
|
||||||
|
</Link>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</ReactLenis>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
263
src/app/blog/[slug]/page.tsx
Normal file
263
src/app/blog/[slug]/page.tsx
Normal file
@@ -0,0 +1,263 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import ReactLenis from "lenis/react";
|
||||||
|
import { Metadata } from "next";
|
||||||
|
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
|
||||||
|
import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
|
||||||
|
|
||||||
|
// Mock blog content for dynamic page
|
||||||
|
const BLOG_ARTICLES: Record<string, any> = {
|
||||||
|
"first-post": {
|
||||||
|
title: "Mastering Your Job Search in Georgia", category: "Career Advice", authorName: "Ana Japaridze", date: "July 15, 2024", imageSrc: "http://img.b2bpic.net/free-photo/education-skills-recruitment-word-search_53876-127810.jpg", imageAlt: "Job search strategies", content: `
|
||||||
|
<p>Landing your dream job in Georgia requires a strategic approach. The market is dynamic, with opportunities spanning various sectors from IT to tourism. Here’s how you can stand out:</p>
|
||||||
|
<h2>1. Optimize Your Resume and Profile</h2>
|
||||||
|
<p>Utilize JobGeorgia's AI Resume Builder to create a compelling CV. Pay attention to keywords relevant to your target industry. A strong, keyword-rich profile on our platform increases your visibility to recruiters.</p>
|
||||||
|
<h2>2. Network Effectively</h2>
|
||||||
|
<p>While online applications are crucial, don't underestimate the power of networking. Attend industry events, webinars, and connect with professionals on LinkedIn. Georgian business culture values personal connections.</p>
|
||||||
|
<h2>3. Tailor Your Applications</h2>
|
||||||
|
<p>Generic applications rarely succeed. Use our AI Cover Letter Generator to customize your application for each specific role. Highlight how your skills and experience align with the job description and company values.</p>
|
||||||
|
<h2>4. Prepare for Interviews</h2>
|
||||||
|
<p>Research the company thoroughly and be ready to discuss your experience, problem-solving skills, and career aspirations. Practice common interview questions and prepare insightful questions to ask the interviewer.</p>
|
||||||
|
<p>By following these steps, you'll significantly improve your chances of securing a desirable position in Georgia's competitive job market.</p>
|
||||||
|
`,
|
||||||
|
excerpt: "Unlock the secrets to a successful job hunt with our expert tips tailored for the Georgian market.", keywords: ["job search Georgia", "career advice", "resume optimization", "networking", "interview tips"],
|
||||||
|
},
|
||||||
|
"second-post": {
|
||||||
|
title: "The Rise of Tech Jobs in Tbilisi: What You Need to Know", category: "Industry Insights", authorName: "Davit Gabunia", date: "July 20, 2024", imageSrc: "http://img.b2bpic.net/free-photo/engineer-coding-workstation-solar-panel-manufacturing-plant_482257-125829.jpg", imageAlt: "Tbilisi skyline with tech elements", content: `
|
||||||
|
<p>Tbilisi is rapidly emerging as a regional tech hub, attracting both local talent and international investment. This growth is creating a wealth of opportunities for skilled professionals.</p>
|
||||||
|
<h2>Booming Sectors</h2>
|
||||||
|
<p>Key areas experiencing significant growth include software development, cybersecurity, fintech, and IT services. Many international companies are establishing branches in Tbilisi, alongside a vibrant startup ecosystem.</p>
|
||||||
|
<h2>In-Demand Skills</h2>
|
||||||
|
<p>Employers are actively seeking candidates proficient in programming languages like Python, JavaScript, and Go. Cloud computing (AWS, Azure, GCP), data science, and AI/ML expertise are also highly valued. Soft skills such as problem-solving, adaptability, and teamwork are equally crucial.</p>
|
||||||
|
<h2>Educational Opportunities</h2>
|
||||||
|
<p>Georgian universities and private academies are increasingly offering specialized tech programs to meet the demand. Continuous learning and upskilling are essential to stay competitive in this fast-evolving landscape.</p>
|
||||||
|
<p>JobGeorgia is committed to connecting tech talent with these exciting opportunities. Explore our listings to find your next challenge in Tbilisi's burgeoning tech scene.</p>
|
||||||
|
`,
|
||||||
|
excerpt: "Explore the booming tech sector in Georgia's capital and discover in-demand skills.", keywords: ["tech jobs Tbilisi", "Georgia tech industry", "software development Georgia", "fintech Tbilisi", "IT jobs Georgia"],
|
||||||
|
},
|
||||||
|
"third-post": {
|
||||||
|
title: "Navigating Remote Work in Georgia: A Guide for Employers and Employees", category: "Company Culture", authorName: "Mariam Davitashvili", date: "July 25, 2024", imageSrc: "http://img.b2bpic.net/free-photo/asian-manager-virtual-meeting-night_482257-124219.jpg", imageAlt: "Remote team collaboration", content: `
|
||||||
|
<p>Remote work has become a permanent fixture in the global landscape, and Georgia is no exception. Both employers and employees need to adapt to new strategies to ensure productivity and engagement.</p>
|
||||||
|
<h2>For Employers</h2>
|
||||||
|
<p>Establishing clear communication channels, investing in reliable collaboration tools, and fostering a culture of trust are paramount. Regular check-ins, performance metrics, and opportunities for virtual team-building can help maintain cohesion and morale.</p>
|
||||||
|
<h2>For Employees</h2>
|
||||||
|
<p>Self-discipline, time management, and setting boundaries between work and personal life are crucial. Create a dedicated workspace, minimize distractions, and proactively communicate with your team and manager. Leverage tools for task management and virtual meetings to stay organized and connected.</p>
|
||||||
|
<p>The Georgian Context</p>
|
||||||
|
<p>Georgia's favorable tax environment for freelancers and digital nomads, combined with a growing digital infrastructure, makes it an attractive location for remote work. JobGeorgia facilitates connections for remote roles, helping businesses find talent and individuals discover flexible opportunities.</p>
|
||||||
|
<p>Embracing remote work effectively can lead to increased flexibility, broader talent pools, and enhanced work-life balance for all involved.</p>
|
||||||
|
`,
|
||||||
|
excerpt: "Best practices and challenges of remote work models in the Georgian business environment.", keywords: ["remote work Georgia", "remote jobs", "employer guide remote work", "employee guide remote work", "digital nomad Georgia"],
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
function getBlogPostBySlug(slug: string) {
|
||||||
|
return BLOG_ARTICLES[slug];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Function to get all slugs for static generation
|
||||||
|
export async function generateStaticParams() {
|
||||||
|
return Object.keys(BLOG_ARTICLES).map(slug => ({
|
||||||
|
slug
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Dynamically generated metadata based on the slug
|
||||||
|
export async function generateMetadata({ params }: { params: { slug: string } }): Promise<Metadata> {
|
||||||
|
const post = getBlogPostBySlug(params.slug);
|
||||||
|
|
||||||
|
if (!post) {
|
||||||
|
return {
|
||||||
|
title: "Article Not Found", description: "The requested blog article could not be found."};
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
title: `${post.title} | JobGeorgia Blog`,
|
||||||
|
description: post.excerpt,
|
||||||
|
keywords: post.keywords,
|
||||||
|
openGraph: {
|
||||||
|
title: `${post.title} | JobGeorgia Blog`,
|
||||||
|
description: post.excerpt,
|
||||||
|
url: `https://www.jobgeorgia.ge/blog/${params.slug}`,
|
||||||
|
siteName: "JobGeorgia", images: [{
|
||||||
|
url: post.imageSrc,
|
||||||
|
alt: post.imageAlt
|
||||||
|
}],
|
||||||
|
type: "article"},
|
||||||
|
twitter: {
|
||||||
|
card: "summary_large_image", title: `${post.title} | JobGeorgia Blog`,
|
||||||
|
description: post.excerpt,
|
||||||
|
images: [post.imageSrc],
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function BlogArticlePage({ params }: { params: { slug: string } }) {
|
||||||
|
const post = getBlogPostBySlug(params.slug);
|
||||||
|
|
||||||
|
if (!post) {
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="elastic-effect"
|
||||||
|
defaultTextAnimation="entrance-slide"
|
||||||
|
borderRadius="soft"
|
||||||
|
contentWidth="medium"
|
||||||
|
sizing="mediumLargeSizeLargeTitles"
|
||||||
|
background="fluid"
|
||||||
|
cardStyle="gradient-bordered"
|
||||||
|
primaryButtonStyle="radial-glow"
|
||||||
|
secondaryButtonStyle="radial-glow"
|
||||||
|
headingFontWeight="bold"
|
||||||
|
>
|
||||||
|
<ReactLenis root>
|
||||||
|
<div className="flex min-h-screen flex-col items-center justify-center p-8 text-center">
|
||||||
|
<h1 className="text-4xl font-bold mb-4">Article Not Found</h1>
|
||||||
|
<p className="text-lg">The blog post you are looking for does not exist.</p>
|
||||||
|
<a href="/blog" className="mt-6 text-primary-cta hover:underline">Go back to blog list</a>
|
||||||
|
</div>
|
||||||
|
</ReactLenis>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="elastic-effect"
|
||||||
|
defaultTextAnimation="entrance-slide"
|
||||||
|
borderRadius="soft"
|
||||||
|
contentWidth="medium"
|
||||||
|
sizing="mediumLargeSizeLargeTitles"
|
||||||
|
background="fluid"
|
||||||
|
cardStyle="gradient-bordered"
|
||||||
|
primaryButtonStyle="radial-glow"
|
||||||
|
secondaryButtonStyle="radial-glow"
|
||||||
|
headingFontWeight="bold"
|
||||||
|
>
|
||||||
|
<ReactLenis root>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarStyleFullscreen
|
||||||
|
navItems={[
|
||||||
|
{
|
||||||
|
name: "Home", id: "#home"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Features", id: "#features"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Jobs", id: "#jobs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Companies", id: "#companies"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Pricing", id: "#pricing"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Reviews", id: "#testimonials"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "FAQ", id: "#faq"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Blog", id: "/blog"
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
brandName="JobGeorgia"
|
||||||
|
button={{
|
||||||
|
text: "Get Started", href: "#pricing"
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="container mx-auto px-4 py-8 max-w-4xl">
|
||||||
|
<div className="relative w-full h-80 rounded-lg overflow-hidden mb-8">
|
||||||
|
<img src={post.imageSrc} alt={post.imageAlt} className="w-full h-full object-cover" />
|
||||||
|
</div>
|
||||||
|
<p className="text-sm text-gray-500 mb-2">{post.category} • {post.date}</p>
|
||||||
|
<h1 className="text-4xl font-bold mb-4 text-foreground">{post.title}</h1>
|
||||||
|
<p className="text-lg text-gray-700 mb-6">By {post.authorName}</p>
|
||||||
|
|
||||||
|
<div className="prose prose-lg dark:prose-invert max-w-none text-foreground"
|
||||||
|
dangerouslySetInnerHTML={{ __html: post.content }}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<div className="mt-12 text-center">
|
||||||
|
<a href="/blog" className="inline-flex items-center px-6 py-3 border border-transparent text-base font-medium rounded-md shadow-sm text-white bg-primary-cta hover:opacity-90">
|
||||||
|
← Back to all posts
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="footer" data-section="footer">
|
||||||
|
<FooterBaseReveal
|
||||||
|
logoText="JobGeorgia"
|
||||||
|
columns={[
|
||||||
|
{
|
||||||
|
title: "Platform", items: [
|
||||||
|
{
|
||||||
|
label: "Job Seekers", href: "#features"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Employers", href: "#features"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Recruiters", href: "#features"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "AI Features", href: "#features"
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Resources", items: [
|
||||||
|
{
|
||||||
|
label: "Featured Jobs", href: "#jobs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Featured Companies", href: "#companies"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Pricing Plans", href: "#pricing"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "FAQ", href: "#faq"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Blog", href: "/blog"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Company", items: [
|
||||||
|
{
|
||||||
|
label: "About Us", href: "#"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Contact Us", href: "#"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Careers", href: "#"
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Legal", items: [
|
||||||
|
{
|
||||||
|
label: "Privacy Policy", href: "#"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Terms of Service", href: "#"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Cookie Policy", href: "#"
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
copyrightText="© 2024 JobGeorgia. All rights reserved."
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</ReactLenis>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
167
src/app/blog/page.tsx
Normal file
167
src/app/blog/page.tsx
Normal file
@@ -0,0 +1,167 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import ReactLenis from "lenis/react";
|
||||||
|
import { Metadata } from "next";
|
||||||
|
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
|
||||||
|
import BlogCardOne from '@/components/sections/blog/BlogCardOne';
|
||||||
|
import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
|
||||||
|
|
||||||
|
export const metadata: Metadata = {
|
||||||
|
title: "JobGeorgia Blog | Insights & Career Advice", description: "Explore the latest articles, career advice, industry insights, and company culture guides from JobGeorgia. Stay informed on the Georgian job market.", keywords: ["JobGeorgia blog", "career advice Georgia", "job market insights", "recruitment tips Georgia", "tech jobs Tbilisi blog"],
|
||||||
|
openGraph: {
|
||||||
|
title: "JobGeorgia Blog | Insights & Career Advice", description: "Explore the latest articles, career advice, industry insights, and company culture guides from JobGeorgia.", url: "https://www.jobgeorgia.ge/blog", siteName: "JobGeorgia", images: [{
|
||||||
|
url: "http://img.b2bpic.net/free-photo/education-skills-recruitment-word-search_53876-127810.jpg", alt: "JobGeorgia Blog Banner"
|
||||||
|
}],
|
||||||
|
type: "website"},
|
||||||
|
twitter: {
|
||||||
|
card: "summary_large_image", title: "JobGeorgia Blog | Insights & Career Advice", description: "Stay informed on the Georgian job market with JobGeorgia's blog.", images: ["http://img.b2bpic.net/free-photo/education-skills-recruitment-word-search_53876-127810.jpg"],
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
const MOCK_BLOG_POSTS = [
|
||||||
|
{
|
||||||
|
id: "first-post", category: "Career Advice", title: "Mastering Your Job Search in Georgia", excerpt: "Unlock the secrets to a successful job hunt with our expert tips tailored for the Georgian market.", imageSrc: "http://img.b2bpic.net/free-photo/education-skills-recruitment-word-search_53876-127810.jpg", imageAlt: "Job search strategies", authorName: "Ana Japaridze", authorAvatar: "http://img.b2bpic.net/free-photo/portrait-serious-man-looking-laptop-screen-caf_23-2147891949.jpg", date: "July 15, 2024"},
|
||||||
|
{
|
||||||
|
id: "second-post", category: "Industry Insights", title: "The Rise of Tech Jobs in Tbilisi: What You Need to Know", excerpt: "Explore the booming tech sector in Georgia's capital and discover in-demand skills.", imageSrc: "http://img.b2bpic.net/free-photo/engineer-coding-workstation-solar-panel-manufacturing-plant_482257-125829.jpg", imageAlt: "Tbilisi skyline with tech elements", authorName: "Davit Gabunia", authorAvatar: "http://img.b2bpic.net/free-photo/looking-camera-young-pretty-female-office-worker-sitting-desk-with-office-tools-putting-hand-chin-isolated-olive-background_141793-63178.jpg", date: "July 20, 2024"},
|
||||||
|
{
|
||||||
|
id: "third-post", category: "Company Culture", title: "Navigating Remote Work in Georgia: A Guide for Employers and Employees", excerpt: "Best practices and challenges of remote work models in the Georgian business environment.", imageSrc: "http://img.b2bpic.net/free-photo/asian-manager-virtual-meeting-night_482257-124219.jpg", imageAlt: "Remote team collaboration", authorName: "Mariam Davitashvili", authorAvatar: "http://img.b2bpic.net/free-photo/side-view-man-using-tablet-outdoors_23-2150747672.jpg", date: "July 25, 2024"},
|
||||||
|
];
|
||||||
|
|
||||||
|
export default function BlogListPage() {
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="elastic-effect"
|
||||||
|
defaultTextAnimation="entrance-slide"
|
||||||
|
borderRadius="soft"
|
||||||
|
contentWidth="medium"
|
||||||
|
sizing="mediumLargeSizeLargeTitles"
|
||||||
|
background="fluid"
|
||||||
|
cardStyle="gradient-bordered"
|
||||||
|
primaryButtonStyle="radial-glow"
|
||||||
|
secondaryButtonStyle="radial-glow"
|
||||||
|
headingFontWeight="bold"
|
||||||
|
>
|
||||||
|
<ReactLenis root>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarStyleFullscreen
|
||||||
|
navItems={[
|
||||||
|
{
|
||||||
|
name: "Home", id: "#home"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Features", id: "#features"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Jobs", id: "#jobs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Companies", id: "#companies"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Pricing", id: "#pricing"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Reviews", id: "#testimonials"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "FAQ", id: "#faq"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Blog", id: "/blog"
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
brandName="JobGeorgia"
|
||||||
|
button={{
|
||||||
|
text: "Get Started", href: "#pricing"
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="blog-list" data-section="blog-list">
|
||||||
|
<BlogCardOne
|
||||||
|
title="JobGeorgia Blog"
|
||||||
|
description="Stay updated with the latest insights, career advice, and industry trends to navigate the Georgian job market effectively."
|
||||||
|
blogs={MOCK_BLOG_POSTS.map(post => ({
|
||||||
|
...post,
|
||||||
|
onBlogClick: () => window.location.href = `/blog/${post.id}`,
|
||||||
|
}))}
|
||||||
|
animationType="slide-up"
|
||||||
|
textboxLayout="default"
|
||||||
|
useInvertedBackground={true}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="footer" data-section="footer">
|
||||||
|
<FooterBaseReveal
|
||||||
|
logoText="JobGeorgia"
|
||||||
|
columns={[
|
||||||
|
{
|
||||||
|
title: "Platform", items: [
|
||||||
|
{
|
||||||
|
label: "Job Seekers", href: "#features"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Employers", href: "#features"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Recruiters", href: "#features"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "AI Features", href: "#features"
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Resources", items: [
|
||||||
|
{
|
||||||
|
label: "Featured Jobs", href: "#jobs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Featured Companies", href: "#companies"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Pricing Plans", href: "#pricing"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "FAQ", href: "#faq"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Blog", href: "/blog"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Company", items: [
|
||||||
|
{
|
||||||
|
label: "About Us", href: "#"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Contact Us", href: "#"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Careers", href: "#"
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Legal", items: [
|
||||||
|
{
|
||||||
|
label: "Privacy Policy", href: "#"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Terms of Service", href: "#"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Cookie Policy", href: "#"
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
copyrightText="© 2024 JobGeorgia. All rights reserved."
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</ReactLenis>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
61
src/app/company-details/page.tsx
Normal file
61
src/app/company-details/page.tsx
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import ReactLenis from "lenis/react";
|
||||||
|
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
|
||||||
|
import HeroCarouselLogo from '@/components/sections/hero/heroCarouselLogo/HeroCarouselLogo';
|
||||||
|
|
||||||
|
export default function CompanyDetailsPage() {
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="elastic-effect"
|
||||||
|
defaultTextAnimation="entrance-slide"
|
||||||
|
borderRadius="soft"
|
||||||
|
contentWidth="medium"
|
||||||
|
sizing="mediumLargeSizeLargeTitles"
|
||||||
|
background="fluid"
|
||||||
|
cardStyle="gradient-bordered"
|
||||||
|
primaryButtonStyle="radial-glow"
|
||||||
|
secondaryButtonStyle="radial-glow"
|
||||||
|
headingFontWeight="bold"
|
||||||
|
>
|
||||||
|
<ReactLenis root>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarStyleFullscreen
|
||||||
|
navItems={[
|
||||||
|
{ name: "Home", id: "#home" },
|
||||||
|
{ name: "Features", id: "#features" },
|
||||||
|
{ name: "Featured Jobs", id: "#jobs" },
|
||||||
|
{ name: "Company Details", id: "/company-details" },
|
||||||
|
{ name: "Company Reviews", id: "/company-reviews" },
|
||||||
|
{ name: "Company Jobs", id: "/company-jobs" },
|
||||||
|
{ name: "Company Analytics", id: "/company-analytics" },
|
||||||
|
{ name: "Pricing", id: "#pricing" },
|
||||||
|
{ name: "Testimonials", id: "#testimonials" },
|
||||||
|
{ name: "FAQ", id: "#faq" },
|
||||||
|
]}
|
||||||
|
brandName="JobGeorgia"
|
||||||
|
button={{ text: "Get Started", href: "#pricing" }}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="company-details-hero" data-section="company-details-hero">
|
||||||
|
<HeroCarouselLogo
|
||||||
|
logoText="Company Details"
|
||||||
|
description="Explore in-depth information about this company, including its mission, vision, and team culture."
|
||||||
|
buttons={[
|
||||||
|
{ text: "View Jobs", href: "/company-jobs" },
|
||||||
|
{ text: "Read Reviews", href: "/company-reviews" },
|
||||||
|
]}
|
||||||
|
slides={[
|
||||||
|
{ imageSrc: "http://img.b2bpic.net/free-photo/diverse-colleagues-discussing-work-office_1262-18150.jpg", imageAlt: "Company team working" },
|
||||||
|
{ imageSrc: "http://img.b2bpic.net/free-photo/business-people-office-working-together_23-2148906649.jpg", imageAlt: "Modern office interior" },
|
||||||
|
]}
|
||||||
|
autoplayDelay={5000}
|
||||||
|
showDimOverlay={true}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</ReactLenis>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
61
src/app/company-reviews/page.tsx
Normal file
61
src/app/company-reviews/page.tsx
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import ReactLenis from "lenis/react";
|
||||||
|
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
|
||||||
|
import HeroCarouselLogo from '@/components/sections/hero/heroCarouselLogo/HeroCarouselLogo';
|
||||||
|
|
||||||
|
export default function CompanyReviewsPage() {
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="elastic-effect"
|
||||||
|
defaultTextAnimation="entrance-slide"
|
||||||
|
borderRadius="soft"
|
||||||
|
contentWidth="medium"
|
||||||
|
sizing="mediumLargeSizeLargeTitles"
|
||||||
|
background="fluid"
|
||||||
|
cardStyle="gradient-bordered"
|
||||||
|
primaryButtonStyle="radial-glow"
|
||||||
|
secondaryButtonStyle="radial-glow"
|
||||||
|
headingFontWeight="bold"
|
||||||
|
>
|
||||||
|
<ReactLenis root>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarStyleFullscreen
|
||||||
|
navItems={[
|
||||||
|
{ name: "Home", id: "#home" },
|
||||||
|
{ name: "Features", id: "#features" },
|
||||||
|
{ name: "Featured Jobs", id: "#jobs" },
|
||||||
|
{ name: "Company Details", id: "/company-details" },
|
||||||
|
{ name: "Company Reviews", id: "/company-reviews" },
|
||||||
|
{ name: "Company Jobs", id: "/company-jobs" },
|
||||||
|
{ name: "Company Analytics", id: "/company-analytics" },
|
||||||
|
{ name: "Pricing", id: "#pricing" },
|
||||||
|
{ name: "Testimonials", id: "#testimonials" },
|
||||||
|
{ name: "FAQ", id: "#faq" },
|
||||||
|
]}
|
||||||
|
brandName="JobGeorgia"
|
||||||
|
button={{ text: "Get Started", href: "#pricing" }}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="company-reviews-hero" data-section="company-reviews-hero">
|
||||||
|
<HeroCarouselLogo
|
||||||
|
logoText="Company Reviews"
|
||||||
|
description="Read authentic reviews from current and former employees to get an inside look at the company culture and work environment."
|
||||||
|
buttons={[
|
||||||
|
{ text: "See Company Details", href: "/company-details" },
|
||||||
|
{ text: "View Jobs", href: "/company-jobs" },
|
||||||
|
]}
|
||||||
|
slides={[
|
||||||
|
{ imageSrc: "http://img.b2bpic.net/free-photo/social-media-concept-still-life_23-2149831960.jpg", imageAlt: "Reviews and ratings" },
|
||||||
|
{ imageSrc: "http://img.b2bpic.net/free-photo/female-journalist-writing-notes-notepad_23-2148170942.jpg", imageAlt: "Person writing a review" },
|
||||||
|
]}
|
||||||
|
autoplayDelay={5000}
|
||||||
|
showDimOverlay={true}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</ReactLenis>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
88
src/app/dashboard/page.tsx
Normal file
88
src/app/dashboard/page.tsx
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import ReactLenis from "lenis/react";
|
||||||
|
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
|
||||||
|
import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
|
||||||
|
|
||||||
|
export default function DashboardPage() {
|
||||||
|
const navItems = [
|
||||||
|
{ name: "Home", id: "#home" },
|
||||||
|
{ name: "Features", id: "#features" },
|
||||||
|
{ name: "Jobs", id: "#jobs" },
|
||||||
|
{ name: "Companies", id: "#companies" },
|
||||||
|
{ name: "Pricing", id: "#pricing" },
|
||||||
|
{ name: "Reviews", id: "#testimonials" },
|
||||||
|
{ name: "FAQ", id: "#faq" },
|
||||||
|
{ name: "Dashboard", id: "/dashboard" }
|
||||||
|
];
|
||||||
|
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="elastic-effect"
|
||||||
|
defaultTextAnimation="entrance-slide"
|
||||||
|
borderRadius="soft"
|
||||||
|
contentWidth="medium"
|
||||||
|
sizing="mediumLargeSizeLargeTitles"
|
||||||
|
background="fluid"
|
||||||
|
cardStyle="gradient-bordered"
|
||||||
|
primaryButtonStyle="radial-glow"
|
||||||
|
secondaryButtonStyle="radial-glow"
|
||||||
|
headingFontWeight="bold"
|
||||||
|
>
|
||||||
|
<ReactLenis root>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarStyleFullscreen
|
||||||
|
navItems={navItems}
|
||||||
|
brandName="JobGeorgia"
|
||||||
|
button={{ text: "Get Started", href: "#pricing" }}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="min-h-screen pt-24 pb-16 flex flex-col items-center justify-center text-center px-4">
|
||||||
|
<h1 className="text-5xl font-bold mb-4">Job Seeker Dashboard</h1>
|
||||||
|
<p className="text-lg mb-8 max-w-2xl text-gray-400">Welcome to your personalized dashboard. Manage your profile, applications, and discover new opportunities.</p>
|
||||||
|
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 max-w-4xl w-full">
|
||||||
|
<a href="/dashboard/profile/create" className="p-6 border rounded-lg shadow-lg hover:shadow-xl transition-shadow duration-300">
|
||||||
|
<h2 className="text-2xl font-semibold">Create/Update Profile</h2>
|
||||||
|
<p className="text-sm text-gray-500">Build your professional profile.</p>
|
||||||
|
</a>
|
||||||
|
<a href="/dashboard/resume" className="p-6 border rounded-lg shadow-lg hover:shadow-xl transition-shadow duration-300">
|
||||||
|
<h2 className="text-2xl font-semibold">Resume Builder</h2>
|
||||||
|
<p className="text-sm text-gray-500">Upload or build your resume.</p>
|
||||||
|
</a>
|
||||||
|
<a href="/dashboard/saved-jobs" className="p-6 border rounded-lg shadow-lg hover:shadow-xl transition-shadow duration-300">
|
||||||
|
<h2 className="text-2xl font-semibold">Saved Jobs</h2>
|
||||||
|
<p className="text-sm text-gray-500">View jobs you've bookmarked.</p>
|
||||||
|
</a>
|
||||||
|
<a href="/dashboard/applied-jobs" className="p-6 border rounded-lg shadow-lg hover:shadow-xl transition-shadow duration-300">
|
||||||
|
<h2 className="text-2xl font-semibold">Applied Jobs</h2>
|
||||||
|
<p className="text-sm text-gray-500">Track your job applications.</p>
|
||||||
|
</a>
|
||||||
|
<a href="/dashboard/interviews" className="p-6 border rounded-lg shadow-lg hover:shadow-xl transition-shadow duration-300">
|
||||||
|
<h2 className="text-2xl font-semibold">Interview Invitations</h2>
|
||||||
|
<p className="text-sm text-gray-500">See your upcoming interviews.</p>
|
||||||
|
</a>
|
||||||
|
<a href="/dashboard/recommended-jobs" className="p-6 border rounded-lg shadow-lg hover:shadow-xl transition-shadow duration-300">
|
||||||
|
<h2 className="text-2xl font-semibold">Recommended Jobs</h2>
|
||||||
|
<p className="text-sm text-gray-500">Explore jobs tailored for you.</p>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="footer" data-section="footer">
|
||||||
|
<FooterBaseReveal
|
||||||
|
logoText="JobGeorgia"
|
||||||
|
columns={[
|
||||||
|
{ title: "Platform", items: [{ label: "Job Seekers", href: "#features" }, { label: "Employers", href: "#features" }, { label: "Recruiters", href: "#features" }, { label: "AI Features", href: "#features" }] },
|
||||||
|
{ title: "Resources", items: [{ label: "Featured Jobs", href: "#jobs" }, { label: "Featured Companies", href: "#companies" }, { label: "Pricing Plans", href: "#pricing" }, { label: "FAQ", href: "#faq" }] },
|
||||||
|
{ title: "Company", items: [{ label: "About Us", href: "#" }, { label: "Contact Us", href: "#" }, { label: "Blog", href: "#" }, { label: "Careers", href: "#" }] },
|
||||||
|
{ title: "Legal", items: [{ label: "Privacy Policy", href: "#" }, { label: "Terms of Service", href: "#" }, { label: "Cookie Policy", href: "#" }] },
|
||||||
|
]}
|
||||||
|
copyrightText="© 2024 JobGeorgia. All rights reserved."
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</ReactLenis>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
68
src/app/dashboard/profile/create/page.tsx
Normal file
68
src/app/dashboard/profile/create/page.tsx
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import ReactLenis from "lenis/react";
|
||||||
|
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
|
||||||
|
import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
|
||||||
|
|
||||||
|
export default function ProfileCreatePage() {
|
||||||
|
const navItems = [
|
||||||
|
{ name: "Home", id: "#home" },
|
||||||
|
{ name: "Features", id: "#features" },
|
||||||
|
{ name: "Jobs", id: "#jobs" },
|
||||||
|
{ name: "Companies", id: "#companies" },
|
||||||
|
{ name: "Pricing", id: "#pricing" },
|
||||||
|
{ name: "Reviews", id: "#testimonials" },
|
||||||
|
{ name: "FAQ", id: "#faq" },
|
||||||
|
{ name: "Dashboard", id: "/dashboard" }
|
||||||
|
];
|
||||||
|
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="elastic-effect"
|
||||||
|
defaultTextAnimation="entrance-slide"
|
||||||
|
borderRadius="soft"
|
||||||
|
contentWidth="medium"
|
||||||
|
sizing="mediumLargeSizeLargeTitles"
|
||||||
|
background="fluid"
|
||||||
|
cardStyle="gradient-bordered"
|
||||||
|
primaryButtonStyle="radial-glow"
|
||||||
|
secondaryButtonStyle="radial-glow"
|
||||||
|
headingFontWeight="bold"
|
||||||
|
>
|
||||||
|
<ReactLenis root>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarStyleFullscreen
|
||||||
|
navItems={navItems}
|
||||||
|
brandName="JobGeorgia"
|
||||||
|
button={{ text: "Get Started", href: "#pricing" }}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="min-h-screen pt-24 pb-16 flex flex-col items-center justify-center text-center px-4">
|
||||||
|
<h1 className="text-5xl font-bold mb-4">Create Your Profile</h1>
|
||||||
|
<p className="text-lg mb-8 max-w-2xl text-gray-400">Start building your professional profile to showcase your skills and experience to potential employers.</p>
|
||||||
|
{/* Placeholder for Profile Creation Form */}
|
||||||
|
<div className="w-full max-w-2xl p-8 border rounded-lg shadow-lg bg-card text-foreground">
|
||||||
|
<p className="text-gray-500">Profile creation form will go here.</p>
|
||||||
|
<p className="text-gray-500 mt-2">Fields might include: Personal Info, Education, Experience, Skills, etc.</p>
|
||||||
|
<button className="mt-6 px-6 py-3 bg-primary-cta text-primary-cta-foreground rounded-md hover:opacity-90 transition-opacity">Save Profile</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="footer" data-section="footer">
|
||||||
|
<FooterBaseReveal
|
||||||
|
logoText="JobGeorgia"
|
||||||
|
columns={[
|
||||||
|
{ title: "Platform", items: [{ label: "Job Seekers", href: "#features" }, { label: "Employers", href: "#features" }, { label: "Recruiters", href: "#features" }, { label: "AI Features", href: "#features" }] },
|
||||||
|
{ title: "Resources", items: [{ label: "Featured Jobs", href: "#jobs" }, { label: "Featured Companies", href: "#companies" }, { label: "Pricing Plans", href: "#pricing" }, { label: "FAQ", href: "#faq" }] },
|
||||||
|
{ title: "Company", items: [{ label: "About Us", href: "#" }, { label: "Contact Us", href: "#" }, { label: "Blog", href: "#" }, { label: "Careers", href: "#" }] },
|
||||||
|
{ title: "Legal", items: [{ label: "Privacy Policy", href: "#" }, { label: "Terms of Service", href: "#" }, { label: "Cookie Policy", href: "#" }] },
|
||||||
|
]}
|
||||||
|
copyrightText="© 2024 JobGeorgia. All rights reserved."
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</ReactLenis>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
68
src/app/dashboard/resume/page.tsx
Normal file
68
src/app/dashboard/resume/page.tsx
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import ReactLenis from "lenis/react";
|
||||||
|
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
|
||||||
|
import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
|
||||||
|
|
||||||
|
export default function ResumePage() {
|
||||||
|
const navItems = [
|
||||||
|
{ name: "Home", id: "#home" },
|
||||||
|
{ name: "Features", id: "#features" },
|
||||||
|
{ name: "Jobs", id: "#jobs" },
|
||||||
|
{ name: "Companies", id: "#companies" },
|
||||||
|
{ name: "Pricing", id: "#pricing" },
|
||||||
|
{ name: "Reviews", id: "#testimonials" },
|
||||||
|
{ name: "FAQ", id: "#faq" },
|
||||||
|
{ name: "Dashboard", id: "/dashboard" }
|
||||||
|
];
|
||||||
|
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="elastic-effect"
|
||||||
|
defaultTextAnimation="entrance-slide"
|
||||||
|
borderRadius="soft"
|
||||||
|
contentWidth="medium"
|
||||||
|
sizing="mediumLargeSizeLargeTitles"
|
||||||
|
background="fluid"
|
||||||
|
cardStyle="gradient-bordered"
|
||||||
|
primaryButtonStyle="radial-glow"
|
||||||
|
secondaryButtonStyle="radial-glow"
|
||||||
|
headingFontWeight="bold"
|
||||||
|
>
|
||||||
|
<ReactLenis root>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarStyleFullscreen
|
||||||
|
navItems={navItems}
|
||||||
|
brandName="JobGeorgia"
|
||||||
|
button={{ text: "Get Started", href: "#pricing" }}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="min-h-screen pt-24 pb-16 flex flex-col items-center justify-center text-center px-4">
|
||||||
|
<h1 className="text-5xl font-bold mb-4">Resume Builder & Upload</h1>
|
||||||
|
<p className="text-lg mb-8 max-w-2xl text-gray-400">Upload your existing resume or use our AI-powered builder to create a new one.</p>
|
||||||
|
{/* Placeholder for Resume features */}
|
||||||
|
<div className="w-full max-w-2xl p-8 border rounded-lg shadow-lg bg-card text-foreground">
|
||||||
|
<p className="text-gray-500">Resume upload and builder tools will be available here.</p>
|
||||||
|
<button className="mt-6 px-6 py-3 bg-primary-cta text-primary-cta-foreground rounded-md hover:opacity-90 transition-opacity">Upload Resume</button>
|
||||||
|
<button className="mt-4 ml-4 px-6 py-3 bg-secondary-cta text-secondary-cta-foreground rounded-md hover:opacity-90 transition-opacity">Build New Resume</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="footer" data-section="footer">
|
||||||
|
<FooterBaseReveal
|
||||||
|
logoText="JobGeorgia"
|
||||||
|
columns={[
|
||||||
|
{ title: "Platform", items: [{ label: "Job Seekers", href: "#features" }, { label: "Employers", href: "#features" }, { label: "Recruiters", href: "#features" }, { label: "AI Features", href: "#features" }] },
|
||||||
|
{ title: "Resources", items: [{ label: "Featured Jobs", href: "#jobs" }, { label: "Featured Companies", href: "#companies" }, { label: "Pricing Plans", href: "#pricing" }, { label: "FAQ", href: "#faq" }] },
|
||||||
|
{ title: "Company", items: [{ label: "About Us", href: "#" }, { label: "Contact Us", href: "#" }, { label: "Blog", href: "#" }, { label: "Careers", href: "#" }] },
|
||||||
|
{ title: "Legal", items: [{ label: "Privacy Policy", href: "#" }, { label: "Terms of Service", href: "#" }, { label: "Cookie Policy", href: "#" }] },
|
||||||
|
]}
|
||||||
|
copyrightText="© 2024 JobGeorgia. All rights reserved."
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</ReactLenis>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
103
src/app/employer/create-job/page.tsx
Normal file
103
src/app/employer/create-job/page.tsx
Normal file
@@ -0,0 +1,103 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import ReactLenis from "lenis/react";
|
||||||
|
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
|
||||||
|
import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
|
||||||
|
|
||||||
|
export default function CreateJobPage() {
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="elastic-effect"
|
||||||
|
defaultTextAnimation="entrance-slide"
|
||||||
|
borderRadius="soft"
|
||||||
|
contentWidth="medium"
|
||||||
|
sizing="mediumLargeSizeLargeTitles"
|
||||||
|
background="fluid"
|
||||||
|
cardStyle="gradient-bordered"
|
||||||
|
primaryButtonStyle="radial-glow"
|
||||||
|
secondaryButtonStyle="radial-glow"
|
||||||
|
headingFontWeight="bold"
|
||||||
|
>
|
||||||
|
<ReactLenis root>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarStyleFullscreen
|
||||||
|
navItems={[
|
||||||
|
{ name: "Home", id: "/" },
|
||||||
|
{ name: "Features", id: "/#features" },
|
||||||
|
{ name: "Jobs", id: "/#jobs" },
|
||||||
|
{ name: "Companies", id: "/#companies" },
|
||||||
|
{ name: "Pricing", id: "/#pricing" },
|
||||||
|
{ name: "Create Job", id: "/employer/create-job" },
|
||||||
|
{ name: "Manage Jobs", id: "/employer/manage-jobs" },
|
||||||
|
{ name: "Reviews", id: "/#testimonials" },
|
||||||
|
{ name: "FAQ", id: "/#faq" },
|
||||||
|
]}
|
||||||
|
brandName="JobGeorgia"
|
||||||
|
button={{ text: "Get Started", href: "/#pricing" }}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<main className="min-h-screen py-20 flex flex-col items-center justify-center">
|
||||||
|
<h1 className="text-4xl font-bold text-foreground">Employer: Create Job</h1>
|
||||||
|
<p className="text-lg text-foreground mt-4">This is the Create Job page for employers.</p>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<div id="footer" data-section="footer">
|
||||||
|
<FooterBaseReveal
|
||||||
|
logoText="JobGeorgia"
|
||||||
|
columns={[
|
||||||
|
{
|
||||||
|
title: "Platform", items: [
|
||||||
|
{
|
||||||
|
label: "Job Seekers", href: "/#features"},
|
||||||
|
{
|
||||||
|
label: "Employers", href: "/#features"},
|
||||||
|
{
|
||||||
|
label: "Recruiters", href: "/#features"},
|
||||||
|
{
|
||||||
|
label: "AI Features", href: "/#features"},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Resources", items: [
|
||||||
|
{
|
||||||
|
label: "Featured Jobs", href: "/#jobs"},
|
||||||
|
{
|
||||||
|
label: "Featured Companies", href: "/#companies"},
|
||||||
|
{
|
||||||
|
label: "Pricing Plans", href: "/#pricing"},
|
||||||
|
{
|
||||||
|
label: "FAQ", href: "/#faq"},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Company", items: [
|
||||||
|
{
|
||||||
|
label: "About Us", href: "#"},
|
||||||
|
{
|
||||||
|
label: "Contact Us", href: "#"},
|
||||||
|
{
|
||||||
|
label: "Blog", href: "#"},
|
||||||
|
{
|
||||||
|
label: "Careers", href: "#"},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Legal", items: [
|
||||||
|
{
|
||||||
|
label: "Privacy Policy", href: "#"},
|
||||||
|
{
|
||||||
|
label: "Terms of Service", href: "#"},
|
||||||
|
{
|
||||||
|
label: "Cookie Policy", href: "#"},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
copyrightText="© 2024 JobGeorgia. All rights reserved."
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</ReactLenis>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
103
src/app/employer/manage-jobs/page.tsx
Normal file
103
src/app/employer/manage-jobs/page.tsx
Normal file
@@ -0,0 +1,103 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import ReactLenis from "lenis/react";
|
||||||
|
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
|
||||||
|
import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
|
||||||
|
|
||||||
|
export default function ManageJobsPage() {
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="elastic-effect"
|
||||||
|
defaultTextAnimation="entrance-slide"
|
||||||
|
borderRadius="soft"
|
||||||
|
contentWidth="medium"
|
||||||
|
sizing="mediumLargeSizeLargeTitles"
|
||||||
|
background="fluid"
|
||||||
|
cardStyle="gradient-bordered"
|
||||||
|
primaryButtonStyle="radial-glow"
|
||||||
|
secondaryButtonStyle="radial-glow"
|
||||||
|
headingFontWeight="bold"
|
||||||
|
>
|
||||||
|
<ReactLenis root>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarStyleFullscreen
|
||||||
|
navItems={[
|
||||||
|
{ name: "Home", id: "/" },
|
||||||
|
{ name: "Features", id: "/#features" },
|
||||||
|
{ name: "Jobs", id: "/#jobs" },
|
||||||
|
{ name: "Companies", id: "/#companies" },
|
||||||
|
{ name: "Pricing", id: "/#pricing" },
|
||||||
|
{ name: "Create Job", id: "/employer/create-job" },
|
||||||
|
{ name: "Manage Jobs", id: "/employer/manage-jobs" },
|
||||||
|
{ name: "Reviews", id: "/#testimonials" },
|
||||||
|
{ name: "FAQ", id: "/#faq" },
|
||||||
|
]}
|
||||||
|
brandName="JobGeorgia"
|
||||||
|
button={{ text: "Get Started", href: "/#pricing" }}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<main className="min-h-screen py-20 flex flex-col items-center justify-center">
|
||||||
|
<h1 className="text-4xl font-bold text-foreground">Employer: Manage Jobs</h1>
|
||||||
|
<p className="text-lg text-foreground mt-4">This is the Manage Jobs page for employers.</p>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<div id="footer" data-section="footer">
|
||||||
|
<FooterBaseReveal
|
||||||
|
logoText="JobGeorgia"
|
||||||
|
columns={[
|
||||||
|
{
|
||||||
|
title: "Platform", items: [
|
||||||
|
{
|
||||||
|
label: "Job Seekers", href: "/#features"},
|
||||||
|
{
|
||||||
|
label: "Employers", href: "/#features"},
|
||||||
|
{
|
||||||
|
label: "Recruiters", href: "/#features"},
|
||||||
|
{
|
||||||
|
label: "AI Features", href: "/#features"},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Resources", items: [
|
||||||
|
{
|
||||||
|
label: "Featured Jobs", href: "/#jobs"},
|
||||||
|
{
|
||||||
|
label: "Featured Companies", href: "/#companies"},
|
||||||
|
{
|
||||||
|
label: "Pricing Plans", href: "/#pricing"},
|
||||||
|
{
|
||||||
|
label: "FAQ", href: "/#faq"},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Company", items: [
|
||||||
|
{
|
||||||
|
label: "About Us", href: "#"},
|
||||||
|
{
|
||||||
|
label: "Contact Us", href: "#"},
|
||||||
|
{
|
||||||
|
label: "Blog", href: "#"},
|
||||||
|
{
|
||||||
|
label: "Careers", href: "#"},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Legal", items: [
|
||||||
|
{
|
||||||
|
label: "Privacy Policy", href: "#"},
|
||||||
|
{
|
||||||
|
label: "Terms of Service", href: "#"},
|
||||||
|
{
|
||||||
|
label: "Cookie Policy", href: "#"},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
copyrightText="© 2024 JobGeorgia. All rights reserved."
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</ReactLenis>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -11,27 +11,19 @@ import { Open_Sans } from "next/font/google";
|
|||||||
|
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: 'JobGeorgia | SaaS Job Marketplace Platform for Georgia',
|
title: 'JobGeorgia | Fast & SEO Optimized SaaS Job Marketplace for Georgia',
|
||||||
description: 'JobGeorgia is a premier SaaS job marketplace platform connecting job seekers, employers, and recruiters in Georgia with AI-powered job matching, resume analysis, and robust applicant management. Find your dream job or ideal candidate today.',
|
description: 'JobGeorgia is Georgia\'s premier, performance-optimized SaaS job marketplace platform. We connect top talent with leading companies using AI-powered job matching, advanced resume analysis, and robust applicant management for a fast, seamless, and SEO-friendly recruitment experience. Find your dream job or ideal candidate with lightning speed.',
|
||||||
keywords: ["Job Marketplace, SaaS, Georgia, Job Search, Employers, Recruiters, AI, Resume Builder, Career Platform, Online Jobs, Georgian Jobs, Tech Jobs Georgia"],
|
keywords: ["Job Marketplace, SaaS, Georgia, Job Search, Employers, Recruiters, AI, Resume Builder, Career Platform, Online Jobs, Georgian Jobs, Tech Jobs Georgia, Performance Optimization, SEO Optimized, Fast Loading, Image Optimization, Caching Strategy, CDN Setup"],
|
||||||
openGraph: {
|
openGraph: {
|
||||||
"title": "JobGeorgia | SaaS Job Marketplace Platform for Georgia",
|
"title": "JobGeorgia | Fast & SEO Optimized SaaS Job Marketplace for Georgia", "description": "Georgia's premier, performance-optimized platform connecting top talent with leading companies for a fast and seamless recruitment experience.", "url": "https://www.jobgeorgia.ge", "siteName": "JobGeorgia", "images": [
|
||||||
"description": "Your premier platform for connecting top talent with leading companies in Georgia.",
|
|
||||||
"url": "https://www.jobgeorgia.ge",
|
|
||||||
"siteName": "JobGeorgia",
|
|
||||||
"images": [
|
|
||||||
{
|
{
|
||||||
"url": "http://img.b2bpic.net/free-photo/education-skills-recruitment-word-search_53876-127810.jpg",
|
"url": "http://img.b2bpic.net/free-photo/education-skills-recruitment-word-search_53876-127810.jpg", "alt": "JobGeorgia platform dashboard"
|
||||||
"alt": "JobGeorgia platform dashboard"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"type": "website"
|
"type": "website"
|
||||||
},
|
},
|
||||||
twitter: {
|
twitter: {
|
||||||
"card": "summary_large_image",
|
"card": "summary_large_image", "title": "JobGeorgia | Fast & SEO Optimized SaaS Job Marketplace for Georgia", "description": "Find your dream job or ideal candidate with AI-powered tools on JobGeorgia, optimized for speed and visibility.", "images": [
|
||||||
"title": "JobGeorgia | SaaS Job Marketplace Platform for Georgia",
|
|
||||||
"description": "Find your dream job or ideal candidate with AI-powered tools on JobGeorgia.",
|
|
||||||
"images": [
|
|
||||||
"http://img.b2bpic.net/free-photo/education-skills-recruitment-word-search_53876-127810.jpg"
|
"http://img.b2bpic.net/free-photo/education-skills-recruitment-word-search_53876-127810.jpg"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -42,8 +34,7 @@ export const metadata: Metadata = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const openSans = Open_Sans({
|
const openSans = Open_Sans({
|
||||||
variable: "--font-open-sans",
|
variable: "--font-open-sans", subsets: ["latin"],
|
||||||
subsets: ["latin"],
|
|
||||||
});
|
});
|
||||||
|
|
||||||
export default function RootLayout({
|
export default function RootLayout({
|
||||||
|
|||||||
113
src/app/messaging/page.tsx
Normal file
113
src/app/messaging/page.tsx
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import ReactLenis from "lenis/react";
|
||||||
|
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
|
||||||
|
import HeroBillboardDashboard from '@/components/sections/hero/HeroBillboardDashboard';
|
||||||
|
import { MessageSquare, Users, Paperclip, Bell } from "lucide-react";
|
||||||
|
|
||||||
|
export default function MessagingPage() {
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="elastic-effect"
|
||||||
|
defaultTextAnimation="entrance-slide"
|
||||||
|
borderRadius="soft"
|
||||||
|
contentWidth="medium"
|
||||||
|
sizing="mediumLargeSizeLargeTitles"
|
||||||
|
background="fluid"
|
||||||
|
cardStyle="gradient-bordered"
|
||||||
|
primaryButtonStyle="radial-glow"
|
||||||
|
secondaryButtonStyle="radial-glow"
|
||||||
|
headingFontWeight="bold"
|
||||||
|
>
|
||||||
|
<ReactLenis root>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarStyleFullscreen
|
||||||
|
navItems={[
|
||||||
|
{
|
||||||
|
name: "Home", id: "#home"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Features", id: "#features"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Messaging", id: "/messaging"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Jobs", id: "#jobs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Companies", id: "#companies"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Pricing", id: "#pricing"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Reviews", id: "#testimonials"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "FAQ", id: "#faq"
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
brandName="JobGeorgia"
|
||||||
|
button={{
|
||||||
|
text: "Get Started", href: "#pricing"
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="messaging" data-section="messaging">
|
||||||
|
<HeroBillboardDashboard
|
||||||
|
title="Real-time Messaging System"
|
||||||
|
description="Connect instantly with candidates and employers through our secure and intuitive messaging system, supporting real-time chat, file attachments, and notifications."
|
||||||
|
background={{ variant: 'radial-gradient' }}
|
||||||
|
tag="Communication"
|
||||||
|
tagIcon={MessageSquare}
|
||||||
|
tagAnimation="opacity"
|
||||||
|
buttons={[
|
||||||
|
{
|
||||||
|
text: "Start a New Chat", href: "#"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: "View All Conversations", href: "#"
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
buttonAnimation="slide-up"
|
||||||
|
dashboard={{
|
||||||
|
title: "Conversations", stats: [
|
||||||
|
{
|
||||||
|
title: "Unread Messages", values: [12, 12, 12],
|
||||||
|
valueSuffix: "", description: "Across all active chats"},
|
||||||
|
{
|
||||||
|
title: "File Attachments", values: [28, 28, 28],
|
||||||
|
valueSuffix: "", description: "Total files shared"},
|
||||||
|
{
|
||||||
|
title: "New Notifications", values: [5, 5, 5],
|
||||||
|
valueSuffix: "", description: "Recent activities"},
|
||||||
|
],
|
||||||
|
logoIcon: MessageSquare,
|
||||||
|
sidebarItems: [
|
||||||
|
{ icon: Users, active: true },
|
||||||
|
{ icon: MessageSquare },
|
||||||
|
{ icon: Paperclip },
|
||||||
|
{ icon: Bell },
|
||||||
|
],
|
||||||
|
searchPlaceholder: "Search conversations", buttons: [
|
||||||
|
{ text: "New Message", href: "#" },
|
||||||
|
{ text: "Filters", href: "#" },
|
||||||
|
],
|
||||||
|
chartTitle: "Daily Message Activity", chartData: [
|
||||||
|
{ value: 120 }, { value: 150 }, { value: 90 }, { value: 200 }, { value: 180 }, { value: 250 }, { value: 130 }
|
||||||
|
],
|
||||||
|
listItems: [
|
||||||
|
{ icon: Users, title: "Sarah Johnson - Interview Request", status: "10:30 AM" },
|
||||||
|
{ icon: MessageSquare, title: "Employer Support - Urgent", status: "Yesterday" },
|
||||||
|
{ icon: Paperclip, title: "CV.pdf sent to Tech Corp", status: "2 days ago" },
|
||||||
|
],
|
||||||
|
listTitle: "Recent Activities", imageSrc: "http://img.b2bpic.net/free-photo/social-network-digital-device-interface-chat-bubble_53876-127914.jpg", imageAlt: "Messaging system dashboard interface"}}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</ReactLenis>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -251,6 +251,8 @@ export default function LandingPage() {
|
|||||||
id: "q3", title: "Is my data and privacy secure on JobGeorgia?", content: "Absolutely. We implement robust security measures including JWT, Role-Based Access Control, password hashing, and advanced protections against common web vulnerabilities to keep your data safe."},
|
id: "q3", title: "Is my data and privacy secure on JobGeorgia?", content: "Absolutely. We implement robust security measures including JWT, Role-Based Access Control, password hashing, and advanced protections against common web vulnerabilities to keep your data safe."},
|
||||||
{
|
{
|
||||||
id: "q4", title: "Can I integrate my existing HR software?", content: "JobGeorgia is built with a flexible API, allowing for potential integrations with existing HR and applicant tracking systems. Please contact our support team for custom integration solutions."},
|
id: "q4", title: "Can I integrate my existing HR software?", content: "JobGeorgia is built with a flexible API, allowing for potential integrations with existing HR and applicant tracking systems. Please contact our support team for custom integration solutions."},
|
||||||
|
{
|
||||||
|
id: "q5", title: "How does JobGeorgia ensure platform reliability and scalability for high user volumes?", content: "JobGeorgia undergoes rigorous testing, including unit and integration tests, and regular security audits. Our production readiness involves comprehensive load testing and a robust scaling strategy designed to support over 100,000 active users, ensuring a stable and performant experience for everyone."}
|
||||||
]}
|
]}
|
||||||
title="Frequently Asked Questions"
|
title="Frequently Asked Questions"
|
||||||
description="Find quick answers to the most common questions about JobGeorgia, our features, and how to get started on your career journey."
|
description="Find quick answers to the most common questions about JobGeorgia, our features, and how to get started on your career journey."
|
||||||
|
|||||||
131
src/app/payment-system-api/page.tsx
Normal file
131
src/app/payment-system-api/page.tsx
Normal file
@@ -0,0 +1,131 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import ReactLenis from "lenis/react";
|
||||||
|
import FaqBase from '@/components/sections/faq/FaqBase';
|
||||||
|
import FeatureCardNine from '@/components/sections/feature/FeatureCardNine';
|
||||||
|
import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
|
||||||
|
import HeroCarouselLogo from '@/components/sections/hero/heroCarouselLogo/HeroCarouselLogo';
|
||||||
|
import MetricCardSeven from '@/components/sections/metrics/MetricCardSeven';
|
||||||
|
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
|
||||||
|
import PricingCardTwo from '@/components/sections/pricing/PricingCardTwo';
|
||||||
|
import ProductCardFour from '@/components/sections/product/ProductCardFour';
|
||||||
|
import SocialProofOne from '@/components/sections/socialProof/SocialProofOne';
|
||||||
|
import TestimonialCardFifteen from '@/components/sections/testimonial/TestimonialCardFifteen';
|
||||||
|
import LegalSection from '@/components/legal/LegalSection';
|
||||||
|
import { Award, Sparkles, Zap } from "lucide-react";
|
||||||
|
|
||||||
|
export default function PaymentSystemApiPage() {
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="elastic-effect"
|
||||||
|
defaultTextAnimation="entrance-slide"
|
||||||
|
borderRadius="soft"
|
||||||
|
contentWidth="medium"
|
||||||
|
sizing="mediumLargeSizeLargeTitles"
|
||||||
|
background="fluid"
|
||||||
|
cardStyle="gradient-bordered"
|
||||||
|
primaryButtonStyle="radial-glow"
|
||||||
|
secondaryButtonStyle="radial-glow"
|
||||||
|
headingFontWeight="bold"
|
||||||
|
>
|
||||||
|
<ReactLenis root>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarStyleFullscreen
|
||||||
|
navItems={[
|
||||||
|
{ name: "Home", id: "/" },
|
||||||
|
{ name: "Features", id: "#features" },
|
||||||
|
{ name: "Jobs", id: "#jobs" },
|
||||||
|
{ name: "Companies", id: "#companies" },
|
||||||
|
{ name: "Pricing", id: "#pricing" },
|
||||||
|
{ name: "Reviews", id: "#testimonials" },
|
||||||
|
{ name: "FAQ", id: "#faq" },
|
||||||
|
{ name: "Payment API", id: "/payment-system-api" }
|
||||||
|
]}
|
||||||
|
brandName="JobGeorgia"
|
||||||
|
button={{ text: "Get Started", href: "#pricing" }}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="payment-api-docs" data-section="payment-api-docs">
|
||||||
|
<LegalSection
|
||||||
|
layout="page"
|
||||||
|
title="Payment System API Endpoints"
|
||||||
|
subtitle="Comprehensive documentation for integrating with JobGeorgia's payment system."
|
||||||
|
sections={[
|
||||||
|
{
|
||||||
|
heading: "1. Create Subscription", content: [
|
||||||
|
{ type: "paragraph", text: "Endpoint: `POST /api/subscriptions`" },
|
||||||
|
{ type: "paragraph", text: "Description: Initiates a new subscription for a user based on a selected plan." },
|
||||||
|
{ type: "list", items: [
|
||||||
|
"Request Body: `{ userId: string, planId: string, paymentMethodId?: string }`", "Responses:", " `201 Created`: `{ subscriptionId: string, status: 'active' | 'pending', clientSecret?: string }` (clientSecret for SCA)", " `400 Bad Request`: Invalid input or plan", " `401 Unauthorized`: Missing or invalid authentication"
|
||||||
|
]},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
heading: "2. Process Payment", content: [
|
||||||
|
{ type: "paragraph", text: "Endpoint: `POST /api/payments/process`" },
|
||||||
|
{ type: "paragraph", text: "Description: Processes a one-time payment or the first payment for a subscription using various providers." },
|
||||||
|
{ type: "list", items: [
|
||||||
|
"Request Body: `{ amount: number, currency: string, paymentMethod: 'stripe' | 'paypal' | 'bankOfGeorgia' | 'tbc', sourceId?: string, subscriptionId?: string, userId: string }`", "Responses:", " `200 OK`: `{ transactionId: string, status: 'succeeded' | 'pending' }`", " `400 Bad Request`: Invalid payment details", " `402 Payment Required`: Payment failed"
|
||||||
|
]},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
heading: "3. Manage Subscriptions", content: [
|
||||||
|
{ type: "paragraph", text: "Endpoint: `GET /api/subscriptions/{id}`" },
|
||||||
|
{ type: "paragraph", text: "Description: Retrieves details of a specific subscription." },
|
||||||
|
{ type: "list", items: [
|
||||||
|
"Responses:", " `200 OK`: `{ subscription: { id: string, planId: string, status: 'active' | 'cancelled' | 'paused', startDate: string, endDate: string } }`", " `404 Not Found`: Subscription not found"
|
||||||
|
]},
|
||||||
|
{ type: "paragraph", text: "Endpoint: `PUT /api/subscriptions/{id}/cancel`" },
|
||||||
|
{ type: "paragraph", text: "Description: Cancels an active subscription." },
|
||||||
|
{ type: "list", items: [
|
||||||
|
"Responses:", " `200 OK`: `{ message: 'Subscription cancelled' }`"
|
||||||
|
]},
|
||||||
|
{ type: "paragraph", text: "Endpoint: `PUT /api/subscriptions/{id}/update-plan`" },
|
||||||
|
{ type: "paragraph", text: "Description: Updates the plan for an existing subscription." },
|
||||||
|
{ type: "list", items: [
|
||||||
|
"Request Body: `{ newPlanId: string }`", "Responses:", " `200 OK`: `{ message: 'Subscription plan updated' }`"
|
||||||
|
]},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
heading: "4. Generate Invoices", content: [
|
||||||
|
{ type: "paragraph", text: "Endpoint: `GET /api/users/{userId}/invoices`" },
|
||||||
|
{ type: "paragraph", text: "Description: Retrieves a list of invoices for a specific user." },
|
||||||
|
{ type: "list", items: [
|
||||||
|
"Responses:", " `200 OK`: `{ invoices: Array<{ invoiceId: string, amount: number, currency: string, date: string, status: 'paid' | 'unpaid' | 'due', downloadUrl: string }> }`"
|
||||||
|
]},
|
||||||
|
{ type: "paragraph", text: "Endpoint: `GET /api/invoices/{id}/download`" },
|
||||||
|
{ type: "paragraph", text: "Description: Downloads a specific invoice." },
|
||||||
|
{ type: "list", items: [
|
||||||
|
"Responses:", " `200 OK`: File download (PDF/CSV)"
|
||||||
|
]},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
heading: "5. Handle Refunds", content: [
|
||||||
|
{ type: "paragraph", text: "Endpoint: `POST /api/payments/{transactionId}/refund`" },
|
||||||
|
{ type: "paragraph", text: "Description: Initiates a refund for a given transaction." },
|
||||||
|
{ type: "list", items: [
|
||||||
|
"Request Body: `{ amount?: number, reason?: string }`", "Responses:", " `200 OK`: `{ refundId: string, status: 'pending' | 'succeeded' }`", " `400 Bad Request`: Invalid refund amount or reason", " `404 Not Found`: Transaction not found"
|
||||||
|
]},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
heading: "6. Payment History", content: [
|
||||||
|
{ type: "paragraph", text: "Endpoint: `GET /api/users/{userId}/payment-history`" },
|
||||||
|
{ type: "paragraph", text: "Description: Retrieves a user's complete payment transaction history." },
|
||||||
|
{ type: "list", items: [
|
||||||
|
"Query Parameters: `?startDate={ISO_DATE}&endDate={ISO_DATE}&limit={NUMBER}&offset={NUMBER}`", "Responses:", " `200 OK`: `{ transactions: Array<{ transactionId: string, amount: number, currency: string, date: string, type: 'payment' | 'refund' | 'subscription', status: 'succeeded' | 'failed' | 'pending' }> }`"
|
||||||
|
]},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</ReactLenis>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
128
src/app/recruiter-system/page.tsx
Normal file
128
src/app/recruiter-system/page.tsx
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import ReactLenis from "lenis/react";
|
||||||
|
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
|
||||||
|
import SplitAbout from '@/components/sections/about/SplitAbout';
|
||||||
|
import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
|
||||||
|
import { Search, Database, Mail, Megaphone } from 'lucide-react';
|
||||||
|
|
||||||
|
export default function RecruiterSystemPage() {
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="elastic-effect"
|
||||||
|
defaultTextAnimation="entrance-slide"
|
||||||
|
borderRadius="soft"
|
||||||
|
contentWidth="medium"
|
||||||
|
sizing="mediumLargeSizeLargeTitles"
|
||||||
|
background="fluid"
|
||||||
|
cardStyle="gradient-bordered"
|
||||||
|
primaryButtonStyle="radial-glow"
|
||||||
|
secondaryButtonStyle="radial-glow"
|
||||||
|
headingFontWeight="bold"
|
||||||
|
>
|
||||||
|
<ReactLenis root>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarStyleFullscreen
|
||||||
|
navItems={[
|
||||||
|
{
|
||||||
|
name: "Home", id: "#home"},
|
||||||
|
{
|
||||||
|
name: "Features", id: "#features"},
|
||||||
|
{
|
||||||
|
name: "Jobs", id: "#jobs"},
|
||||||
|
{
|
||||||
|
name: "Companies", id: "#companies"},
|
||||||
|
{
|
||||||
|
name: "Pricing", id: "#pricing"},
|
||||||
|
{
|
||||||
|
name: "Reviews", id: "#testimonials"},
|
||||||
|
{
|
||||||
|
name: "FAQ", id: "#faq"},
|
||||||
|
{
|
||||||
|
name: "Recruiter API", id: "/recruiter-system"}
|
||||||
|
]}
|
||||||
|
brandName="JobGeorgia"
|
||||||
|
button={{
|
||||||
|
text: "Get Started", href: "#pricing"}}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="recruiter-api" data-section="recruiter-api">
|
||||||
|
<SplitAbout
|
||||||
|
title="Recruiter System API Endpoints"
|
||||||
|
description="A comprehensive set of API endpoints designed to empower recruiters with robust tools for candidate management and recruitment campaign execution."
|
||||||
|
tag="API Documentation"
|
||||||
|
bulletPoints={[
|
||||||
|
{ title: "Search Candidates", description: "Efficiently search and filter candidates based on skills, experience, location, and other criteria.", icon: Search },
|
||||||
|
{ title: "Access Candidate Database", description: "Securely access and manage a centralized database of candidate profiles, resumes, and interaction history.", icon: Database },
|
||||||
|
{ title: "Contact Candidates", description: "Facilitate direct communication with candidates through integrated messaging and email functionalities.", icon: Mail },
|
||||||
|
{ title: "Manage Recruitment Campaigns", description: "Create, track, and optimize recruitment campaigns, including job posting distribution and performance analytics.", icon: Megaphone }
|
||||||
|
]}
|
||||||
|
imageSrc="http://img.b2bpic.net/free-photo/code-icon-laptop-screen_53876-146609.jpg"
|
||||||
|
imageAlt="Recruiter System API documentation"
|
||||||
|
mediaAnimation="slide-up"
|
||||||
|
textboxLayout="default"
|
||||||
|
useInvertedBackground={false}
|
||||||
|
imagePosition="left"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="footer" data-section="footer">
|
||||||
|
<FooterBaseReveal
|
||||||
|
logoText="JobGeorgia"
|
||||||
|
columns={[
|
||||||
|
{
|
||||||
|
title: "Platform", items: [
|
||||||
|
{
|
||||||
|
label: "Job Seekers", href: "#features"},
|
||||||
|
{
|
||||||
|
label: "Employers", href: "#features"},
|
||||||
|
{
|
||||||
|
label: "Recruiters", href: "#features"},
|
||||||
|
{
|
||||||
|
label: "AI Features", href: "#features"},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Resources", items: [
|
||||||
|
{
|
||||||
|
label: "Featured Jobs", href: "#jobs"},
|
||||||
|
{
|
||||||
|
label: "Featured Companies", href: "#companies"},
|
||||||
|
{
|
||||||
|
label: "Pricing Plans", href: "#pricing"},
|
||||||
|
{
|
||||||
|
label: "FAQ", href: "#faq"},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Company", items: [
|
||||||
|
{
|
||||||
|
label: "About Us", href: "#"},
|
||||||
|
{
|
||||||
|
label: "Contact Us", href: "#"},
|
||||||
|
{
|
||||||
|
label: "Blog", href: "#"},
|
||||||
|
{
|
||||||
|
label: "Careers", href: "#"},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Legal", items: [
|
||||||
|
{
|
||||||
|
label: "Privacy Policy", href: "#"},
|
||||||
|
{
|
||||||
|
label: "Terms of Service", href: "#"},
|
||||||
|
{
|
||||||
|
label: "Cookie Policy", href: "#"},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
copyrightText="© 2024 JobGeorgia. All rights reserved."
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</ReactLenis>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -11,7 +11,7 @@ html {
|
|||||||
body {
|
body {
|
||||||
background-color: var(--background);
|
background-color: var(--background);
|
||||||
color: var(--foreground);
|
color: var(--foreground);
|
||||||
font-family: var(--font-font-family: var(--font-open-sans), sans-serif;), sans-serif;
|
font-family: var(--font-inter), sans-serif;), sans-serif;
|
||||||
position: relative;
|
position: relative;
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
overscroll-behavior: none;
|
overscroll-behavior: none;
|
||||||
@@ -24,5 +24,5 @@ h3,
|
|||||||
h4,
|
h4,
|
||||||
h5,
|
h5,
|
||||||
h6 {
|
h6 {
|
||||||
font-family: var(--font-font-family: var(--font-open-sans), sans-serif;), sans-serif;
|
font-family: var(--font-dm-sans), sans-serif;), sans-serif;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,15 +10,15 @@
|
|||||||
--accent: #ffffff;
|
--accent: #ffffff;
|
||||||
--background-accent: #ffffff; */
|
--background-accent: #ffffff; */
|
||||||
|
|
||||||
--background: #0a0a0a;
|
--background: #000000;
|
||||||
--card: #1a1a1a;
|
--card: #0c0c0c;
|
||||||
--foreground: #ffffff;
|
--foreground: #ffffff;
|
||||||
--primary-cta: #e34400;
|
--primary-cta: #cee7ff;
|
||||||
--primary-cta-text: #ffffff;
|
--primary-cta-text: #000000;
|
||||||
--secondary-cta: #010101;
|
--secondary-cta: #000000;
|
||||||
--secondary-cta-text: #ffffff;
|
--secondary-cta-text: #ffffff;
|
||||||
--accent: #ff7b05;
|
--accent: #535353;
|
||||||
--background-accent: #106efb;
|
--background-accent: #CEE7FF;
|
||||||
|
|
||||||
/* text sizing - set by ThemeProvider */
|
/* text sizing - set by ThemeProvider */
|
||||||
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);
|
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);
|
||||||
|
|||||||
Reference in New Issue
Block a user