Skip to content

Commit fa12245

Browse files
authored
Merge pull request #15 from Anwesha28S/Footer_events
Footer and Events Page
2 parents 4604bfc + 5a69074 commit fa12245

11 files changed

Lines changed: 358 additions & 54 deletions

File tree

.gitignore

Lines changed: 29 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,29 @@
1-
# Logs
2-
logs
3-
*.log
4-
npm-debug.log*
5-
yarn-debug.log*
6-
yarn-error.log*
7-
pnpm-debug.log*
8-
lerna-debug.log*
9-
.eslintcache
10-
11-
node_modules
12-
dist
13-
dist-ssr
14-
*.local
15-
16-
# Editor directories and files
17-
.vscode/*
18-
!.vscode/extensions.json
19-
.idea
20-
.DS_Store
21-
*.suo
22-
*.ntvs*
23-
*.njsproj
24-
*.sln
25-
*.sw?
26-
27-
#Environment Variables
28-
.env
1+
# Logs
2+
logs
3+
*.log
4+
npm-debug.log*
5+
yarn-debug.log*
6+
yarn-error.log*
7+
pnpm-debug.log*
8+
lerna-debug.log*
9+
.eslintcache
10+
11+
node_modules
12+
dist
13+
dist-ssr
14+
*.local
15+
16+
# Editor directories and files
17+
.vscode/*
18+
!.vscode/extensions.json
19+
.idea
20+
.DS_Store
21+
*.suo
22+
*.ntvs*
23+
*.njsproj
24+
*.sln
25+
*.sw?
26+
27+
#Environment Variables
28+
.env
29+
dist/

LICENSE

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
1-
MIT License
2-
3-
Copyright (c) 2025 OpenCodeNITR
4-
5-
Permission is hereby granted, free of charge, to any person obtaining a copy
6-
of this software and associated documentation files (the "Software"), to deal
7-
in the Software without restriction, including without limitation the rights
8-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9-
copies of the Software, and to permit persons to whom the Software is
10-
furnished to do so, subject to the following conditions:
11-
12-
The above copyright notice and this permission notice shall be included in all
13-
copies or substantial portions of the Software.
14-
15-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21-
SOFTWARE.
1+
MIT License
2+
3+
Copyright (c) 2025 OpenCodeNITR
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

index.html

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,13 @@
44
<meta charset="UTF-8" />
55
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
66
<title>ASME</title>
7+
<link
8+
rel="stylesheet"
9+
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"
10+
integrity="sha512-pap6a2xqMML/7KZ8mUg4e8lVrW9Rp4kdqWphUVi1z9trFtQlfZo5x3fXU8AX3r6UeHeB+uS3vhwKkD6tw+OzTg=="
11+
crossorigin="anonymous"
12+
referrerpolicy="no-referrer"
13+
/>
714
</head>
815
<body>
916
<div id="root"></div>

package-lock.json

Lines changed: 31 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@
1414
"@tailwindcss/vite": "^4.1.11",
1515
"react": "^19.1.0",
1616
"react-dom": "^19.1.0",
17+
"react-icons": "^5.5.0",
1718
"react-router": "^7.6.3",
19+
"react-router-dom": "^7.6.3",
1820
"tailwindcss": "^4.1.11"
1921
},
2022
"devDependencies": {
@@ -29,7 +31,7 @@
2931
"husky": "^9.1.7",
3032
"lint-staged": "^16.1.2",
3133
"prettier": "^3.6.2",
32-
"vite": "^7.0.3"
34+
"vite": "^7.0.4"
3335
},
3436
"lint-staged": {
3537
"**/*": "prettier --write --ignore-unknown",

src/Playground.jsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ const Playground = () => {
66
<>
77
<Navbar />
88
<Outlet />
9+
<Footer />
910
</>
1011
);
1112
};
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import React from "react";
2+
3+
const EventCard = () => {
4+
return (
5+
<div className="bg-gray-50 rounded-xl shadow-md overflow-hidden flex flex-col md:flex-row border-2 border-[#0B2044]">
6+
<img
7+
src="https://res.cloudinary.com/dswk9scro/image/upload/v1752313324/image_urekzp.png"
8+
alt="Event"
9+
className="w-full md:w-2/5 object-cover"
10+
/>
11+
<div className="p-4 flex flex-col justify-center">
12+
<h3 className="text-xl font-semibold text-[#0B2044]">Sample Event</h3>
13+
<p className="text-sm text-gray-600 mt-1">
14+
Placeholder description for the event.
15+
</p>
16+
<p className="text-sm text-gray-400 mt-2">Date: 25 Aug 2025</p>
17+
</div>
18+
</div>
19+
);
20+
};
21+
export default EventCard;
Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
// src/components/Footer.jsx
2+
import { Link } from "react-router-dom";
3+
import React from "react";
4+
import {
5+
FaFacebookF,
6+
FaTwitter,
7+
FaInstagram,
8+
FaLinkedinIn,
9+
} from "react-icons/fa";
10+
import { FiMail, FiPhone } from "react-icons/fi"; // Feather Icons
11+
import { GoLocation } from "react-icons/go"; //location icons
12+
const Footer = ({
13+
title = "ASME NIT Rourkela Chapter",
14+
description = "The American Society of Mechanical Engineers Student Chapter at NIT Rourkela, fostering a culture of innovation and technical learning through innovation, collaboration, and hands-on learning.",
15+
16+
social = {
17+
facebook: "#",
18+
twitter: "#",
19+
instagram: "#",
20+
linkedin: "#",
21+
},
22+
year = new Date().getFullYear(),
23+
}) => {
24+
return (
25+
<footer className="bg-[#0B2044] text-white px-10 py-8">
26+
<div className="max-w-7xl mx-auto grid grid-cols-1 md:grid-cols-3 gap-8">
27+
{/* Left Section */}
28+
<div>
29+
<div className="flex gap-4 mb-4 flex-wrap">
30+
<img
31+
src="https://res.cloudinary.com/dswk9scro/image/upload/v1752377324/Group_cropped_qgqzw9.png"
32+
alt="ASME Logo"
33+
className="w-8 h-8 object-contain"
34+
/>
35+
<h2 className="text-xl font-bold">{title}</h2>
36+
</div>
37+
38+
<p className="text-sm">{description}</p>
39+
<div className="flex gap-4 mt-4 text-lg">
40+
<a
41+
href={social.facebook}
42+
aria-label="Facebook"
43+
target="_blank"
44+
rel="noopener noreferrer"
45+
>
46+
<FaFacebookF className="hover:text-gray-300 transition" />
47+
</a>
48+
<a
49+
href={social.twitter}
50+
aria-label="Twitter"
51+
target="_blank"
52+
rel="noopener noreferrer"
53+
>
54+
<FaTwitter className="hover:text-gray-300 transition" />
55+
</a>
56+
<a
57+
href={social.instagram}
58+
aria-label="Instagram"
59+
target="_blank"
60+
rel="noopener noreferrer"
61+
>
62+
<FaInstagram className="hover:text-gray-300 transition" />
63+
</a>
64+
<a
65+
href={social.linkedin}
66+
aria-label="LinkedIn"
67+
target="_blank"
68+
rel="noopener noreferrer"
69+
>
70+
<FaLinkedinIn className="hover:text-gray-300 transition" />
71+
</a>
72+
</div>
73+
</div>
74+
75+
{/* Middle Section */}
76+
<div>
77+
<h3 className="text-lg font-semibold">Quick Links</h3>
78+
<ul className="mt-2 space-y-1 text-sm">
79+
<li>
80+
<Link to="/playground/about" className="hover:underline">
81+
About us
82+
</Link>
83+
</li>
84+
<li>
85+
<Link to="/playground/team" className="hover:underline">
86+
Team
87+
</Link>
88+
</li>
89+
<li>
90+
<Link to="/playground/events" className="hover:underline">
91+
Events
92+
</Link>
93+
</li>
94+
<li>
95+
<Link to="/playground/achievements" className="hover:underline">
96+
Achievements
97+
</Link>
98+
</li>
99+
<li>
100+
<Link to="/playground/gallery" className="hover:underline">
101+
Gallery
102+
</Link>
103+
</li>
104+
</ul>
105+
</div>
106+
107+
{/* Right Section */}
108+
<div>
109+
<h3 className="text-lg font-semibold">Contact Info</h3>
110+
<div className="text-sm mt-4 text-white space-y-4">
111+
<div className="flex items-center gap-4">
112+
<FiMail className=" text-[#51B8F2] text-xl hover:text-white transition" />
113+
<span>contact@asmenitrkl.ac.in</span> {/* To be added */}
114+
</div>
115+
<div className="flex items-center gap-4">
116+
<FiPhone className="text-[#51B8F2] text-xl hover:text-white transition" />
117+
<span>+91-1234567890</span> {/* To be added */}
118+
</div>
119+
<div className="flex items-start gap-4">
120+
<GoLocation className=" text-[#51B8F2] text-xl mt-1 hover:text-white transition" />
121+
<span>
122+
National Institute of Technology Rourkela, <br /> Odisha -
123+
769008
124+
</span>
125+
</div>
126+
</div>
127+
</div>
128+
</div>
129+
130+
<div className="text-center text-sm mt-8 border-t border-white/20 pt-4">
131+
© {year} {title}. All rights reserved.
132+
</div>
133+
</footer>
134+
);
135+
};
136+
137+
export default Footer;
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { Outlet } from "react-router-dom";
2+
import Footer from "../playground/Footer";
3+
4+
const MainLayout = () => {
5+
return (
6+
<div className="min-h-screen flex flex-col">
7+
<main className="flex-grow">
8+
<Outlet />
9+
</main>
10+
<Footer />
11+
</div>
12+
);
13+
};
14+
15+
export default MainLayout;

0 commit comments

Comments
 (0)