ChandimaPrabath commited on
Commit
9d77c83
·
1 Parent(s): 57be6ff
frontend/app/games/[game_id]/page.tsx CHANGED
@@ -5,9 +5,12 @@ import { useParams } from 'next/navigation';
5
  export default function GamePage() {
6
  const { game_id } = useParams();
7
  return (
8
- <main className="pt-24">
9
- <section className="px-6 max-w-6xl mx-auto">
10
- <div className="flex flex-col md:flex-row items-center gap-12 text-gray-200">
 
 
 
11
  {game_id}
12
  </div>
13
  </section>
 
5
  export default function GamePage() {
6
  const { game_id } = useParams();
7
  return (
8
+ <main className="pt-24" data-oid="r2vzs0_">
9
+ <section className="px-6 max-w-6xl mx-auto" data-oid="0s10fd8">
10
+ <div
11
+ className="flex flex-col md:flex-row items-center gap-12 text-gray-200"
12
+ data-oid="zcmrkag"
13
+ >
14
  {game_id}
15
  </div>
16
  </section>
frontend/app/games/page.jsx CHANGED
@@ -1,42 +1,90 @@
1
  'use client';
 
 
2
  import Link from 'next/link';
 
3
 
4
  function GameCard({ game }) {
5
  return (
6
  <Link
7
  href={`/games/${game.id}`}
8
- className="border rounded-lg p-4 shadow hover:shadow-lg transition duration-300"
 
9
  >
10
- <img src={game.thumbnail} alt={game.name} className="w-full h-auto mb-4 rounded" />
11
-
12
- <h2 className="text-xl font-bold text-center text-gray-300">{game.name}</h2>
 
 
 
 
 
 
 
 
 
 
13
  </Link>
14
  );
15
  }
16
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  export default function GamesPage() {
 
18
  const dummyDataGames = [
19
- {
20
- id: '6516255',
21
- name: 'Game 1',
22
- thumbnail: 'https://placehold.in/200/dark',
23
- },
24
- { id: '6286722', name: 'Game 2', thumbnail: 'https://placehold.in/200/dark' },
25
- { id: '9745127', name: 'Game 3', thumbnail: 'https://placehold.in/200/dark' },
26
- { id: '5215644', name: 'Game 4', thumbnail: 'https://placehold.in/200/dark' },
27
- { id: '8941561', name: 'Game 5', thumbnail: 'https://placehold.in/200/dark' },
28
- { id: '2654145', name: 'Game 6', thumbnail: 'https://placehold.in/200/dark' },
29
  ];
30
 
 
 
 
 
31
  return (
32
- <main className="pt-24">
33
- <section className="px-6 max-w-6xl mx-auto">
34
- <h1 className="text-3xl font-bold mb-8 text-center text-gray-50">Games Page</h1>
35
- <div className="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-6">
36
- {dummyDataGames.map((game) => (
37
- <GameCard key={game.id} game={game} />
38
- ))}
39
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
  </section>
41
  </main>
42
  );
 
1
  'use client';
2
+
3
+ import { useState } from 'react';
4
  import Link from 'next/link';
5
+ import Image from 'next/image';
6
 
7
  function GameCard({ game }) {
8
  return (
9
  <Link
10
  href={`/games/${game.id}`}
11
+ className="group block bg-gray-900/50 p-6 rounded-xl shadow-lg hover:shadow-xl transition-shadow border border-gray-800/50 hover:border-gray-700/50"
12
+ data-oid="-pw15tw"
13
  >
14
+ <div className="overflow-hidden rounded" data-oid="vdjdonj">
15
+ <Image
16
+ src={game.thumbnail}
17
+ alt={game.name}
18
+ width={400}
19
+ height={300}
20
+ className="w-full h-auto group-hover:scale-105 transition-transform"
21
+ data-oid="xqg0_7e"
22
+ />
23
+ </div>
24
+ <h2 className="mt-4 text-xl font-bold text-center text-gray-300" data-oid="52yzjaz">
25
+ {game.name}
26
+ </h2>
27
  </Link>
28
  );
29
  }
30
 
31
+ function SearchBar({ searchQuery, setSearchQuery }) {
32
+ return (
33
+ <input
34
+ type="text"
35
+ value={searchQuery}
36
+ onChange={(e) => setSearchQuery(e.target.value)}
37
+ placeholder="Find Game"
38
+ className="w-full mb-8 text-xl font-bold text-center text-gray-300 bg-gray-900/50 p-4 rounded-xl shadow-lg transition-shadow border border-gray-800/50 hover:border-gray-700/50 focus:outline-none"
39
+ data-oid="tbh4i8z"
40
+ />
41
+ );
42
+ }
43
+
44
  export default function GamesPage() {
45
+ const [searchQuery, setSearchQuery] = useState('');
46
  const dummyDataGames = [
47
+ { id: '6516255', name: 'Game 1', thumbnail: 'https://placehold.in/400x300/dark' },
48
+ { id: '6286722', name: 'Game 2', thumbnail: 'https://placehold.in/400x300/dark' },
49
+ { id: '9745127', name: 'Game 3', thumbnail: 'https://placehold.in/400x300/dark' },
50
+ { id: '5215644', name: 'Game 4', thumbnail: 'https://placehold.in/400x300/dark' },
51
+ { id: '8941561', name: 'Game 5', thumbnail: 'https://placehold.in/400x300/dark' },
52
+ { id: '2654145', name: 'Game 6', thumbnail: 'https://placehold.in/400x300/dark' },
 
 
 
 
53
  ];
54
 
55
+ const filteredGames = dummyDataGames.filter((game) =>
56
+ game.name.toLowerCase().includes(searchQuery.toLowerCase()),
57
+ );
58
+
59
  return (
60
+ <main className="pt-24 min-h-screen" data-oid="zs-c6nn">
61
+ <section className="px-6 max-w-6xl mx-auto" data-oid="y:pdqim">
62
+ <h1
63
+ className="text-3xl font-bold mb-8 text-center text-indigo-400"
64
+ data-oid="028mndl"
65
+ >
66
+ Games
67
+ </h1>
68
+ <SearchBar
69
+ searchQuery={searchQuery}
70
+ setSearchQuery={setSearchQuery}
71
+ data-oid="a498wx2"
72
+ />
73
+
74
+ {filteredGames.length > 0 ? (
75
+ <div
76
+ className="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-6"
77
+ data-oid=":uri6s2"
78
+ >
79
+ {filteredGames.map((game) => (
80
+ <GameCard key={game.id} game={game} data-oid="gbidxtf" />
81
+ ))}
82
+ </div>
83
+ ) : (
84
+ <p className="text-center text-gray-400 text-xl" data-oid="zjxr2rg">
85
+ No games found.
86
+ </p>
87
+ )}
88
  </section>
89
  </main>
90
  );
frontend/app/layout.tsx CHANGED
@@ -8,49 +8,75 @@ const inter = Inter({ subsets: ['latin'] });
8
 
9
  export default function RootLayout({ children }: Readonly<{ children: React.ReactNode }>) {
10
  return (
11
- <html lang="en">
12
- <body className={inter.className}>
13
- <div className="min-h-screen bg-gradient-to-br from-[var(--gradient-start)] via-[var(--gradient-middle)] to-[var(--gradient-end)] flex flex-col">
14
- <nav className="px-6 py-4 bg-gray-950/90 backdrop-blur-sm fixed w-full z-50 border-b border-gray-800/50">
15
- <div className="flex justify-between items-center">
16
- <div className="flex items-center space-x-2">
17
- <div className="text-3xl font-bold text-indigo-400">∑</div>
18
- <h1 className="text-xl font-bold bg-gradient-to-r from-indigo-400 to-purple-400 bg-clip-text text-transparent">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  CAM
20
  </h1>
21
  </div>
22
- <div className="hidden md:flex space-x-6">
23
  <Link
24
  href="/"
25
  className="text-gray-300 hover:text-indigo-400 transition-colors"
 
26
  >
27
  Home
28
  </Link>
29
  <Link
30
  href="/games"
31
  className="text-gray-300 hover:text-indigo-400 transition-colors"
 
32
  >
33
  Games
34
  </Link>
35
  <Link
36
  href="#"
37
  className="text-gray-300 hover:text-indigo-400 transition-colors"
38
- >
39
- Community
40
- </Link>
41
- <Link
42
- href="#"
43
- className="text-gray-300 hover:text-indigo-400 transition-colors"
44
  >
45
  About
46
  </Link>
47
  </div>
48
  </div>
49
  </nav>
50
- <div className="flex-grow pt-[60px] pb-12">{children}</div>
51
- <footer className="mt-auto bg-gray-900 py-6">
52
- <div className="max-w-6xl mx-auto px-6 text-center text-gray-400">
53
- <p>© 2025 Community for Active Mathematics. All rights reserved.</p>
 
 
 
 
 
 
 
54
  </div>
55
  </footer>
56
  </div>
 
8
 
9
  export default function RootLayout({ children }: Readonly<{ children: React.ReactNode }>) {
10
  return (
11
+ <html lang="en" className="overflow-x-hidden" data-oid="y_yy_gm">
12
+ <head data-oid="o:gkfmp">
13
+ <meta
14
+ name="viewport"
15
+ content="width=device-width, initial-scale=1.0"
16
+ data-oid="gc:ebrh"
17
+ />
18
+ </head>
19
+ <body className={`${inter.className} overflow-x-hidden`} data-oid="30z3_82">
20
+ <div
21
+ className="min-h-screen bg-gradient-to-br from-[var(--gradient-start)] via-[var(--gradient-middle)] to-[var(--gradient-end)] flex flex-col overflow-x-hidden"
22
+ data-oid="h4_ibmx"
23
+ >
24
+ <nav
25
+ className="px-2 py-4 bg-gray-950/90 backdrop-blur-sm fixed w-full z-50 border-b border-gray-800/50"
26
+ data-oid="dy.0t:f"
27
+ >
28
+ <div className="flex justify-between items-center" data-oid="00o_-1z">
29
+ <div className="flex items-center space-x-2" data-oid="xt0_pl6">
30
+ <img
31
+ className="w-auto h-12 rounded-full"
32
+ src="images/logo.jpg"
33
+ alt="Logo"
34
+ data-oid="jtersvl"
35
+ />
36
+
37
+ <h1
38
+ className="text-xl font-bold bg-gradient-to-r from-indigo-400 to-purple-400 bg-clip-text text-transparent"
39
+ data-oid="q-amsu2"
40
+ >
41
  CAM
42
  </h1>
43
  </div>
44
+ <div className="md:flex space-x-6" data-oid=":s.vlw7">
45
  <Link
46
  href="/"
47
  className="text-gray-300 hover:text-indigo-400 transition-colors"
48
+ data-oid="ojq1h-9"
49
  >
50
  Home
51
  </Link>
52
  <Link
53
  href="/games"
54
  className="text-gray-300 hover:text-indigo-400 transition-colors"
55
+ data-oid="x2ichuj"
56
  >
57
  Games
58
  </Link>
59
  <Link
60
  href="#"
61
  className="text-gray-300 hover:text-indigo-400 transition-colors"
62
+ data-oid="309-whb"
 
 
 
 
 
63
  >
64
  About
65
  </Link>
66
  </div>
67
  </div>
68
  </nav>
69
+ <div className="flex-grow pt-[60px] pb-12" data-oid="zz7b04t">
70
+ {children}
71
+ </div>
72
+ <footer className="mt-auto bg-gray-900 py-6" data-oid="rpdqbl3">
73
+ <div
74
+ className="max-w-6xl mx-auto px-6 text-center text-gray-400"
75
+ data-oid="31a0u89"
76
+ >
77
+ <p data-oid="mlr636_">
78
+ © 2025 Community for Active Mathematics. All rights reserved.
79
+ </p>
80
  </div>
81
  </footer>
82
  </div>
frontend/app/page.tsx CHANGED
@@ -6,60 +6,121 @@ export default function Page() {
6
  const [isMenuOpen, setIsMenuOpen] = useState(false);
7
 
8
  return (
9
- <main className="pt-24">
10
- <section className="px-6 max-w-6xl mx-auto">
11
- <div className="flex flex-col md:flex-row items-center gap-12">
12
- <div className="flex-1 space-y-6">
13
- <h2 className="text-5xl font-bold text-gray-100">
14
  Making Math
15
- <span className="text-indigo-400"> Fun </span>
 
 
 
16
  and
17
- <span className="text-purple-400"> Engaging</span>
 
 
 
18
  </h2>
19
- <p className="text-lg text-gray-300">
20
  Join our vibrant community of math enthusiasts and discover a new way to
21
  learn mathematics through interactive games and creative tools.
22
  </p>
23
- <div className="flex gap-4">
24
- <button className="px-6 py-3 bg-indigo-500 text-white rounded-full hover:bg-indigo-400 transform hover:scale-105 transition-all">
 
 
 
25
  Start Learning
26
  </button>
27
- <button className="px-6 py-3 border-2 border-indigo-400 text-indigo-400 rounded-full hover:bg-indigo-950/50 transform hover:scale-105 transition-all">
 
 
 
28
  Explore Games
29
  </button>
30
  </div>
31
  </div>
32
- <div className="flex-1 relative">
33
- <div className="absolute -top-10 -left-10 w-40 h-40 bg-purple-500 rounded-full mix-blend-screen filter blur-xl opacity-20 animate-blob"></div>
34
- <div className="absolute -bottom-10 -right-10 w-40 h-40 bg-indigo-500 rounded-full mix-blend-screen filter blur-xl opacity-20 animate-blob animation-delay-2000"></div>
35
- <div className="relative">
36
- <div className="bg-gray-900/50 p-8 rounded-2xl shadow-xl transform rotate-3 hover:rotate-0 transition-transform border border-gray-800/50">
37
- <div className="grid grid-cols-2 gap-4">
38
- <div className="bg-indigo-950/50 p-4 rounded-lg border border-indigo-800/20 hover:border-indigo-700/30 transition-colors">
39
- <span className="text-2xl">🎮</span>
40
- <h3 className="font-bold text-gray-300 mt-2">Math Games</h3>
41
- <p className="text-sm text-gray-400">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
  Interactive learning through play
43
  </p>
44
  </div>
45
- <div className="bg-purple-950/50 p-4 rounded-lg border border-purple-800/20 hover:border-purple-700/30 transition-colors">
46
- <span className="text-2xl">🧮</span>
47
- <h3 className="font-bold text-gray-300 mt-2">Tools</h3>
48
- <p className="text-sm text-gray-400">
 
 
 
 
 
 
 
 
 
 
49
  Smart calculators & visualizers
50
  </p>
51
  </div>
52
- <div className="bg-pink-950/50 p-4 rounded-lg border border-pink-800/20 hover:border-pink-700/30 transition-colors">
53
- <span className="text-2xl">👥</span>
54
- <h3 className="font-bold text-gray-300 mt-2">Community</h3>
55
- <p className="text-sm text-gray-400">
 
 
 
 
 
 
 
 
 
 
56
  Learn together, grow together
57
  </p>
58
  </div>
59
- <div className="bg-blue-950/50 p-4 rounded-lg border border-blue-800/20 hover:border-blue-700/30 transition-colors">
60
- <span className="text-2xl">📈</span>
61
- <h3 className="font-bold text-gray-300 mt-2">Progress</h3>
62
- <p className="text-sm text-gray-400">
 
 
 
 
 
 
 
 
 
 
63
  Track your learning journey
64
  </p>
65
  </div>
@@ -70,37 +131,68 @@ export default function Page() {
70
  </div>
71
  </section>
72
 
73
- <section className="mt-32 px-6 max-w-6xl mx-auto">
74
- <h2 className="text-3xl font-bold text-center mb-12 text-gray-100">
 
 
 
75
  Why Choose Us?
76
  </h2>
77
- <div className="grid md:grid-cols-3 gap-8">
78
- <div className="bg-gray-900/50 p-6 rounded-xl shadow-lg hover:shadow-xl transition-shadow border border-gray-800/50 hover:border-gray-700/50">
79
- <div className="w-12 h-12 bg-indigo-950/50 rounded-full flex items-center justify-center mb-4 border border-indigo-800/20">
80
- <span className="text-2xl">🎯</span>
 
 
 
 
 
 
 
 
81
  </div>
82
- <h3 className="font-bold text-xl mb-2 text-gray-100">Engaging Content</h3>
83
- <p className="text-gray-300">
 
 
84
  Interactive games and puzzles that make learning mathematics enjoyable
85
  </p>
86
  </div>
87
- <div className="bg-gray-900/50 p-6 rounded-xl shadow-lg hover:shadow-xl transition-shadow border border-gray-800/50 hover:border-gray-700/50">
88
- <div className="w-12 h-12 bg-purple-950/50 rounded-full flex items-center justify-center mb-4 border border-purple-800/20">
89
- <span className="text-2xl">🤝</span>
 
 
 
 
 
 
 
 
90
  </div>
91
- <h3 className="font-bold text-xl mb-2 text-gray-100">Active Community</h3>
92
- <p className="text-gray-300">
 
 
93
  Connect with fellow learners and share your mathematical journey
94
  </p>
95
  </div>
96
- <div className="bg-gray-900/50 p-6 rounded-xl shadow-lg hover:shadow-xl transition-shadow border border-gray-800/50 hover:border-gray-700/50">
97
- <div className="w-12 h-12 bg-pink-950/50 rounded-full flex items-center justify-center mb-4 border border-pink-800/20">
98
- <span className="text-2xl">📱</span>
 
 
 
 
 
 
 
 
99
  </div>
100
- <h3 className="font-bold text-xl mb-2 text-gray-100">
101
  Accessible Learning
102
  </h3>
103
- <p className="text-gray-300">
104
  Learn anytime, anywhere with our mobile-friendly platform
105
  </p>
106
  </div>
 
6
  const [isMenuOpen, setIsMenuOpen] = useState(false);
7
 
8
  return (
9
+ <main className="pt-24" data-oid="suia.sz">
10
+ <section className="px-6 max-w-6xl mx-auto" data-oid="2-lkb6_">
11
+ <div className="flex flex-col md:flex-row items-center gap-12" data-oid="5_cs3qr">
12
+ <div className="flex-1 space-y-6" data-oid="22w2g86">
13
+ <h2 className="text-5xl font-bold text-gray-100" data-oid="a5tp9dq">
14
  Making Math
15
+ <span className="text-indigo-400" data-oid="wyyhz:q">
16
+ {' '}
17
+ Fun{' '}
18
+ </span>
19
  and
20
+ <span className="text-purple-400" data-oid="r.en8ru">
21
+ {' '}
22
+ Engaging
23
+ </span>
24
  </h2>
25
+ <p className="text-lg text-gray-300" data-oid="1:-n1tn">
26
  Join our vibrant community of math enthusiasts and discover a new way to
27
  learn mathematics through interactive games and creative tools.
28
  </p>
29
+ <div className="flex gap-4" data-oid="6ea:zb_">
30
+ <button
31
+ className="px-6 py-3 bg-indigo-500 text-white rounded-full hover:bg-indigo-400 transform hover:scale-105 transition-all"
32
+ data-oid="1iossc7"
33
+ >
34
  Start Learning
35
  </button>
36
+ <button
37
+ className="px-6 py-3 border-2 border-indigo-400 text-indigo-400 rounded-full hover:bg-indigo-950/50 transform hover:scale-105 transition-all"
38
+ data-oid="zhnvplg"
39
+ >
40
  Explore Games
41
  </button>
42
  </div>
43
  </div>
44
+ <div className="flex-1 relative" data-oid="j2k6f07">
45
+ <div
46
+ className="absolute -top-10 -left-10 w-40 h-40 bg-purple-500 rounded-full mix-blend-screen filter blur-xl opacity-20 animate-blob"
47
+ data-oid="f2fmu7t"
48
+ ></div>
49
+ <div
50
+ className="absolute -bottom-10 -right-10 w-40 h-40 bg-indigo-500 rounded-full mix-blend-screen filter blur-xl opacity-20 animate-blob animation-delay-2000"
51
+ data-oid=".2r-tpi"
52
+ ></div>
53
+ <div className="relative" data-oid="yvx_1_b">
54
+ <div
55
+ className="bg-gray-900/50 p-8 rounded-2xl shadow-xl transform rotate-3 hover:rotate-0 transition-transform border border-gray-800/50"
56
+ data-oid="ffx:.9u"
57
+ >
58
+ <div className="grid grid-cols-2 gap-4" data-oid="4-kokh_">
59
+ <div
60
+ className="bg-indigo-950/50 p-4 rounded-lg border border-indigo-800/20 hover:border-indigo-700/30 transition-colors"
61
+ data-oid="btu80g-"
62
+ >
63
+ <span className="text-2xl" data-oid="b.dgg1n">
64
+ 🎮
65
+ </span>
66
+ <h3
67
+ className="font-bold text-gray-300 mt-2"
68
+ data-oid="gp6c-69"
69
+ >
70
+ Math Games
71
+ </h3>
72
+ <p className="text-sm text-gray-400" data-oid="5536hbh">
73
  Interactive learning through play
74
  </p>
75
  </div>
76
+ <div
77
+ className="bg-purple-950/50 p-4 rounded-lg border border-purple-800/20 hover:border-purple-700/30 transition-colors"
78
+ data-oid="-f1-lsb"
79
+ >
80
+ <span className="text-2xl" data-oid="ogg:3ik">
81
+ 🧮
82
+ </span>
83
+ <h3
84
+ className="font-bold text-gray-300 mt-2"
85
+ data-oid="-33yy7v"
86
+ >
87
+ Tools
88
+ </h3>
89
+ <p className="text-sm text-gray-400" data-oid="a4-ywx.">
90
  Smart calculators & visualizers
91
  </p>
92
  </div>
93
+ <div
94
+ className="bg-pink-950/50 p-4 rounded-lg border border-pink-800/20 hover:border-pink-700/30 transition-colors"
95
+ data-oid=".jdekr."
96
+ >
97
+ <span className="text-2xl" data-oid="v29xal7">
98
+ 👥
99
+ </span>
100
+ <h3
101
+ className="font-bold text-gray-300 mt-2"
102
+ data-oid="q:7swf-"
103
+ >
104
+ Community
105
+ </h3>
106
+ <p className="text-sm text-gray-400" data-oid="jqxkzcy">
107
  Learn together, grow together
108
  </p>
109
  </div>
110
+ <div
111
+ className="bg-blue-950/50 p-4 rounded-lg border border-blue-800/20 hover:border-blue-700/30 transition-colors"
112
+ data-oid=".vx7_k:"
113
+ >
114
+ <span className="text-2xl" data-oid="pngnsr4">
115
+ 📈
116
+ </span>
117
+ <h3
118
+ className="font-bold text-gray-300 mt-2"
119
+ data-oid="dmwcu5_"
120
+ >
121
+ Progress
122
+ </h3>
123
+ <p className="text-sm text-gray-400" data-oid="x26n:l3">
124
  Track your learning journey
125
  </p>
126
  </div>
 
131
  </div>
132
  </section>
133
 
134
+ <section className="mt-32 px-6 max-w-6xl mx-auto" data-oid="-tclr59">
135
+ <h2
136
+ className="text-3xl font-bold text-center mb-12 text-gray-100"
137
+ data-oid="s4q-vmm"
138
+ >
139
  Why Choose Us?
140
  </h2>
141
+ <div className="grid md:grid-cols-3 gap-8" data-oid="tj8uck6">
142
+ <div
143
+ className="bg-gray-900/50 p-6 rounded-xl shadow-lg hover:shadow-xl transition-shadow border border-gray-800/50 hover:border-gray-700/50"
144
+ data-oid="7nzukhb"
145
+ >
146
+ <div
147
+ className="w-12 h-12 bg-indigo-950/50 rounded-full flex items-center justify-center mb-4 border border-indigo-800/20"
148
+ data-oid="czzu3n."
149
+ >
150
+ <span className="text-2xl" data-oid="iyv1b_0">
151
+ 🎯
152
+ </span>
153
  </div>
154
+ <h3 className="font-bold text-xl mb-2 text-gray-100" data-oid="-w8s6l7">
155
+ Engaging Content
156
+ </h3>
157
+ <p className="text-gray-300" data-oid="-97m7ti">
158
  Interactive games and puzzles that make learning mathematics enjoyable
159
  </p>
160
  </div>
161
+ <div
162
+ className="bg-gray-900/50 p-6 rounded-xl shadow-lg hover:shadow-xl transition-shadow border border-gray-800/50 hover:border-gray-700/50"
163
+ data-oid="3npj5te"
164
+ >
165
+ <div
166
+ className="w-12 h-12 bg-purple-950/50 rounded-full flex items-center justify-center mb-4 border border-purple-800/20"
167
+ data-oid="tyjb-ir"
168
+ >
169
+ <span className="text-2xl" data-oid="vk38yl7">
170
+ 🤝
171
+ </span>
172
  </div>
173
+ <h3 className="font-bold text-xl mb-2 text-gray-100" data-oid="81nzq.h">
174
+ Active Community
175
+ </h3>
176
+ <p className="text-gray-300" data-oid=".11ais9">
177
  Connect with fellow learners and share your mathematical journey
178
  </p>
179
  </div>
180
+ <div
181
+ className="bg-gray-900/50 p-6 rounded-xl shadow-lg hover:shadow-xl transition-shadow border border-gray-800/50 hover:border-gray-700/50"
182
+ data-oid="yk80-ll"
183
+ >
184
+ <div
185
+ className="w-12 h-12 bg-pink-950/50 rounded-full flex items-center justify-center mb-4 border border-pink-800/20"
186
+ data-oid="itm_4uq"
187
+ >
188
+ <span className="text-2xl" data-oid="zq-aobf">
189
+ 📱
190
+ </span>
191
  </div>
192
+ <h3 className="font-bold text-xl mb-2 text-gray-100" data-oid="v6qecuk">
193
  Accessible Learning
194
  </h3>
195
+ <p className="text-gray-300" data-oid="yxyzs3b">
196
  Learn anytime, anywhere with our mobile-friendly platform
197
  </p>
198
  </div>
frontend/next.config.mjs CHANGED
@@ -2,5 +2,15 @@ import path from 'path';
2
  /** @type {import('next').NextConfig} */
3
  const nextConfig = {
4
  output: 'standalone',
 
 
 
 
 
 
 
 
 
 
5
  };
6
  export default nextConfig;
 
2
  /** @type {import('next').NextConfig} */
3
  const nextConfig = {
4
  output: 'standalone',
5
+ images:{
6
+ remotePatterns: [
7
+ {
8
+ protocol: 'https',
9
+ hostname: 'placehold.in',
10
+ port: '',
11
+ pathname: '/**',
12
+ }
13
+ ]
14
+ }
15
  };
16
  export default nextConfig;
frontend/public/images/logo.jpg ADDED