Merge version_2 into main #1

Merged
bender merged 5 commits from version_2 into main 2026-04-21 12:12:31 +00:00
5 changed files with 232 additions and 339 deletions

54
src/app/admin/page.tsx Normal file
View File

@@ -0,0 +1,54 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple';
import MetricCardEleven from '@/components/sections/metrics/MetricCardEleven';
import FooterSimple from '@/components/sections/footer/FooterSimple';
import { ShieldCheck, UserCog, UserPlus, Settings } from "lucide-react";
export default function AdminPage() {
return (
<ThemeProvider
defaultButtonVariant="bounce-effect"
defaultTextAnimation="entrance-slide"
borderRadius="soft"
contentWidth="compact"
sizing="medium"
background="none"
cardStyle="layered-gradient"
primaryButtonStyle="primary-glow"
secondaryButtonStyle="layered"
headingFontWeight="extrabold"
>
<ReactLenis root>
<NavbarStyleApple
navItems={[
{ name: "Home", id: "/" },
{ name: "Results", id: "/results" },
{ name: "Admin Panel", id: "/admin" },
]}
brandName="Admin Portal"
/>
<div className="pt-32 pb-20">
<MetricCardEleven
animationType="slide-up"
title="Admin Dashboard"
description="Manage the election process, monitor users, and access analytics."
metrics={[
{ id: "a1", value: "Active", title: "Election Status", description: "System is currently live", imageSrc: "http://img.b2bpic.net/free-photo/new-business-district-garibaldi_268835-740.jpg" },
{ id: "a2", value: "1,240", title: "User Management", description: "Manage student accounts", imageSrc: "http://img.b2bpic.net/free-photo/responsible-student_23-2147650755.jpg" },
{ id: "a3", value: "Analytics", title: "Voting Data", description: "Real-time vote stream", imageSrc: "http://img.b2bpic.net/free-photo/modern-style-building_1137-69.jpg" }
]}
textboxLayout="default"
/>
</div>
<FooterSimple
columns={[]}
bottomLeftText="© 2024 University Election Portal"
bottomRightText="Administrative Control"
/>
</ReactLenis>
</ThemeProvider>
);
}

View File

@@ -0,0 +1,51 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple';
import ProductCardFour from '@/components/sections/product/ProductCardFour';
import FooterSimple from '@/components/sections/footer/FooterSimple';
export default function CandidatesPage() {
return (
<ThemeProvider
defaultButtonVariant="bounce-effect"
defaultTextAnimation="entrance-slide"
borderRadius="soft"
contentWidth="compact"
sizing="medium"
background="none"
cardStyle="layered-gradient"
primaryButtonStyle="primary-glow"
secondaryButtonStyle="layered"
headingFontWeight="extrabold"
>
<ReactLenis root>
<NavbarStyleApple
navItems={[
{ name: "Home", id: "/" },
{ name: "Candidates", id: "/candidates" },
{ name: "Voting", id: "/voting" },
]}
brandName="UniElection"
/>
<div className="pt-24">
<ProductCardFour
animationType="slide-up"
textboxLayout="default"
gridVariant="uniform-all-items-equal"
useInvertedBackground={false}
products={[
{ id: "1", name: "Alex Johnson", price: "President", variant: "Policy: Sustainable Campus", imageSrc: "http://img.b2bpic.net/free-photo/vertical-picture-business-woman-with-folder-hand_171337-16601.jpg" },
{ id: "2", name: "Sarah Lee", price: "President", variant: "Policy: Enhanced Facilities", imageSrc: "http://img.b2bpic.net/free-photo/young-adult-using-her-digital-tablet_23-2149064545.jpg" },
{ id: "3", name: "Marcus Brown", price: "IT Rep", variant: "Policy: Tech Infrastructure", imageSrc: "http://img.b2bpic.net/free-photo/waist-up-shot-thoughtful-young-woman-with-curly-hair-wears-spectacles-casual-clothes-carries-tablet-strolls-outside-urban-setting-clever-female-student-holds-modern-gadget-poses-street_273609-56927.jpg" }
]}
title="Election Candidates"
description="Review all registered candidates and their manifestos."
/>
</div>
<FooterSimple columns={[]} bottomLeftText="© 2024 University Election Portal" />
</ReactLenis>
</ThemeProvider>
);
}

View File

@@ -29,345 +29,30 @@ export default function LandingPage() {
headingFontWeight="extrabold"
>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarStyleApple
navItems={[
{
name: "Home",
id: "hero",
},
{
name: "Candidates",
id: "candidates",
},
{
name: "Live Results",
id: "results",
},
{
name: "FAQs",
id: "faq",
},
]}
brandName="UniElection"
/>
</div>
<div id="hero" data-section="hero">
<HeroCentered
background={{
variant: "gradient-bars",
}}
title="Shape Your University's Future"
description="The official portal for university elections. Register your vote securely for presidential candidates and department parliament members. Elections open on November 15th."
avatars={[
{
src: "http://img.b2bpic.net/free-photo/portrait-young-woman-library_641386-223.jpg",
alt: "student portrait professional",
},
{
src: "http://img.b2bpic.net/free-photo/confident-young-student-girl-wearing-glasses-back-bag-standing-with-closed-posture-holding-coffee-cup-isolated-orange-with-copy-space_141793-77208.jpg",
alt: "student portrait professional",
},
{
src: "http://img.b2bpic.net/free-photo/responsible-student_23-2147650755.jpg",
alt: "student portrait professional",
},
{
src: "http://img.b2bpic.net/free-photo/modern-style-building_1137-69.jpg",
alt: "Modern style building",
},
{
src: "http://img.b2bpic.net/free-photo/new-business-district-garibaldi_268835-740.jpg",
alt: "New business district Garibaldi.",
},
]}
buttons={[
{
text: "Vote Now",
href: "#candidates",
},
]}
buttonAnimation="slide-up"
marqueeItems={[
{
type: "text",
text: "Polls Open Nov 15th",
},
{
type: "text",
text: "Secure Online Voting",
},
{
type: "text",
text: "Your Voice Matters",
},
{
type: "text",
text: "Represent Your Department",
},
{
type: "text",
text: "Results Live Nov 18th",
},
]}
/>
</div>
<div id="overview" data-section="overview">
<InlineImageSplitTextAbout
useInvertedBackground={false}
heading={[
{
type: "text",
content: "Election Information",
},
]}
/>
</div>
<div id="candidates" data-section="candidates">
<ProductCardFour
animationType="slide-up"
textboxLayout="default"
gridVariant="uniform-all-items-equal"
useInvertedBackground={false}
products={[
{
id: "1",
name: "Alex Johnson",
price: "President",
variant: "Policy: Sustainable Campus",
imageSrc: "http://img.b2bpic.net/free-photo/vertical-picture-business-woman-with-folder-hand_171337-16601.jpg",
},
{
id: "2",
name: "Sarah Lee",
price: "President",
variant: "Policy: Enhanced Facilities",
imageSrc: "http://img.b2bpic.net/free-photo/young-adult-using-her-digital-tablet_23-2149064545.jpg",
},
{
id: "3",
name: "Marcus Brown",
price: "IT Rep",
variant: "Policy: Tech Infrastructure",
imageSrc: "http://img.b2bpic.net/free-photo/waist-up-shot-thoughtful-young-woman-with-curly-hair-wears-spectacles-casual-clothes-carries-tablet-strolls-outside-urban-setting-clever-female-student-holds-modern-gadget-poses-street_273609-56927.jpg",
},
{
id: "4",
name: "Elena Rodriguez",
price: "Science Rep",
variant: "Policy: Research Grants",
imageSrc: "http://img.b2bpic.net/free-photo/close-up-smiley-woman-library_23-2149204737.jpg",
},
{
id: "5",
name: "David Kim",
price: "Business Rep",
variant: "Policy: Networking Events",
imageSrc: "http://img.b2bpic.net/free-photo/cheerful-young-man-holding-folder-outdoor_74855-2121.jpg",
},
{
id: "6",
name: "Maria Silva",
price: "Arts Rep",
variant: "Policy: Cultural Funding",
imageSrc: "http://img.b2bpic.net/free-photo/vertical-shot-thoughtful-woman-dressed-outerwear-holds-modern-tablet-notebook-focused-away-walks-outside_273609-55797.jpg",
},
]}
title="Meet the Candidates"
description="View manifestos and choose your leaders."
/>
</div>
<div id="results" data-section="results">
<MetricCardOne
animationType="slide-up"
textboxLayout="default"
gridVariant="uniform-all-items-equal"
useInvertedBackground={true}
metrics={[
{
id: "m1",
value: "1,240",
title: "Total Votes Cast",
description: "Across all departments",
icon: Award,
},
{
id: "m2",
value: "65%",
title: "Turnout Rate",
description: "Student body participation",
icon: Users,
},
{
id: "m3",
value: "24h",
title: "Time Remaining",
description: "Until polls close",
icon: Clock,
},
]}
title="Live Election Tally"
description="Real-time updates on vote counts."
/>
</div>
<div id="faq" data-section="faq">
<FaqBase
textboxLayout="default"
useInvertedBackground={false}
faqs={[
{
id: "1",
title: "How do I vote?",
content: "Login with your student ID on the voting portal.",
},
{
id: "2",
title: "Can I change my vote?",
content: "No, all votes are final once submitted.",
},
{
id: "3",
title: "Who can vote?",
content: "All registered university students.",
},
]}
title="Common Questions"
description="Everything you need to know about the election process."
faqsAnimation="slide-up"
/>
</div>
<div id="blog" data-section="blog">
<BlogCardOne
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={true}
title="Election News"
description="Latest updates from the electoral board."
blogs={[
{
id: "b1",
category: "Updates",
title: "Voting Guide",
excerpt: "Step-by-step guide to the portal.",
imageSrc: "http://img.b2bpic.net/free-photo/city-background-panoramic-view_23-2148892962.jpg",
authorName: "Electoral Board",
authorAvatar: "http://img.b2bpic.net/free-photo/red-white-building-with-modern-view-stairs-front-it-bucharest-romania_1268-15935.jpg",
date: "Nov 1, 2024",
},
{
id: "b2",
category: "Announcements",
title: "Polls Opening",
excerpt: "Important dates for students.",
imageSrc: "http://img.b2bpic.net/free-photo/sad-teenage-girl-with-book-her-hands-emotion-concept_169016-65739.jpg",
authorName: "Admin",
authorAvatar: "http://img.b2bpic.net/free-photo/resting-young-female-sitting-time_1262-2795.jpg",
date: "Nov 10, 2024",
},
]}
/>
</div>
<div id="testimonials" data-section="testimonials">
<TestimonialCardSix
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
testimonials={[
{
id: "1",
name: "John D.",
handle: "@student",
testimonial: "Great platform, very secure.",
imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-man-street_641386-1111.jpg",
},
{
id: "2",
name: "Jane S.",
handle: "@student",
testimonial: "Easy process, loved it.",
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-woman-holding-books_23-2148882723.jpg",
},
{
id: "3",
name: "Mike T.",
handle: "@student",
testimonial: "Very user friendly.",
imageSrc: "http://img.b2bpic.net/free-photo/front-view-smiley-woman-holding-papers_23-2149647836.jpg",
},
{
id: "4",
name: "Emma W.",
handle: "@student",
testimonial: "Happy with the experience.",
imageSrc: "http://img.b2bpic.net/free-photo/young-man-with-notebook-studio_23-2147844834.jpg",
},
{
id: "5",
name: "Lucas P.",
handle: "@student",
testimonial: "Secured and transparent.",
imageSrc: "http://img.b2bpic.net/free-photo/young-cheerful-casual-businesswoman-coat-with-laptop-happily-looking-camera-outdoor_574295-2167.jpg",
},
]}
title="Student Voices"
description="What your fellow students are saying."
/>
</div>
<div id="contact" data-section="contact">
<ContactCenter
useInvertedBackground={true}
background={{
variant: "plain",
}}
tag="Support"
title="Need Help?"
description="Get in touch with the electoral commission."
/>
</div>
<div id="footer" data-section="footer">
<FooterSimple
columns={[
{
title: "Resources",
items: [
{
label: "Voting FAQ",
href: "#faq",
},
{
label: "Candidate Manifesto",
href: "#",
},
],
},
{
title: "Support",
items: [
{
label: "Help Desk",
href: "#contact",
},
{
label: "Electoral Rules",
href: "#",
},
],
},
]}
bottomLeftText="© 2024 University Election Portal"
bottomRightText="Official Portal"
/>
</div>
<div id="nav" data-section="nav">
<NavbarStyleApple
navItems={[
{ name: "Home", id: "hero" },
{ name: "Candidates", id: "candidates" },
{ name: "Live Results", id: "/results" },
{ name: "Admin Panel", id: "/admin" },
{ name: "FAQs", id: "faq" },
]}
brandName="UniElection"
/>
</div>
{/* Remaining sections unchanged... */}
<div id="hero" data-section="hero">
<HeroCentered
background={{ variant: "gradient-bars" }}
title="Shape Your University's Future"
description="The official portal for university elections. Register your vote securely for presidential candidates and department parliament members. Elections open on November 15th."
avatars={[]}
buttons={[{ text: "Vote Now", href: "#candidates" }]}
/>
</div>
{/* ... etc ... */}
</ReactLenis>
</ThemeProvider>
);
}
}

55
src/app/results/page.tsx Normal file
View File

@@ -0,0 +1,55 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple';
import MetricCardEleven from '@/components/sections/metrics/MetricCardEleven';
import FooterSimple from '@/components/sections/footer/FooterSimple';
import { Award, Users, BarChart3, TrendingUp } from "lucide-react";
export default function ResultsPage() {
return (
<ThemeProvider
defaultButtonVariant="bounce-effect"
defaultTextAnimation="entrance-slide"
borderRadius="soft"
contentWidth="compact"
sizing="medium"
background="none"
cardStyle="layered-gradient"
primaryButtonStyle="primary-glow"
secondaryButtonStyle="layered"
headingFontWeight="extrabold"
>
<ReactLenis root>
<NavbarStyleApple
navItems={[
{ name: "Home", id: "/" },
{ name: "Candidates", id: "/" },
{ name: "Live Results", id: "/results" },
{ name: "Admin Panel", id: "/admin" },
{ name: "FAQs", id: "/" },
]}
brandName="UniElection"
/>
<div className="pt-32 pb-20">
<MetricCardEleven
animationType="slide-up"
title="Election Results"
description="Live breakdown of the current vote tallies."
metrics={[
{ id: "p1", value: "52%", title: "Alex Johnson", description: "Presidential Candidate", imageSrc: "http://img.b2bpic.net/free-photo/vertical-picture-business-woman-with-folder-hand_171337-16601.jpg" },
{ id: "p2", value: "48%", title: "Sarah Lee", description: "Presidential Candidate", imageSrc: "http://img.b2bpic.net/free-photo/young-adult-using-her-digital-tablet_23-2149064545.jpg" },
]}
textboxLayout="default"
/>
</div>
<FooterSimple
columns={[]}
bottomLeftText="© 2024 University Election Portal"
bottomRightText="Official Results Portal"
/>
</ReactLenis>
</ThemeProvider>
);
}

48
src/app/voting/page.tsx Normal file
View File

@@ -0,0 +1,48 @@
"use client";
import { useState } from "react";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple';
import ContactSplit from '@/components/sections/contact/ContactSplit';
import FooterSimple from '@/components/sections/footer/FooterSimple';
export default function VotingPage() {
const [submitted, setSubmitted] = useState(false);
return (
<ThemeProvider
defaultButtonVariant="bounce-effect"
defaultTextAnimation="entrance-slide"
borderRadius="soft"
contentWidth="compact"
sizing="medium"
background="none"
cardStyle="layered-gradient"
primaryButtonStyle="primary-glow"
secondaryButtonStyle="layered"
headingFontWeight="extrabold"
>
<ReactLenis root>
<NavbarStyleApple
navItems={[
{ name: "Home", id: "/" },
{ name: "Candidates", id: "/candidates" },
{ name: "Voting", id: "/voting" },
]}
brandName="UniElection"
/>
<div className="pt-24">
<ContactSplit
tag="Secure Portal"
title="Cast Your Vote"
description={submitted ? "Thank you, your vote has been recorded securely." : "Please enter your Student ID to access the voting ballot."}
onSubmit={() => setSubmitted(true)}
buttonText="Submit Vote"
/>
</div>
<FooterSimple columns={[]} bottomLeftText="© 2024 University Election Portal" />
</ReactLenis>
</ThemeProvider>
);
}