10 Commits

Author SHA1 Message Date
224f61d2a5 Merge version_4 into main
Merge version_4 into main
2026-05-11 13:38:49 +00:00
7585ffafe0 Update src/app/admin/page.tsx 2026-05-11 13:38:45 +00:00
d150f6a54d Merge version_4 into main
Merge version_4 into main
2026-05-11 13:38:23 +00:00
aac79d9742 Update src/app/login/page.tsx 2026-05-11 13:38:20 +00:00
868ff971ec Update src/app/admin/page.tsx 2026-05-11 13:38:20 +00:00
9e743db764 Merge version_4 into main
Merge version_4 into main
2026-05-11 13:37:57 +00:00
ed81a4227f Update src/app/page.tsx 2026-05-11 13:37:54 +00:00
fbe2a1d2ae Add src/app/login/page.tsx 2026-05-11 13:37:53 +00:00
06cbae5a94 Update src/app/admin/page.tsx 2026-05-11 13:37:53 +00:00
2f24f525a7 Merge version_3 into main
Merge version_3 into main
2026-05-11 12:37:29 +00:00
3 changed files with 73 additions and 98 deletions

View File

@@ -2,107 +2,44 @@
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import BlogCardTwo from '@/components/sections/blog/BlogCardTwo';
import FooterCard from '@/components/sections/footer/FooterCard';
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
import TeamCardTen from '@/components/sections/team/TeamCardTen';
import FooterCard from '@/components/sections/footer/FooterCard';
export default function LandingPage() {
export default function AdminPage() {
return (
<ThemeProvider
defaultButtonVariant="expand-hover"
defaultTextAnimation="entrance-slide"
borderRadius="soft"
contentWidth="mediumSmall"
sizing="mediumLargeSizeLargeTitles"
background="grid"
cardStyle="gradient-bordered"
primaryButtonStyle="diagonal-gradient"
secondaryButtonStyle="layered"
headingFontWeight="extrabold"
>
<ThemeProvider defaultButtonVariant="hover-magnetic" defaultTextAnimation="entrance-slide" borderRadius="rounded" contentWidth="medium" sizing="medium" background="circleGradient" cardStyle="glass-elevated" primaryButtonStyle="gradient" secondaryButtonStyle="glass" headingFontWeight="normal">
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay
navItems={[
{
name: "Home",
id: "/",
},
{
name: "Directory",
id: "/directory",
},
{
name: "Admin",
id: "/admin",
},
]}
brandName="SchoolPortal"
/>
</div>
<div id="team" data-section="team">
<TeamCardTen
useInvertedBackground={false}
title="Administrative Team"
tag="Leadership"
membersAnimation="slide-up"
memberVariant="card"
members={[
{
id: "a1",
name: "Director Lee",
imageSrc: "http://img.b2bpic.net/free-photo/young-professional-hairdresser-woman-apron-with-gold-medal-around-neck-holding-trophy-head-happy-positive-smiling-standing-blue-wall_141793-96481.jpg",
},
{
id: "a2",
name: "Head of IT Sarah",
imageSrc: "http://img.b2bpic.net/free-photo/front-view-young-male-grey-t-shirt-wearing-yellow-backpack-flexing-blue-wall_140725-43843.jpg",
},
]}
/>
</div>
<div id="blog" data-section="blog">
<BlogCardTwo
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
title="Admin Announcements"
description="Stay updated with the latest institutional policies and news."
blogs={[
{
id: "b1",
category: "Policy",
title: "Updated Campus Hours",
excerpt: "Campus hours will change effective next semester.",
imageSrc: "http://img.b2bpic.net/free-photo/expressive-young-girl-posing-studio_176474-75690.jpg",
authorName: "System",
authorAvatar: "http://img.b2bpic.net/free-photo/attractive-young-female-has-strong-believe-success-keeps-hands-with-clenched-fists-has-desirable-facial-expression-dressed-striped-clothes-isolated-white-wall-body-language-concept_273609-15732.jpg",
date: "Jan 2025",
},
{
id: "b2",
category: "Notice",
title: "Maintenance Window",
excerpt: "Scheduled server maintenance on Feb 1st.",
imageSrc: "http://img.b2bpic.net/free-photo/happy-graduate-celebrating-graduation_23-2151970536.jpg",
authorName: "System",
authorAvatar: "http://img.b2bpic.net/free-photo/gymnast-smiling-after-winning-golden-medal_23-2150868065.jpg",
date: "Jan 2025",
},
]}
/>
</div>
<div id="footer" data-section="footer">
<FooterCard
logoText="SchoolPortal"
copyrightText="© 2025 School Portal Inc."
/>
</div>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay
navItems={[
{ name: "Home", id: "/" },
{ name: "Directory", id: "/directory" },
{ name: "Admin", id: "/admin" },
]}
brandName="SchoolPortal"
/>
</div>
<main className="min-h-screen pt-32 px-6 max-w-7xl mx-auto">
<h1 className="text-4xl font-bold mb-8">Admin Dashboard</h1>
<div className="grid grid-cols-1 md:grid-cols-3 gap-6">
<div className="p-6 border rounded-lg shadow-sm">
<h2 className="text-xl font-semibold mb-2">User Management</h2>
<p>Manage faculty, staff, and student accounts.</p>
</div>
<div className="p-6 border rounded-lg shadow-sm">
<h2 className="text-xl font-semibold mb-2">Content Management</h2>
<p>Update news, events, and portal resources.</p>
</div>
<div className="p-6 border rounded-lg shadow-sm">
<h2 className="text-xl font-semibold mb-2">System Logs</h2>
<p>Monitor portal activity and security events.</p>
</div>
</div>
</main>
<div id="footer" data-section="footer">
<FooterCard logoText="SchoolPortal" />
</div>
</ReactLenis>
</ThemeProvider>
);
}
}

38
src/app/login/page.tsx Normal file
View File

@@ -0,0 +1,38 @@
"use client";
import { useState } from "react";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
export default function LoginPage() {
const [isLogin, setIsLogin] = useState(true);
return (
<ThemeProvider defaultButtonVariant="hover-magnetic" defaultTextAnimation="entrance-slide" borderRadius="rounded" contentWidth="medium" sizing="medium" background="circleGradient" cardStyle="glass-elevated" primaryButtonStyle="gradient" secondaryButtonStyle="glass" headingFontWeight="normal">
<NavbarLayoutFloatingOverlay
navItems={[{ name: "Home", id: "/" }, { name: "Login", id: "/login" }]}
brandName="SchoolPortal"
/>
<div className="min-h-screen pt-24">
<ContactSplitForm
title={isLogin ? "Sign In to SchoolPortal" : "Create an Account"}
description={isLogin ? "Enter your credentials to access your dashboard." : "Join our community by registering below."}
inputs={[
{ name: "email", type: "email", placeholder: "Email Address", required: true },
{ name: "password", type: "password", placeholder: "Password", required: true },
...(!isLogin ? [{ name: "confirmPassword", type: "password", placeholder: "Confirm Password", required: true }] : [])
]}
useInvertedBackground={false}
buttonText={isLogin ? "Sign In" : "Sign Up"}
onSubmit={(data) => console.log("Form submitted:", data)}
/>
<div className="text-center mt-4">
<button onClick={() => setIsLogin(!isLogin)} className="text-blue-500 hover:underline">
{isLogin ? "Don't have an account? Sign Up" : "Already have an account? Sign In"}
</button>
</div>
</div>
</ThemeProvider>
);
}

View File

@@ -186,4 +186,4 @@ export default function LandingPage() {
</ReactLenis>
</ThemeProvider>
);
}
}