Skip to content

Commit 45b0700

Browse files
Website Version 2 with latest team section, events and better SEO
1 parent 9abcff6 commit 45b0700

296 files changed

Lines changed: 6701 additions & 3585 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

app/about/page.tsx

Lines changed: 253 additions & 208 deletions
Large diffs are not rendered by default.

app/community/page.tsx

Lines changed: 91 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,42 @@
11
'use client';
22

3+
import { useState, useEffect } from 'react';
34
import { Users, GraduationCap, MapPin, Calendar, ExternalLink, Github, Twitter, Linkedin, Globe, Award, Heart, Zap } from 'lucide-react';
45
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card';
56
import { Badge } from '@/components/ui/badge';
67
import { Button } from '@/components/ui/button';
78
import Navigation from '@/components/Navigation';
89
import { motion } from 'framer-motion';
910
import Link from 'next/link';
11+
import Image from 'next/image';
1012

1113
export default function Community() {
14+
15+
const [isLoading, setIsLoading] = useState(true);
16+
const [imageErrors, setImageErrors] = useState(new Set());
17+
18+
useEffect(() => {
19+
// Preload critical images
20+
const criticalImages = [
21+
'/Asset 1 21.png',
22+
'/Web3 JharkhandHomePage.png',
23+
'/avax_rnc1.webp'
24+
];
25+
26+
const imagePromises = criticalImages.map(src => {
27+
return new Promise((resolve, reject) => {
28+
const img = new window.Image();
29+
img.onload = resolve;
30+
img.onerror = reject;
31+
img.src = src;
32+
});
33+
});
34+
35+
Promise.allSettled(imagePromises).then(() => {
36+
setIsLoading(false);
37+
});
38+
}, []);
39+
1240
const colleges = [
1341
{
1442
name: 'BIT Mesra',
@@ -36,35 +64,35 @@ export default function Community() {
3664
location: 'Ranchi',
3765
members: '70+',
3866
status: 'Active',
39-
description: 'Interdisciplinary approach to blockchain applications'
67+
description: 'Established in 2017, SBU Ranchi aims to create new benchmarks for quality education in various fields viz. Technical, Professional, etc.'
4068
},
4169
{
42-
name: 'BIT Mesra, Lalpur',
70+
name: 'BIT Lalpur',
4371
location: 'Lalpur',
4472
members: '80+',
4573
status: 'Active',
46-
description: 'Strong focus on DeFi and smart contract development'
74+
description: 'Established in 1998, BIT Lalpur focus on developing innovative thinking among students and nurturing next-generation leaders on industry-driven curriculum '
4775
},
4876
{
4977
name: 'Arka Jain University',
5078
location: 'Jamshedpur',
5179
members: '100+',
5280
status: 'Growing',
53-
description: 'Strong focus on DeFi and smart contract development'
81+
description: 'Established in 2017, AJU aims to develop human capital - creating spirited learning environment by empowering the students with knowledge and skills'
5482
},
5583
{
5684
name: 'BIT Sindri',
5785
location: 'Dhanbad',
5886
members: '50+',
5987
status: 'Growing',
60-
description: 'Strong focus on DeFi and smart contract development'
88+
description: 'Established in 1950, BIT Sindri aim to provide the valuable human resources for the industry and society through the excellence in technical education'
6189
},
6290
{
6391
name: 'Amity University',
6492
location: 'Ranchi',
6593
members: '25+',
6694
status: 'New',
67-
description: 'Bringing Web3 education to rural areas of Jharkhand'
95+
description: 'Established in 2016, AUJ Ranchi aims to disseminate and advance knowledge and skill by providing instructional, research, and extension facilities'
6896
}
6997
];
7098

@@ -142,34 +170,38 @@ export default function Community() {
142170

143171
const communityStats = [
144172
{ label: 'Total Members', value: '1,000+' },
145-
{ label: 'College Chapters', value: '6' },
146-
{ label: 'Cities Covered', value: '4' },
173+
{ label: 'College Chapters', value: '8' },
174+
{ label: 'Cities Covered', value: '5+' },
147175
{ label: 'Total Events', value: '25+' },
148176
{ label: 'Industry Partners', value: '10+' },
149177
{ label: 'Projects Completed', value: '5+' }
150178
];
151179

152-
const images = [
153-
"/foundership_logo.png",
154-
"/solanaLogo 1.png",
155-
"/tezos-india-logo 1.png",
156-
"/AvalancheLogo_Horizontal_4C_Primary_KO.png",
157-
"/ascendex_logo.png",
158-
"/Shardeum-768x432-PhotoRoom 1.png",
159-
"/dapps 1.png",
160-
"/Group-4-7-1024x248.png",
161-
"/trans. (white)(horizontal).png",
162-
"/bg_black_small-removebg-preview 1.png",
163-
"/20230810_173627_0001-removebg-preview 1.png",
164-
"/White H.png",
165-
"/image 9.png"
180+
const partnerImages = [
181+
{ src: "/foundership_logo.png", alt: "Foundership"},
182+
{ src: "/solanaLogo 1.png", alt: "Solana" },
183+
{ src: "/tezos-india-logo 1.png", alt: "Tezos India" },
184+
{ src: "/AvalancheLogo_Horizontal_4C_Primary_KO.png", alt: "Avalanche" },
185+
{ src: "/ascendex.png", alt: "AscendEx - Crypto Exchange Partner" },
186+
{ src: "/Shardeum-768x432-PhotoRoom 1.png", alt: "Shardeum - Blockchain Partner" },
187+
{ src: "/dapps 1.png", alt: "DApps.co - Decentralized Applications Partner" },
188+
{ src: "/Group-4-7-1024x248.png", alt: "NomoEx" },
189+
{ src: "/trans. (white)(horizontal).png", alt: "Paycoin Capital" },
190+
{ src: "/bg_black_small-removebg-preview 1.png", alt: "DEVs Dungeon - Developer Community" },
191+
{ src: "/20230810_173627_0001-removebg-preview 1.png", alt: "Techavtar" },
192+
{ src: "/White H.png", alt: "Strix media" },
193+
{ src: "/image 9.png", alt: "Zuraverse" }
166194
];
167195

168196
const slideWidth = 350;
169197
const gap = 30;
170198

171-
const trainImages = [...images, ...images];
172-
const totalWidth = images.length * (slideWidth + gap);
199+
const trainImages = [...partnerImages , ...partnerImages ];
200+
const totalWidth = partnerImages.length * (slideWidth + gap);
201+
202+
const handleImageError = (src: string) => {
203+
setImageErrors(prev => new Set(prev).add(src));
204+
};
173205

174206
return (
175207
<div className="min-h-screen bg-gradient-to-br from-slate-50 to-blue-50">
@@ -248,9 +280,9 @@ export default function Community() {
248280
<span>Led by {college.lead}</span>
249281
</div> */}
250282
</div>
251-
<Button className="w-full mt-4" variant="outline">
283+
{/* <Button className="w-full mt-4" variant="outline">
252284
Join Chapter
253-
</Button>
285+
</Button> */}
254286
</CardContent>
255287
</Card>
256288
))}
@@ -291,12 +323,15 @@ export default function Community() {
291323
</div>
292324
<div className="bg-gray-50 rounded-3xl shadow-xl border border-gray-100 p-8 md:p-12 max-w-6xl mx-auto">
293325
<div className="overflow-hidden relative h-56">
294-
<motion.div
326+
<div
295327
className="flex absolute"
296328
style={{
297329
width: totalWidth * 2,
298330
gap: `${gap}px`
299331
}}
332+
>
333+
<motion.div
334+
className="flex absolute"
300335
animate={{ x: [0, -totalWidth] }}
301336
transition={{
302337
x: {
@@ -307,20 +342,20 @@ export default function Community() {
307342
}
308343
}}
309344
>
310-
{trainImages.map((src, idx) => (
345+
{trainImages.map((partner, idx) => (
311346
<div
312-
key={`${src}-${idx}`}
313-
className="flex items-center justify-center rounded-3xl"
347+
key={`${partner.src}-${idx}`}
348+
className="flex items-center justify-center rounded-3xl bg-gray-800 border-2 border-gray-700"
314349
style={{
315350
width: slideWidth,
316351
height: '200px',
317-
background: '#181818',
318-
border: '3px solid #222',
352+
// background: '#181818',
353+
// border: '3px solid #222',
319354
boxShadow: '0 6px 30px rgba(46,143,255,0.15), 0 2px 6px rgba(0,0,0,0.1)',
320355
transition: 'box-shadow 0.3s'
321356
}}
322357
>
323-
<img
358+
{/* <img
324359
src={src}
325360
alt={`Partner ${idx % images.length + 1}`}
326361
style={{
@@ -330,10 +365,31 @@ export default function Community() {
330365
borderRadius: '1rem',
331366
background: '#222'
332367
}}
333-
/>
368+
/> */}
369+
{!imageErrors.has(partner.src) ? (
370+
<Image
371+
src={partner.src}
372+
alt={partner.alt}
373+
width={320}
374+
height={170}
375+
className="object-contain rounded-xl bg-gray-900"
376+
style={{
377+
width: '95%',
378+
height: '85%',
379+
}}
380+
loading="lazy"
381+
onError={() => handleImageError(partner.src)}
382+
/>
383+
) : (
384+
<div className="text-white text-center p-4">
385+
<div className="text-gray-400">Partner Logo</div>
386+
</div>
387+
)}
334388
</div>
335389
))}
336390
</motion.div>
391+
</div>
392+
337393
</div>
338394
</div>
339395

@@ -366,7 +422,7 @@ export default function Community() {
366422
Connect with passionate developers, learn from industry experts, and build the future of Web3 in Jharkhand.
367423
</p>
368424
<div className="flex flex-col sm:flex-row gap-4 justify-center">
369-
<Link href="https://nas.io/web3jh">
425+
<Link href="https://chat.whatsapp.com/D1sSYDN7Lxn7ZUvfxoBAUi">
370426
<Button size="lg" className="bg-gradient-to-r from-orange-200 to-yellow-200 text-yellow-700 font-bold border border-white/20 text-lg rounded-xl shadow-2xl hover:shadow-2xl transition-all duration-300 hover:scale-105 hover:from-orange-300 hover:to-yellow-200 ring-1 ring-white/10 backdrop-blur-md text-center">
371427
Join Our Community
372428
<ExternalLink className="w-4 h-4 ml-2" />

app/contact/page.tsx

Lines changed: 39 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ export default function Contact() {
9898
hoverColor: 'hover:from-green-600 hover:to-green-700',
9999
textColor: 'text-green-600',
100100
bgColor: 'bg-green-100',
101-
url: 'https://nas.io/web3jh',
101+
url: 'https://chat.whatsapp.com/D1sSYDN7Lxn7ZUvfxoBAUi',
102102
icon: (
103103
<svg className="w-6 h-6" fill="currentColor" viewBox="0 0 24 24">
104104
<path d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893A11.821 11.821 0 0020.465 3.488"/>
@@ -110,18 +110,18 @@ export default function Contact() {
110110
const faqs = [
111111
{
112112
question: 'How can I join the Web3JH community?',
113-
answer: 'You can join our Community on WhatsApp, attend our Events, or reach out to the Chapter Lead at your college. All students and professionals interested in Web3 are welcome!'
113+
answer: 'You can join our Community on WhatsApp and Telegram, attend our Events, or reach out to the Chapter Lead at your college. All students and professionals interested in Web3 are welcome!'
114114
},
115115
{
116-
question: 'Are the events free to attend?',
116+
question: 'Are the events organized by Web3JH free to attend?',
117117
answer: 'Yes all our events, meetups and conferences are completely free. We have never charged the participants for any registration fees for our events.'
118118
},
119119
{
120-
question: 'Do I need prior blockchain experience?',
120+
question: 'Do I need prior blockchain experience to join Web3JH events?',
121121
answer: 'Not at all! We have events for all skill levels, from complete beginners to advanced developers.'
122122
},
123123
{
124-
question: 'Can I start a chapter at my college?',
124+
question: 'Can I start a Web3JH Chapter at my college?',
125125
answer: 'Absolutely! We\'re always looking to expand. Contact us with details about your college and we\'ll help you set up a new chapter.'
126126
},
127127
{
@@ -136,6 +136,40 @@ const toggleFAQ = (index: number) => {
136136
setOpenFAQ(openFAQ === index ? null : index);
137137
};
138138

139+
const faqStructuredData = {
140+
"@context": "https://schema.org",
141+
"@type": "FAQPage",
142+
"mainEntity": faqs.map(faq => ({
143+
"@type": "Question",
144+
"name": faq.question,
145+
"acceptedAnswer": {
146+
"@type": "Answer",
147+
"text": faq.answer
148+
}
149+
}))
150+
};
151+
152+
const contactStructuredData = {
153+
"@context": "https://schema.org",
154+
"@type": "ContactPage",
155+
"mainEntity": {
156+
"@type": "Organization",
157+
"name": "Web3 Jharkhand",
158+
"contactPoint": [
159+
{
160+
"@type": "ContactPoint",
161+
"telephone": "+91 78966 76119",
162+
"contactType": "customer service",
163+
"availableLanguage": ["English", "Hindi"]
164+
},
165+
{
166+
"@type": "ContactPoint",
167+
"email": "web3jh@gmail.com",
168+
"contactType": "customer service"
169+
}
170+
]
171+
}
172+
};
139173
// const teamContacts = [
140174
// {
141175
// name: 'Rahul Kumar',

0 commit comments

Comments
 (0)