LauraMDB commited on
Commit
7d6fdce
Β·
verified Β·
1 Parent(s): 2e8e164

Adapt the page to include the information about the courses coming from this site: https://learn.mongodb.com/pages/instructor-led-training-schedule

Browse files
Files changed (7) hide show
  1. README.md +8 -5
  2. components/course-card.js +189 -0
  3. components/footer.js +82 -0
  4. components/navbar.js +54 -0
  5. index.html +129 -19
  6. script.js +93 -0
  7. style.css +9 -23
README.md CHANGED
@@ -1,10 +1,13 @@
1
  ---
2
- title: Mongodb Mastery Hub
3
- emoji: πŸ“Š
4
- colorFrom: green
5
- colorTo: pink
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
1
  ---
2
+ title: MongoDB Mastery Hub πŸš€
3
+ colorFrom: red
4
+ colorTo: green
5
+ emoji: 🐳
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite-v3
10
  ---
11
 
12
+ # Welcome to your new DeepSite project!
13
+ This project was created with [DeepSite](https://huggingface.co/deepsite).
components/course-card.js ADDED
@@ -0,0 +1,189 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>MongoMaster Academy | MongoDB Courses</title>
7
+ <link rel="stylesheet" href="style.css">
8
+ <script src="https://cdn.tailwindcss.com"></script>
9
+ <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
10
+ <script src="https://unpkg.com/feather-icons"></script>
11
+ <script src="components/navbar.js"></script>
12
+ <script src="components/footer.js"></script>
13
+ <script src="components/course-card.js"></script>
14
+ </head>
15
+ <body class="bg-gray-50">
16
+ <custom-navbar></custom-navbar>
17
+
18
+ <main class="container mx-auto px-4 py-12">
19
+ <!-- Hero Section -->
20
+ <section class="mb-16 text-center">
21
+ <h1 class="text-5xl font-bold text-gray-800 mb-6">Master MongoDB with Expert-Led Training</h1>
22
+ <p class="text-xl text-gray-600 max-w-3xl mx-auto mb-8">
23
+ Join our live, instructor-led courses and take your MongoDB skills to the next level. From beginners to advanced administrators, we've got you covered.
24
+ </p>
25
+ <div class="flex justify-center gap-4">
26
+ <a href="#upcoming-courses" class="bg-green-600 hover:bg-green-700 text-white px-6 py-3 rounded-lg font-medium transition-colors">
27
+ Browse Courses
28
+ </a>
29
+ <a href="#" class="border border-gray-300 hover:bg-gray-100 text-gray-700 px-6 py-3 rounded-lg font-medium transition-colors">
30
+ <span class="flex items-center gap-2">
31
+ <i data-feather="play-circle"></i> Watch Demo
32
+ </span>
33
+ </a>
34
+ </div>
35
+ </section>
36
+
37
+ <!-- Courses Section -->
38
+ <section id="upcoming-courses" class="mb-20">
39
+ <h2 class="text-3xl font-bold text-gray-800 mb-8 text-center">Upcoming Courses</h2>
40
+
41
+ <!-- Month Selector -->
42
+ <div class="flex justify-center mb-8">
43
+ <div class="inline-flex rounded-md shadow-sm" role="group">
44
+ <button type="button" class="month-btn active px-4 py-2 text-sm font-medium rounded-l-lg border border-gray-300 bg-gray-100 text-gray-700">
45
+ November 2025
46
+ </button>
47
+ <button type="button" class="month-btn px-4 py-2 text-sm font-medium border-t border-b border-gray-300 hover:bg-gray-50 text-gray-700">
48
+ December 2025
49
+ </button>
50
+ <button type="button" class="month-btn px-4 py-2 text-sm font-medium rounded-r-lg border border-gray-300 hover:bg-gray-50 text-gray-700">
51
+ January 2026
52
+ </button>
53
+ </div>
54
+ </div>
55
+
56
+ <!-- Month Sections -->
57
+ <div id="november-2025" class="month-section">
58
+ <h3 class="text-2xl font-semibold text-gray-800 mb-6">November 2025</h3>
59
+ <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
60
+ <custom-course-card
61
+ title="OFA400: Atlas Admin"
62
+ date="Nov 25th 2025"
63
+ time="03:00PM (UTC+00:00)"
64
+ location="Online"
65
+ link="https://learn.mongodb.com/courses/ofa400-atlas-admin?courseId=c0caf703-35d5-4a9d-a561-5db9cb7d40ee"
66
+ ></custom-course-card>
67
+ <custom-course-card
68
+ title="OFA500: Atlas API"
69
+ date="Nov 26th 2025"
70
+ time="03:00PM (UTC+00:00)"
71
+ location="Online"
72
+ link="https://learn.mongodb.com/courses/ofa500-atlas-api?courseId=4e805e95-4818-4b11-8dcb-7d77a9bfb016"
73
+ ></custom-course-card>
74
+ <custom-course-card
75
+ title="DEV400: MongoDB Developer Extension"
76
+ date="Nov 27th 2025"
77
+ time="03:00PM (UTC+00:00)"
78
+ location="Online"
79
+ link="https://learn.mongodb.com/courses/dev400-mongodb-developer-extension?courseId=f9a7be49-8f08-48c6-8b17-227ac788fd68"
80
+ ></custom-course-card>
81
+ </div>
82
+ </div>
83
+
84
+ <div id="december-2025" class="month-section hidden">
85
+ <h3 class="text-2xl font-semibold text-gray-800 mb-6">December 2025</h3>
86
+ <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
87
+ <custom-course-card
88
+ title="OA620: Ops Manager Sizing, Installation and Config"
89
+ date="Dec 1st 2025"
90
+ time="08:00AM (UTC+00:00)"
91
+ location="Online"
92
+ link="https://learn.mongodb.com/courses/oa620-ops-manager-sizing-installation-and-config?courseId=c715808d-b230-4b5a-a171-84f5abbd250c"
93
+ ></custom-course-card>
94
+ <custom-course-card
95
+ title="OA630: Self-Hosted Security"
96
+ date="Dec 1st 2025"
97
+ time="09:00AM (UTC+00:00)"
98
+ location="Online"
99
+ link="https://learn.mongodb.com/courses/oa630-self-hosted-security?courseId=a336fdd2-efe3-41cf-84b6-e27848f03ada"
100
+ ></custom-course-card>
101
+ <custom-course-card
102
+ title="OFS400: Ops Manager Admin"
103
+ date="Dec 2nd 2025"
104
+ time="08:00AM (UTC+00:00)"
105
+ location="Online"
106
+ link="https://learn.mongodb.com/courses/ofs400-ops-manager-admin?courseId=38daf3f4-d881-4d33-bab4-27b131bff43c"
107
+ ></custom-course-card>
108
+ </div>
109
+ </div>
110
+
111
+ <div id="january-2026" class="month-section hidden">
112
+ <h3 class="text-2xl font-semibold text-gray-800 mb-6">January 2026</h3>
113
+ <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
114
+ <custom-course-card
115
+ title="DEV400: MongoDB Developer Extension"
116
+ date="Jan 5th 2026"
117
+ time="01:00AM (UTC+00:00)"
118
+ location="Online"
119
+ link="https://learn.mongodb.com/courses/dev400-mongodb-developer-extension?courseId=97e2974f-4f6c-452c-975a-416cced4f9b7"
120
+ ></custom-course-card>
121
+ <custom-course-card
122
+ title="OFS400: Ops Manager Admin"
123
+ date="Jan 16th 2026"
124
+ time="09:00AM (UTC+00:00)"
125
+ location="Online"
126
+ link="https://learn.mongodb.com/courses/ofs400-ops-manager-admin?courseId=4b6ebd08-ea9a-4eba-95be-2fd830dfdfb7"
127
+ ></custom-course-card>
128
+ <custom-course-card
129
+ title="OFS400: Ops Manager Admin"
130
+ date="Jan 16th 2026"
131
+ time="03:00PM (UTC+00:00)"
132
+ location="Online"
133
+ link="https://learn.mongodb.com/courses/ofs400-ops-manager-admin?courseId=9f731561-f871-48f5-8924-d5b1e6227aab"
134
+ ></custom-course-card>
135
+ </div>
136
+ </div>
137
+ </section>
138
+
139
+ <!-- Features Section -->
140
+ <section class="mb-20">
141
+ <h2 class="text-3xl font-bold text-gray-800 mb-12 text-center">Why Learn With Us</h2>
142
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-8">
143
+ <div class="bg-white p-6 rounded-lg shadow-md hover:shadow-lg transition-shadow">
144
+ <div class="bg-green-100 w-12 h-12 rounded-full flex items-center justify-center mb-4">
145
+ <i data-feather="users" class="text-green-600"></i>
146
+ </div>
147
+ <h3 class="text-xl font-semibold text-gray-800 mb-2">Expert Instructors</h3>
148
+ <p class="text-gray-600">Learn from MongoDB-certified instructors with real-world experience.</p>
149
+ </div>
150
+ <div class="bg-white p-6 rounded-lg shadow-md hover:shadow-lg transition-shadow">
151
+ <div class="bg-blue-100 w-12 h-12 rounded-full flex items-center justify-center mb-4">
152
+ <i data-feather="clock" class="text-blue-600"></i>
153
+ </div>
154
+ <h3 class="text-xl font-semibold text-gray-800 mb-2">Flexible Scheduling</h3>
155
+ <p class="text-gray-600">Multiple time slots available to fit your schedule.</p>
156
+ </div>
157
+ <div class="bg-white p-6 rounded-lg shadow-md hover:shadow-lg transition-shadow">
158
+ <div class="bg-purple-100 w-12 h-12 rounded-full flex items-center justify-center mb-4">
159
+ <i data-feather="award" class="text-purple-600"></i>
160
+ </div>
161
+ <h3 class="text-xl font-semibold text-gray-800 mb-2">Certification</h3>
162
+ <p class="text-gray-600">Earn certificates to validate your MongoDB expertise.</p>
163
+ </div>
164
+ </div>
165
+ </section>
166
+ </main>
167
+
168
+ <custom-footer></custom-footer>
169
+
170
+ <script>
171
+ feather.replace();
172
+
173
+ // Month selector functionality
174
+ document.querySelectorAll('.month-btn').forEach(btn => {
175
+ btn.addEventListener('click', () => {
176
+ document.querySelectorAll('.month-btn').forEach(b => b.classList.remove('active', 'bg-gray-100'));
177
+ btn.classList.add('active', 'bg-gray-100');
178
+
179
+ document.querySelectorAll('.month-section').forEach(section => {
180
+ section.classList.add('hidden');
181
+ });
182
+
183
+ const monthId = btn.textContent.trim().toLowerCase().replace(' ', '-');
184
+ document.getElementById(monthId).classList.remove('hidden');
185
+ });
186
+ });
187
+ </script>
188
+ </body>
189
+ </html>
components/footer.js ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomFooter extends HTMLElement {
2
+ connectedCallback() {
3
+ this.attachShadow({ mode: 'open' });
4
+ this.shadowRoot.innerHTML = `
5
+ <style>
6
+ footer {
7
+ background-color: #f8fafc;
8
+ }
9
+ .footer-container {
10
+ max-width: 1200px;
11
+ margin: 0 auto;
12
+ }
13
+ .footer-links a {
14
+ transition: color 0.2s;
15
+ }
16
+ .footer-links a:hover {
17
+ color: #13aa52;
18
+ }
19
+ </style>
20
+ <footer class="py-12 px-6 border-t border-gray-200">
21
+ <div class="footer-container">
22
+ <div class="grid grid-cols-1 md:grid-cols-4 gap-8">
23
+ <div>
24
+ <div class="flex items-center mb-4">
25
+ <i data-feather="database" class="text-green-600 mr-2"></i>
26
+ <span class="text-xl font-bold text-gray-800">MongoMaster</span>
27
+ </div>
28
+ <p class="text-gray-600 mb-4">Master MongoDB with our expert-led courses and training programs.</p>
29
+ <div class="flex space-x-4">
30
+ <a href="#" class="text-gray-500 hover:text-green-600">
31
+ <i data-feather="twitter"></i>
32
+ </a>
33
+ <a href="#" class="text-gray-500 hover:text-green-600">
34
+ <i data-feather="linkedin"></i>
35
+ </a>
36
+ <a href="#" class="text-gray-500 hover:text-green-600">
37
+ <i data-feather="youtube"></i>
38
+ </a>
39
+ </div>
40
+ </div>
41
+
42
+ <div>
43
+ <h4 class="text-lg font-semibold text-gray-800 mb-4">Courses</h4>
44
+ <div class="footer-links flex flex-col space-y-2">
45
+ <a href="#" class="text-gray-600">Developer Courses</a>
46
+ <a href="#" class="text-gray-600">Administrator Courses</a>
47
+ <a href="#" class="text-gray-600">Advanced Courses</a>
48
+ <a href="#" class="text-gray-600">Certification</a>
49
+ </div>
50
+ </div>
51
+
52
+ <div>
53
+ <h4 class="text-lg font-semibold text-gray-800 mb-4">Company</h4>
54
+ <div class="footer-links flex flex-col space-y-2">
55
+ <a href="#" class="text-gray-600">About Us</a>
56
+ <a href="#" class="text-gray-600">Instructors</a>
57
+ <a href="#" class="text-gray-600">Careers</a>
58
+ <a href="#" class="text-gray-600">Contact</a>
59
+ </div>
60
+ </div>
61
+
62
+ <div>
63
+ <h4 class="text-lg font-semibold text-gray-800 mb-4">Legal</h4>
64
+ <div class="footer-links flex flex-col space-y-2">
65
+ <a href="#" class="text-gray-600">Privacy Policy</a>
66
+ <a href="#" class="text-gray-600">Terms of Service</a>
67
+ <a href="#" class="text-gray-600">Refund Policy</a>
68
+ </div>
69
+ </div>
70
+ </div>
71
+
72
+ <div class="border-t border-gray-200 mt-8 pt-8 text-center text-gray-500">
73
+ <p>&copy; ${new Date().getFullYear()} MongoMaster Academy. All rights reserved.</p>
74
+ </div>
75
+ </div>
76
+ </footer>
77
+ <script>feather.replace();</script>
78
+ `;
79
+ }
80
+ }
81
+
82
+ customElements.define('custom-footer', CustomFooter);
components/navbar.js ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomNavbar extends HTMLElement {
2
+ connectedCallback() {
3
+ this.attachShadow({ mode: 'open' });
4
+ this.shadowRoot.innerHTML = `
5
+ <style>
6
+ nav {
7
+ background-color: white;
8
+ box-shadow: 0 2px 4px rgba(0,0,0,0.1);
9
+ }
10
+ .nav-container {
11
+ max-width: 1200px;
12
+ margin: 0 auto;
13
+ }
14
+ .logo-text {
15
+ background: linear-gradient(90deg, #13aa52 0%, #027d46 100%);
16
+ -webkit-background-clip: text;
17
+ background-clip: text;
18
+ color: transparent;
19
+ }
20
+ @media (max-width: 768px) {
21
+ .nav-links {
22
+ display: none;
23
+ }
24
+ .mobile-menu {
25
+ display: block;
26
+ }
27
+ }
28
+ </style>
29
+ <nav class="py-4 px-6">
30
+ <div class="nav-container flex justify-between items-center">
31
+ <a href="/" class="flex items-center">
32
+ <i data-feather="database" class="text-green-600 mr-2"></i>
33
+ <span class="text-xl font-bold logo-text">MongoMaster</span>
34
+ </a>
35
+
36
+ <div class="nav-links flex items-center space-x-6">
37
+ <a href="/" class="text-gray-700 hover:text-green-600 transition-colors font-medium">Home</a>
38
+ <a href="#" class="text-gray-700 hover:text-green-600 transition-colors font-medium">Courses</a>
39
+ <a href="#" class="text-gray-700 hover:text-green-600 transition-colors font-medium">Resources</a>
40
+ <a href="#" class="text-gray-700 hover:text-green-600 transition-colors font-medium">About</a>
41
+ <a href="#" class="bg-green-600 hover:bg-green-700 text-white px-4 py-2 rounded-md font-medium transition-colors">Sign In</a>
42
+ </div>
43
+
44
+ <button class="mobile-menu hidden text-gray-700">
45
+ <i data-feather="menu"></i>
46
+ </button>
47
+ </div>
48
+ </nav>
49
+ <script>feather.replace();</script>
50
+ `;
51
+ }
52
+ }
53
+
54
+ customElements.define('custom-navbar', CustomNavbar);
index.html CHANGED
@@ -1,19 +1,129 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>MongoMaster Academy | MongoDB Courses</title>
7
+ <link rel="stylesheet" href="style.css">
8
+ <script src="https://cdn.tailwindcss.com"></script>
9
+ <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
10
+ <script src="https://unpkg.com/feather-icons"></script>
11
+ <script src="components/navbar.js"></script>
12
+ <script src="components/footer.js"></script>
13
+ <script src="components/course-card.js"></script>
14
+ </head>
15
+ <body class="bg-gray-50">
16
+ <custom-navbar></custom-navbar>
17
+
18
+ <main class="container mx-auto px-4 py-12">
19
+ <!-- Hero Section -->
20
+ <section class="mb-16 text-center">
21
+ <h1 class="text-5xl font-bold text-gray-800 mb-6">Master MongoDB with Expert-Led Training</h1>
22
+ <p class="text-xl text-gray-600 max-w-3xl mx-auto mb-8">
23
+ Join our live, instructor-led courses and take your MongoDB skills to the next level. From beginners to advanced administrators, we've got you covered.
24
+ </p>
25
+ <div class="flex justify-center gap-4">
26
+ <a href="#upcoming-courses" class="bg-green-600 hover:bg-green-700 text-white px-6 py-3 rounded-lg font-medium transition-colors">
27
+ Browse Courses
28
+ </a>
29
+ <a href="#" class="border border-gray-300 hover:bg-gray-100 text-gray-700 px-6 py-3 rounded-lg font-medium transition-colors">
30
+ <span class="flex items-center gap-2">
31
+ <i data-feather="play-circle"></i> Watch Demo
32
+ </span>
33
+ </a>
34
+ </div>
35
+ </section>
36
+ <!-- Courses Section -->
37
+ <section id="upcoming-courses" class="mb-20">
38
+ <h2 class="text-3xl font-bold text-gray-800 mb-8 text-center">Upcoming Courses</h2>
39
+
40
+ <!-- Month Selector -->
41
+ <div class="flex justify-center mb-8">
42
+ <div class="inline-flex rounded-md shadow-sm" role="group">
43
+ <button type="button" class="month-btn active px-4 py-2 text-sm font-medium rounded-l-lg border border-gray-300 bg-gray-100 text-gray-700">
44
+ Current Month
45
+ </button>
46
+ <button type="button" class="month-btn px-4 py-2 text-sm font-medium border-t border-b border-gray-300 hover:bg-gray-50 text-gray-700">
47
+ Next Month
48
+ </button>
49
+ <button type="button" class="month-btn px-4 py-2 text-sm font-medium rounded-r-lg border border-gray-300 hover:bg-gray-50 text-gray-700">
50
+ Following Month
51
+ </button>
52
+ </div>
53
+ </div>
54
+
55
+ <!-- Month Sections -->
56
+ <div id="current-month" class="month-section">
57
+ <h3 class="text-2xl font-semibold text-gray-800 mb-6">Current Month Courses</h3>
58
+ <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6" id="current-month-courses">
59
+ <!-- Courses will be loaded dynamically from MongoDB API -->
60
+ </div>
61
+ </div>
62
+
63
+ <div id="next-month" class="month-section hidden">
64
+ <h3 class="text-2xl font-semibold text-gray-800 mb-6">Next Month Courses</h3>
65
+ <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6" id="next-month-courses">
66
+ <!-- Courses will be loaded dynamically from MongoDB API -->
67
+ </div>
68
+ </div>
69
+
70
+ <div id="following-month" class="month-section hidden">
71
+ <h3 class="text-2xl font-semibold text-gray-800 mb-6">Following Month Courses</h3>
72
+ <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6" id="following-month-courses">
73
+ <!-- Courses will be loaded dynamically from MongoDB API -->
74
+ </div>
75
+ </div>
76
+ </section>
77
+
78
+ <!-- Features Section -->
79
+ <section class="mb-20">
80
+ <h2 class="text-3xl font-bold text-gray-800 mb-12 text-center">Why Learn With Us</h2>
81
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-8">
82
+ <div class="bg-white p-6 rounded-lg shadow-md hover:shadow-lg transition-shadow">
83
+ <div class="bg-green-100 w-12 h-12 rounded-full flex items-center justify-center mb-4">
84
+ <i data-feather="users" class="text-green-600"></i>
85
+ </div>
86
+ <h3 class="text-xl font-semibold text-gray-800 mb-2">Expert Instructors</h3>
87
+ <p class="text-gray-600">Learn from MongoDB-certified instructors with real-world experience.</p>
88
+ </div>
89
+ <div class="bg-white p-6 rounded-lg shadow-md hover:shadow-lg transition-shadow">
90
+ <div class="bg-blue-100 w-12 h-12 rounded-full flex items-center justify-center mb-4">
91
+ <i data-feather="clock" class="text-blue-600"></i>
92
+ </div>
93
+ <h3 class="text-xl font-semibold text-gray-800 mb-2">Flexible Scheduling</h3>
94
+ <p class="text-gray-600">Multiple time slots available to fit your schedule.</p>
95
+ </div>
96
+ <div class="bg-white p-6 rounded-lg shadow-md hover:shadow-lg transition-shadow">
97
+ <div class="bg-purple-100 w-12 h-12 rounded-full flex items-center justify-center mb-4">
98
+ <i data-feather="award" class="text-purple-600"></i>
99
+ </div>
100
+ <h3 class="text-xl font-semibold text-gray-800 mb-2">Certification</h3>
101
+ <p class="text-gray-600">Earn certificates to validate your MongoDB expertise.</p>
102
+ </div>
103
+ </div>
104
+ </section>
105
+ </main>
106
+
107
+ <custom-footer></custom-footer>
108
+
109
+ <script>
110
+ feather.replace();
111
+
112
+ // Month selector functionality
113
+ document.querySelectorAll('.month-btn').forEach(btn => {
114
+ btn.addEventListener('click', () => {
115
+ document.querySelectorAll('.month-btn').forEach(b => b.classList.remove('active', 'bg-gray-100'));
116
+ btn.classList.add('active', 'bg-gray-100');
117
+
118
+ document.querySelectorAll('.month-section').forEach(section => {
119
+ section.classList.add('hidden');
120
+ });
121
+
122
+ const monthId = btn.textContent.trim().toLowerCase().replace(' ', '-');
123
+ document.getElementById(monthId).classList.remove('hidden');
124
+ });
125
+ });
126
+ </script>
127
+ <script src="https://huggingface.co/deepsite/deepsite-badge.js"></script>
128
+ </body>
129
+ </html>
script.js ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ // Main JavaScript functionality
3
+ document.addEventListener('DOMContentLoaded', async () => {
4
+ // Fetch courses from MongoDB API
5
+ async function fetchCourses() {
6
+ try {
7
+ const response = await fetch('https://learn.mongodb.com/api/v1/instructor-led-training-schedule');
8
+ const data = await response.json();
9
+ return data.courses;
10
+ } catch (error) {
11
+ console.error('Error fetching courses:', error);
12
+ return [];
13
+ }
14
+ }
15
+
16
+ // Group courses by month
17
+ function groupCoursesByMonth(courses) {
18
+ const now = new Date();
19
+ const currentMonth = now.getMonth();
20
+ const currentYear = now.getFullYear();
21
+
22
+ const grouped = {
23
+ current: [],
24
+ next: [],
25
+ following: []
26
+ };
27
+
28
+ courses.forEach(course => {
29
+ const courseDate = new Date(course.startDate);
30
+ const courseMonth = courseDate.getMonth();
31
+ const courseYear = courseDate.getFullYear();
32
+
33
+ if (courseYear === currentYear) {
34
+ if (courseMonth === currentMonth) {
35
+ grouped.current.push(course);
36
+ } else if (courseMonth === currentMonth + 1) {
37
+ grouped.next.push(course);
38
+ } else if (courseMonth === currentMonth + 2) {
39
+ grouped.following.push(course);
40
+ }
41
+ }
42
+ });
43
+
44
+ return grouped;
45
+ }
46
+
47
+ // Render courses to the DOM
48
+ function renderCourses(courses, containerId) {
49
+ const container = document.getElementById(containerId);
50
+ container.innerHTML = '';
51
+
52
+ if (courses.length === 0) {
53
+ container.innerHTML = '<p class="text-gray-600">No courses scheduled for this period.</p>';
54
+ return;
55
+ }
56
+
57
+ courses.forEach(course => {
58
+ const card = document.createElement('custom-course-card');
59
+ card.setAttribute('title', course.title);
60
+ card.setAttribute('date', new Date(course.startDate).toLocaleDateString('en-US', {
61
+ month: 'short',
62
+ day: 'numeric',
63
+ year: 'numeric'
64
+ }));
65
+ card.setAttribute('time', course.time);
66
+ card.setAttribute('location', course.location);
67
+ card.setAttribute('link', course.link);
68
+ container.appendChild(card);
69
+ });
70
+ }
71
+
72
+ // Initialize the page
73
+ async function init() {
74
+ const courses = await fetchCourses();
75
+ const groupedCourses = groupCoursesByMonth(courses);
76
+
77
+ renderCourses(groupedCourses.current, 'current-month-courses');
78
+ renderCourses(groupedCourses.next, 'next-month-courses');
79
+ renderCourses(groupedCourses.following, 'following-month-courses');
80
+
81
+ // Update month selector labels with actual month names
82
+ const now = new Date();
83
+ const monthNames = ['January', 'February', 'March', 'April', 'May', 'June',
84
+ 'July', 'August', 'September', 'October', 'November', 'December'];
85
+
86
+ const buttons = document.querySelectorAll('.month-btn');
87
+ buttons[0].textContent = monthNames[now.getMonth()];
88
+ buttons[1].textContent = monthNames[(now.getMonth() + 1) % 12];
89
+ buttons[2].textContent = monthNames[(now.getMonth() + 2) % 12];
90
+ }
91
+
92
+ init();
93
+ });
style.css CHANGED
@@ -1,28 +1,14 @@
 
1
  body {
2
- padding: 2rem;
3
- font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif;
4
  }
5
 
6
- h1 {
7
- font-size: 16px;
8
- margin-top: 0;
 
9
  }
10
 
11
- p {
12
- color: rgb(107, 114, 128);
13
- font-size: 15px;
14
- margin-bottom: 10px;
15
- margin-top: 5px;
16
- }
17
-
18
- .card {
19
- max-width: 620px;
20
- margin: 0 auto;
21
- padding: 16px;
22
- border: 1px solid lightgray;
23
- border-radius: 16px;
24
- }
25
-
26
- .card p:last-child {
27
- margin-bottom: 0;
28
- }
 
1
+ /* Custom styles */
2
  body {
3
+ font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
 
4
  }
5
 
6
+ /* Animation for course cards */
7
+ @keyframes fadeIn {
8
+ from { opacity: 0; transform: translateY(20px); }
9
+ to { opacity: 1; transform: translateY(0); }
10
  }
11
 
12
+ .month-section {
13
+ animation: fadeIn 0.5s ease-out forwards;
14
+ }