Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 224f61d2a5 | |||
| 7585ffafe0 | |||
| d150f6a54d | |||
| aac79d9742 | |||
| 868ff971ec | |||
| 9e743db764 | |||
| ed81a4227f | |||
| fbe2a1d2ae | |||
| 06cbae5a94 | |||
| 2f24f525a7 |
@@ -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
38
src/app/login/page.tsx
Normal 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>
|
||||
);
|
||||
}
|
||||
@@ -186,4 +186,4 @@ export default function LandingPage() {
|
||||
</ReactLenis>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user