Skip to content

Commit 3625a16

Browse files
committed
Co-authored-by: Cooperzilla <[email protected]>
1 parent 2d0996d commit 3625a16

21 files changed

+281
-86
lines changed

.vscode/settings.json

+10-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,10 @@
1-
{}
1+
{
2+
"files.exclude": {
3+
"**/.git": true,
4+
"**/.svn": true,
5+
"**/.hg": true,
6+
"**/CVS": true,
7+
"**/.DS_Store": true,
8+
"**/Thumbs.db": true
9+
}
10+
}

backend/router/login.js

+1
Original file line numberDiff line numberDiff line change
@@ -71,3 +71,4 @@ router.post('/', async (req, res) => {
7171
});
7272

7373
module.exports = router;
74+

frontend/index.html

+3-4
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,9 @@
66
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
77
<link rel="preconnect" href="https://fonts.googleapis.com" />
88
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
9-
<link
10-
href="https://fonts.googleapis.com/css2?family=Bebas+Neue&display=swap"
11-
rel="stylesheet"
12-
/>
9+
<link href="https://fonts.googleapis.com/css2?family=Bebas+Neue&display=swap" rel="stylesheet">
10+
<link href="https://fonts.googleapis.com/css2?family=Bai+Jamjuree:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;1,200;1,300;1,400;1,500;1,600;1,700&family=Bebas+Neue&display=swap" rel="stylesheet">
11+
1312

1413
<title>LuminAI</title>
1514
</head>

frontend/package.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@
1414
"deploy": "gh-pages -d build"
1515
},
1616
"dependencies": {
17+
"@emailjs/browser": "^4.3.3",
1718
"@tanstack/react-router": "^1.40.0",
1819
"aos": "^2.3.4",
1920
"axios": "^1.7.2",
2021
"dotenv": "^16.4.5",
21-
"emailjs-com": "^3.2.0",
2222
"firebase": "^10.12.2",
2323
"locomotive-aos": "^1.0.7",
2424
"locomotive-scroll": "^4.1.4",
@@ -31,12 +31,13 @@
3131
},
3232
"devDependencies": {
3333
"@tanstack/router-vite-plugin": "^1.40.3",
34+
"@types/aos": "^3.0.7",
3435
"@types/react": "^18.3.3",
3536
"@types/react-dom": "^18.3.0",
3637
"@vitejs/plugin-react": "^4.3.1",
3738
"autoprefixer": "^10.4.19",
3839
"babel-plugin-react-compiler": "^0.0.0",
39-
"eslint": "^9.5.0",
40+
"eslint": "^9.6.0",
4041
"eslint-plugin-react": "^7.34.3",
4142
"eslint-plugin-react-compiler": "0.0.0-experimental-51a85ea-20240601",
4243
"eslint-plugin-react-hooks": "^4.6.2",

frontend/pnpm-lock.yaml

+18-11
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frontend/src/components/ContactUs.jsx

+34-22
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,43 @@
1+
import Aos from 'aos';
2+
import 'aos/dist/aos.css';
3+
import { useEffect } from 'react';
4+
import AOSInit from '../utils/aos';
5+
16
const ContactSection = () => {
7+
8+
<AOSInit />
9+
210
return (
3-
<div className="flex flex-col items-start p-4 bg-black text-white space-y-4">
11+
<div className="flex flex-col items-start p-4 bg-black text-white space-y-4 shadow-lg">
412
<p className="text-lg text-left">
5-
We collaborate with all who <br />
6-
believes in the education of our next generation. <br />
7-
<span className="font-bold"> Let's transform the future of AI together. </span>
13+
<span data-aos="fade-up" data-aos-delay="0">We collaborate with all who </span><br />
14+
<span data-aos="fade-up" data-aos-delay="100">believes in the education of our next generation. </span><br />
15+
<span className="font-bold" data-aos="fade-up" data-aos-delay="200"> Let's transform the future of AI together.</span>
816
</p>
9-
<a href="mailto:[email protected]" className="flex items-center space-x-2 group">
10-
<span className="text-lg group-hover:scale=[102%] transition-transform duration-300">
11-
12-
</span>
13-
<svg
14-
className="w-8 h-8 group-hover:translate-x-2 transition-transform duration-300"
15-
xmlns="http://www.w3.org/2000/svg"
16-
viewBox="0 0 24 24"
17-
fill="none"
18-
stroke="currentColor"
19-
strokeWidth="2"
20-
strokeLinecap="round"
21-
strokeLinejoin="round">
22-
<line x1="5" y1="12" x2="19" y2="12" />
23-
<polyline points="12 5 19 12 12 19" />
24-
</svg>
17+
<a href="mailto:[email protected]" className="flex items-center space-x-2 group">
18+
<span className="text-lg group-hover:scale-105 transition-transform duration-300" data-aos="fade-up" data-aos-delay="300">
19+
20+
</span>
21+
<svg
22+
className="w-8 h-8 group-hover:translate-x-2 transition-transform duration-300"
23+
xmlns="http://www.w3.org/2000/svg"
24+
viewBox="0 0 24 24"
25+
fill="none"
26+
stroke="currentColor"
27+
strokeWidth="2"
28+
strokeLinecap="round"
29+
strokeLinejoin="round"
30+
data-aos="fade-up"
31+
data-aos-delay="400"
32+
>
33+
<line x1="5" y1="12" x2="19" y2="12" />
34+
<polyline points="12 5 19 12 12 19" />
35+
</svg>
2536
</a>
2637
<div className="absolute bottom-0 left-0 right-0 h-0.5 bg-white group-hover:bg-transparent transition-all duration-300"></div>
27-
</div>
38+
</div>
2839
);
2940
};
3041

31-
export default ContactSection;
42+
export default ContactSection;
43+

frontend/src/components/ExploreAI.jsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ const Activities = () => {
1919
// GridItem Component
2020
const GridItem = ({ type, title, description }) => {
2121
return (
22-
<div className="grid grid-item" data-type={type}>
22+
<div className="custom-grid grid-item" data-type={type}>
2323
<h3>{title}</h3>
2424
<p>{description}</p>
2525
</div>
+24-9
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import '../../styles/App.css';
2-
import './Header.css';
3-
import getMode from '../../utils/getMode';
4-
import { Link } from '@tanstack/react-router';
1+
import "../../styles/App.css";
2+
import "./Header.css";
3+
import getMode from "../../utils/getMode";
4+
import { Link } from "@tanstack/react-router";
55

66
const Header = () => {
77
const mode = getMode();
@@ -11,16 +11,31 @@ const Header = () => {
1111
return (
1212
<header className={headerClass}>
1313
<div className="container mx-auto flex justify-between items-center">
14-
<h2 className="text-2xl">LuminAI Innovate Scholars</h2>
14+
<StyledLink
15+
address="/"
16+
text={<h2 className="text-2xl font-sans font-semibold">LuminAI Innovate Scholars</h2>}
17+
/>
1518
<nav className={navClass}>
16-
<Link to="/" className="mx-2">Home</Link>
17-
<Link to="/syllabus" className="mx-2">Syllabus</Link>
18-
<Link to="/staff" className="mx-2">Meet Our Staff</Link>
19-
<Link to="/inquiry" className="mx-2">Inquiry</Link>
19+
<StyledLink address="/Syllabus" text="Syllabus" />
20+
<StyledLink address="/Staff" text="Meet Our Staff" />
21+
<StyledLink address="/Inquiry" text="Inquiry" />
22+
<StyledLink address="/Login" text="Login" />
2023
</nav>
2124
</div>
2225
</header>
2326
);
2427
};
2528

2629
export default Header;
30+
31+
function StyledLink({ address, text }) {
32+
return (
33+
<Link
34+
to={address}
35+
className="relative mx-1 p-2 bg-white overflow-hidden group"
36+
>
37+
<span className="relative z-10">{text}</span>
38+
<div className="absolute rounded-md inset-0 bg-gradient-to-r from-cyan-300 to-purple-300 transition-transform duration-300 transform scale-x-0 group-hover:scale-x-100 origin-left"></div>
39+
</Link>
40+
);
41+
}

frontend/src/components/Preloader.jsx

Whitespace-only changes.

frontend/src/routeTree.gen.ts

+18
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import { Route as rootRoute } from './routes/__root'
1414
import { Route as SyllabusImport } from './routes/Syllabus'
1515
import { Route as StaffImport } from './routes/Staff'
16+
import { Route as LoginImport } from './routes/Login'
1617
import { Route as InquiryImport } from './routes/Inquiry'
1718
import { Route as IndexImport } from './routes/index'
1819

@@ -28,6 +29,11 @@ const StaffRoute = StaffImport.update({
2829
getParentRoute: () => rootRoute,
2930
} as any)
3031

32+
const LoginRoute = LoginImport.update({
33+
path: '/Login',
34+
getParentRoute: () => rootRoute,
35+
} as any)
36+
3137
const InquiryRoute = InquiryImport.update({
3238
path: '/Inquiry',
3339
getParentRoute: () => rootRoute,
@@ -56,6 +62,13 @@ declare module '@tanstack/react-router' {
5662
preLoaderRoute: typeof InquiryImport
5763
parentRoute: typeof rootRoute
5864
}
65+
'/Login': {
66+
id: '/Login'
67+
path: '/Login'
68+
fullPath: '/Login'
69+
preLoaderRoute: typeof LoginImport
70+
parentRoute: typeof rootRoute
71+
}
5972
'/Staff': {
6073
id: '/Staff'
6174
path: '/Staff'
@@ -78,6 +91,7 @@ declare module '@tanstack/react-router' {
7891
export const routeTree = rootRoute.addChildren({
7992
IndexRoute,
8093
InquiryRoute,
94+
LoginRoute,
8195
StaffRoute,
8296
SyllabusRoute,
8397
})
@@ -92,6 +106,7 @@ export const routeTree = rootRoute.addChildren({
92106
"children": [
93107
"/",
94108
"/Inquiry",
109+
"/Login",
95110
"/Staff",
96111
"/Syllabus"
97112
]
@@ -102,6 +117,9 @@ export const routeTree = rootRoute.addChildren({
102117
"/Inquiry": {
103118
"filePath": "Inquiry.jsx"
104119
},
120+
"/Login": {
121+
"filePath": "Login.jsx"
122+
},
105123
"/Staff": {
106124
"filePath": "Staff.jsx"
107125
},

frontend/src/routes/Login.jsx

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { createFileRoute } from '@tanstack/react-router';
2+
3+
export const Route = createFileRoute('/Login')({
4+
component: Login,
5+
});
6+
7+
function Login() {
8+
return (
9+
<p></p>
10+
)
11+
}

frontend/src/routes/Staff.jsx

+4-4
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@ export const Route = createFileRoute('/Staff')({
1717
function Staff() {
1818
const colorMode = getMode();
1919

20-
21-
2220
const teamMembers = [
2321
{
2422
name: 'John Doe',
@@ -62,12 +60,13 @@ function Staff() {
6260
<Helmet>
6361
<title>LuminAI - Staff</title>
6462
</Helmet>
65-
<div className="custom-border p-4 justify-center text-center" style={{ animation: 'textPopIn 0.7s ease-in-out' }}>
63+
<div className="pt-24 p-4 justify-center text-center">
6664
<h2 className="text-2xl font-bold mb-4">Meet Our Staff</h2>
6765
<p>Information about our experienced instructors and staff members.</p>
6866

6967
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6 p-6">
7068
{teamMembers.map((member, index) => (
69+
<div style={{ animation: 'textPopIn 0.7s ease-in-out' }}>
7170
<div
7271
key={index}
7372
className="bg-white bg-opacity-80 p-6 rounded-lg text-center relative group"
@@ -77,12 +76,13 @@ function Staff() {
7776
<MovingGradient />
7877
</div>
7978
<h2 className="text-2xl font-bold ">{member.name}</h2>
80-
<div className="transform absolute inset-0 transition hover:scale-105 rounded-md bg-white bg-opacity-90 p-6 flex flex-col justify-center items-center opacity-0 group-hover:opacity-100 ">
79+
<div className="transform absolute inset-0 duration-300 transition hover:scale-105 rounded-md bg-white bg-opacity-90 p-6 flex flex-col justify-center items-center opacity-0 group-hover:opacity-100 ">
8180
<p className="text-lg">{member.role}</p>
8281
<p className="text-sm italic">{member.fact}</p>
8382
<p className="text-gray-600">{member.description}</p>
8483
</div>
8584
</div>
85+
</div>
8686
))}
8787
</div>
8888
</div>

0 commit comments

Comments
 (0)