diff --git a/assets/committee/topu.jpg b/assets/committee/topu.jpg new file mode 100644 index 0000000..9f99a70 Binary files /dev/null and b/assets/committee/topu.jpg differ diff --git a/script.js b/script.js index 94bbbe9..fc501e7 100644 --- a/script.js +++ b/script.js @@ -1,5 +1,11 @@ const FORMSPREE_ID = "xdkvyoqy"; +const CLUB_PHOTOS = [ + "https://images.unsplash.com/photo-1739675242031-cb6c3b076e4f?q=80&w=1951&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", + "https://images.unsplash.com/photo-1727038104520-7249a8635fcf?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1yZWxhdGVkfDJ8fHxlbnwwfHx8fHw%3D", + "https://images.unsplash.com/photo-1748861306630-e992b1b39627?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1yZWxhdGVkfDV8fHxlbnwwfHx8fHw%3D" +]; + const SITE_DATA = { name: { en: "Notre Dame College Math Club", bn: "নটর ডেম কলেজ গণিত ক্লাব" }, college: { en: "Notre Dame College Mymensingh", bn: "নটর ডেম কলেজ ময়মনসিংহ" }, @@ -8,7 +14,7 @@ const SITE_DATA = { address: { en: "City Bypass, Barera, Mymensingh", bn: "সিটি বাইপাস, বাড়েরা, ময়মনসিংহ" }, copyright: { en: "All rights reserved.", bn: "সর্বস্বত্ত্ব সংরক্ষিত।"}, phone: { en: "+880 1896-135846", bn: "+৮৮০ ১৮৯৬-৩২১৯৭০"}, - year: { en: "2025", bn: "২০২৫"}, + year: { en: "2026", bn: "২০২৬"}, location: { en: "Mymensingh", bn: "ময়মনসিংহ"}, events: { en: "Lectures, workshops and competitions.", bn: "লেকচার, কর্মশালা এবং প্রতিযোগিতা"}, host: { en: "Want to host a talk?", bn: "আলোচক হতে আগ্রহী?" }, @@ -36,6 +42,8 @@ const DICTIONARY = { 'view_schedule': { en: 'View Schedule', bn: 'সময়সূচী দেখুন' }, 'register': { en: 'Register', bn: 'রেজিস্ট্রেশন' }, 'rsvp': { en: 'RSVP', bn: 'অংশগ্রহণ' }, + 'activities': {en: 'Our Activities', bn: 'আমাদের কার্যক্রম' }, + 'view': {en: 'View', bn: 'দেখুন'}, 'submit_proposal': { en: 'Submit Proposal', bn: 'প্রস্তাবনা জমা দিন' }, 'send_message': { en: 'Send Message', bn: 'বার্তা পাঠান' }, 'name': { en: 'Name', bn: 'নাম' }, @@ -77,41 +85,16 @@ const NEWS_SLIDES = [ const EVENTS = [ { - title: { en: "Lectures on Mathematical Notations and their usage", bn: "গাণিতিক চিহ্নসমূহ ও তাদের ব্যবহারবিধি নিয়ে আলোচনা" }, + title: { en: "Lectures on Mathematical Notations", bn: "গাণিতিক চিহ্নসমূহ ও তাদের ব্যবহারবিধি" }, date: { en: "DEC 10", bn: "১০ ডিসেম্বর" }, time: { en: "12:00 PM", bn: "দুপুর ১২:০০" }, location: { en: "Room 402", bn: "৪০২ নং কক্ষ" }, type: { en: "Lecture", bn: "লেকচার" }, - desc: { en: "Showing the notations that are frequently being used in Mathematics and make our calculation easier or how we can derrive a formula from calculations.", bn: "গাণিতিক প্রতীকের সাথে পরিচিত করানো যেগুলো প্রায়ই গণিতে ব্যবহৃত হচ্ছে এবং আমাদের হিসেবকে কিভাবে সহজ করছে কিংবা গাণিতিক সমাধান করে কিভাবে আমরা সূত্র নিয়ে আসতে পারি সেগুলো ব্যবহার করে।" }, - color: "bg-blue-100 text-blue-800" + desc: { en: "Exploring notations that simplify complex calculations.", bn: "গাণিতিক প্রতীকের সাথে পরিচিতি যা গণনাকে সহজ করে।" }, + color: "bg-blue-100 text-blue-800", + banner: "https://images.unsplash.com/photo-1739675242031-cb6c3b076e4f?q=80&w=1951&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", + rsvpLink: "https://forms.gle/your-link" } - /*{ - title: { en: "Inter-College Integration Bee", bn: "আন্তঃকলেজ ইন্টিগ্রেশন বি" }, - date: { en: "NOV 02", bn: "০২ নভেম্বর" }, - time: { en: "2:30 PM", bn: "দুপুর ২:৩০" }, - location: { en: "Main Hall", bn: "মেইন হল" }, - type: { en: "Competition", bn: "প্রতিযোগিতা" }, - desc: { en: "Test your calculus skills against the best minds in Mymensingh.", bn: "ময়মনসিংহের সেরা মেধাবীদের সাথে আপনার ক্যালকুলাস দক্ষতা যাচাই করুন।" }, - color: "bg-purple-100 text-purple-800" - }, - { - title: { en: "Math Olympiad Prep", bn: "গণিত অলিম্পিয়াড প্রস্তুতি" }, - date: { en: "NOV 10", bn: "১০ নভেম্বর" }, - time: { en: "3:00 PM", bn: "বিকেল ৩:০০" }, - location: { en: "Room 201", bn: "কক্ষ ২০১" }, - type: { en: "Workshop", bn: "কর্মশালা" }, - desc: { en: "Problem-solving strategies for the upcoming National Math Olympiad.", bn: "আসন্ন জাতীয় গণিত অলিম্পিয়াডের জন্য সমস্যা সমাধানের কৌশল।" }, - color: "bg-orange-100 text-orange-800" - }, - { - title: { en: "Intro to Topology", bn: "টপোলজির পরিচিতি" }, - date: { en: "NOV 18", bn: "১৮ নভেম্বর" }, - time: { en: "4:00 PM", bn: "বিকেল ৪:০০" }, - location: { en: "College Auditorium", bn: "কলেজ অডিটোরিয়াম" }, - type: { en: "Lecture", bn: "লেকচার" }, - desc: { en: "Understanding shapes, surfaces, and why a coffee mug is a donut.", bn: "আকৃতি, তল এবং কেন একটি কফি মগ একটি ডোনাটের সমান তা বোঝা।" }, - color: "bg-blue-100 text-blue-800" - }*/ ]; const RESOURCES = [ @@ -127,7 +110,6 @@ const RESOURCES = [ { title: "Reducible", type: {en: "Video", bn: "ভিডিও"}, desc: {en: "All about animating computer science concepts in a fun, interactive, and intuitive manner.", bn: "কম্পিউটার বিজ্ঞানের ধারণাগুলোকে মজার, অংশগ্রহণভিত্তিক এবং সহজবোধ্যভাবে গতিশীল চিত্রের মাধ্যমে উপস্থাপন করা।"}, link: "https://www.youtube.com/@Reducible" }, { title: "Chamok Hasan", type: {en: "Video", bn: "ভিডিও"}, desc: {en: "Represnting the entire beauty and arising love for Mathematics through interactive discussion", bn: "অনশগ্রহনভিত্তিক আলোচনার মাধ্যমে গণিতের সম্পূর্ণ সৌন্দর্য উপস্থাপন করা এবং গণিতের প্রতি ভালোবাসা জাগিয়ে তোলা।"}, link: "https://www.youtube.com/@ChamokHasan"}, { title: "BdMO", type:{en: "Catalog", bn: "তালিকা"}, desc: {en: "Math Olmypiad Booklists and Resources", bn: "গণিত অলিম্পিয়াডের বইয়ের তালিকা ও উপকরণসমূহ"}, link: "https://matholympiad.org.bd/math-related-book-list"} - ]; const ARTICLES = [ @@ -143,24 +125,9 @@ const ARTICLES = [ bn: "ভাবুন এমন একটি হোটেল যার কক্ষ সংখ্যা অসীম এবং সবগুলোই পূর্ণ। নতুন অতিথি এলে কি হবে?" }, image: "https://imgs.search.brave.com/eya5oUzh8bfOlXm79fOZbzgGjQYzYCovr_CWi1zfQRA/rs:fit:860:0:0:0/g:ce/aHR0cHM6Ly9tZWRp/YS1tYW5hZ2VyLnN0/YXJzaW5zaWRlci5j/b20vZ2FsbGVyeS8x/MDgwL25hXzY3ZGFk/NGMyZjM0MzkuanBn", - content: { - en: ` -
Hilbert's paradox of the Grand Hotel is a thought experiment which illustrates a counterintuitive property of infinite sets.
-Consider a hotel with a countably infinite number of rooms, all of which are occupied. One might think that the hotel cannot accommodate any newly arriving guests. However, we can accommodate a new guest by moving the guest in room $n$ to room $n+1$.
-This leaves room 1 empty for the new guest. This works because the set of integers $\\mathbb{Z}$ has the same cardinality as the set of natural numbers $\\mathbb{N}$.
- `, - bn: ` -হিলবার্টের গ্র্যান্ড হোটেলের প্যারাডক্স অসীম সেটের একটি অদ্ভুত বৈশিষ্ট্য তুলে ধরে।
-ধরুন একটি হোটেলে অসীম সংখ্যক কক্ষ আছে এবং সবগুলোই পূর্ণ। আমরা মনে করতে পারি নতুন কোনো অতিথিকে জায়গা দেওয়া সম্ভব নয়। কিন্তু, আমরা যদি $n$ নম্বর কক্ষের অতিথিকে $n+1$ নম্বর কক্ষে পাঠিয়ে দেই:
-তাহলে ১ নম্বর কক্ষটি খালি হয়ে যায়। এটি সম্ভব কারণ পূর্ণসংখ্যা $\\mathbb{Z}$ এবং স্বাভাবিক সংখ্যা $\\mathbb{N}$ এর কার্ডিনালিটি সমান।
- ` + en: `Hilbert's paradox of the Grand Hotel is a thought experiment...
`, + bn: `হিলবার্টের গ্র্যান্ড হোটেলের প্যারাডক্স অসীম সেটের একটি অদ্ভুত বৈশিষ্ট্য তুলে ধরে।
` } }, { @@ -173,24 +140,124 @@ const ARTICLES = [ desc: { en: "Combining e, i, pi, 1, and 0 into a single elegant statement.", bn: "e, i, pi, 1 এবং 0 এর এক বিস্ময়কর মিলন।" }, image: "https://cdn.mos.cms.futurecdn.net/cv2W6h6obxouAgNzfnJ6w3-700-80.jpg.webp", content: { - en: ` -Often called the most beautiful equation in mathematics, Euler's identity connects five fundamental constants:
-It is a special case of Euler's formula, which states that for any real number $x$:
-গণিতের সবচেয়ে সুন্দর সমীকরণ হিসেবে পরিচিত অয়লারের অভেদ পাঁচটি মৌলিক ধ্রুবককে সংযুক্ত করে:
-এটি অয়লারের সূত্রের একটি বিশেষ রূপ, যেখানে যেকোনো বাস্তব সংখ্যা $x$ এর জন্য:
-Often called the most beautiful equation in mathematics...
`, + bn: `গণিতের সবচেয়ে সুন্দর সমীকরণ হিসেবে পরিচিত অয়লারের অভেদ পাঁচটি মৌলিক ধ্রুবককে সংযুক্ত করে:
` } - } + }, + { + id: 103, + title: { + en: "Combinatorics: The Art of Clever Counting", + bn: "কম্বিনেটরিক্স: চতুর গণনার শিল্প" + }, + author: { + en: "Md Radif Hasan", + bn: "মোঃ রাদিফ হাসান" + }, + role: { en: "President", bn: "সভাপতি" }, + date: { + en: "March 28, 2026", + bn: "২৮ মার্চ, ২০২৬" + }, + readTime: { + en: "6 min read", + bn: "৬ মিনিট পাঠ" + }, + desc: { + en: "Discover the beautiful world of counting, arrangements, and selections that powers probability, computer science, and olympiad mathematics.", + bn: "গণনা, বিন্যাস ও নির্বাচনের সুন্দর জগত আবিষ্কার করুন — যা সম্ভাবনা, কম্পিউটার বিজ্ঞান এবং অলিম্পিয়াড গণিতকে চালিত করে।" + }, + image: "https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1679762948968%2F0735e987-8bdb-41cf-9b3d-63acddd282e9.png%3Fw%3D1600%26h%3D840%26fit%3Dcrop%26crop%3Dentropy%26auto%3Dcompress%2Cformat%26format%3Dwebp&f=1&nofb=1&ipt=9c6d9914341e12997390b7ab6950959691246968574f899d77a2f3f1a357919f", + content: { + bn: ` +কম্বিনেটরিক্স হলো গণিতের সেই শাখা যেখানে আমরা শিখি কীভাবে চতুর উপায়ে গণনা করতে হয়। এটি সীমিত বস্তুসমূহের বিন্যাস, নির্বাচন এবং সম্ভাবনা নিয়ে কাজ করে।
+ +১. গুণন নীতি (Multiplication Principle)
+যদি একটি কাজ m ভাবে এবং আরেকটি কাজ n ভাবে করা যায়, তাহলে দুটি একসাথে m × n ভাবে করা যায়।
+উদাহরণ: ৩টি শার্ট ও ৪টি প্যান্ট থেকে কত রকমের পোশাক? উত্তর: ১২টি।
+২. বিন্যাস (Permutation)
+$$ P(n, r) = \\frac{n!}{(n - r)!} $$ — nটি জিনিস থেকে rটি সাজানোর উপায়।
+৩. সমাবেশ (Combination)
+$$ C(n, r) = \\frac{n!}{r!(n - r)!} $$ — ক্রম ছাড়া নির্বাচনের সংখ্যা।
+যদি পায়রার সংখ্যা খোপের চেয়ে বেশি হয়, তাহলে অন্তত একটি খোপে দুইয়ের বেশি পায়রা থাকবে।
+উদাহরণ: ৩৬৭ জন মানুষের মধ্যে অন্তত দু’জনের জন্মদিন একই দিনে পড়বে।
+ +১. হ্যান্ডশেক সমস্যা: ১০ জনের পার্টিতে প্রত্যেকে প্রত্যেকের সাথে হাত মেলালে মোট কতটি হ্যান্ডশেক হবে?
+২. সিঁড়ি ভাঙা: ১ বা ২ ধাপ করে ১০ ধাপের সিঁড়ি কতভাবে ভাঙা যায়? (ফিবোনাচ্চি সংখ্যা!)
+ +কম্বিনেটরিক্স আমাদের শেখায় যে — সাধারণ গণনাও গভীর আবিষ্কারের দিকে নিয়ে যেতে পারে।
+আমাদের ম্যাথ ক্লাবে আমরা নিয়মিত কম্বিনেটরিক্সের সমস্যা নিয়ে আলোচনা করি। তুমিও তোমার প্রিয় কম্বিনেটরিক্স সমস্যাটি পরবর্তী মিটিংয়ে শেয়ার করো!
+ `, + en: `Combinatorics is the branch of mathematics where we learn how to count in clever ways. It deals with the arrangement, selection, and probability of finite sets of objects.
+ +1. Multiplication Principle
+If one task can be performed in $m$ ways and another task can be performed in $n$ ways, then both tasks together can be performed in $m \\times n$ ways.
+Example: How many outfits can you make from 3 shirts and 4 pants? Answer: 12.
+2. Permutation
+$$ P(n, r) = \\frac{n!}{(n - r)!} $$ — The number of ways to arrange $r$ items from a set of $n$ items where order matters.
+3. Combination
+$$ C(n, r) = \\frac{n!}{r!(n - r)!} $$ — The number of ways to select $r$ items from a set of $n$ items where order does not matter.
+If you have more pigeons than pigeonholes, then at least one pigeonhole must contain more than one pigeon.
+Example: Among 367 people, at least two people must share the same birthday.
+ +1. The Handshake Problem: If everyone at a party of 10 people shakes hands with everyone else, how many handshakes occur in total?
+2. Climbing Stairs: In how many ways can you climb a staircase of 10 steps if you can take either 1 or 2 steps at a time? (Hint: Fibonacci numbers!)
+ +Combinatorics teaches us that even simple counting can lead to profound mathematical discoveries.
+In our Math Club, we regularly discuss fascinating combinatorial problems. Why not share your favorite one at our next meeting?
+ ` + } +} + ]; const COMMITTEE = [ @@ -199,13 +266,9 @@ const COMMITTEE = [ { name: {en: "Fahmid Rahman Sakif", bn: "ফাহমিদ রহমান সাকিফ"}, pos: {en: "General Secretary", bn: "সাধারণ সম্পাদক"}, group: {en: 'Science 1', bn: 'বিজ্ঞান ১'}, img: "https://api.dicebear.com/7.x/initials/svg?seed=FS&backgroundColor=b45309" }, { name: {en: "Arif Mahmud Fahad", bn: "আরিফ মাহমুদ ফাহাদ"}, pos: {en: "Organizing Secretary", bn: "সাংগঠনিক সম্পাদক"}, group: {en: 'Science 1', bn: 'বিজ্ঞান ১'}, img: "./assets/committee/fahad.jpg" }, { name: {en: "Syedul Mursalin", bn: "সাইয়্যেদুল মুরসালিন"}, pos: {en: "General Member Representative", bn: "সাধারণ সদস্য প্রতিনিধি"}, group: {en: 'Science 1', bn: 'বিজ্ঞান ১'}, img: "./assets/committee/mursalin.jpg" }, - { name: {en: "Masadunnobi Tapu", bn: "মাসাদুন্নবী তপু"}, pos: {en: "Publicity Secretary", bn: "প্রচার সম্পাদক"}, group: {en: 'Science 5', bn: 'বিজ্ঞান ৫'}, img: "https://api.dicebear.com/7.x/initials/svg?seed=MT&backgroundColor=b45309" }, + { name: {en: "Masadunnobi Topu", bn: "মাসাদুন্নবী তপু"}, pos: {en: "Publicity Secretary", bn: "প্রচার সম্পাদক"}, group: {en: 'Science 5', bn: 'বিজ্ঞান ৫'}, img: "./assets/committee/topu.jpg" }, { name: {en: "Siyam Sheikh", bn: "সিয়াম শেখ"}, pos: {en: "Treasurer", bn: "কোষাধ্যক্ষ"}, group: {en: 'Science 1', bn: 'বিজ্ঞান ১'}, img: "./assets/committee/siyam.png" }, { name: {en: "Md Tamim Hasan", bn: "মোঃ তামিম হাসান"}, pos: {en: "Educational Tour Secretary", bn: "শিক্ষা সফর বিষয়ক সম্পাদক"}, group: {en: 'Science 2', bn: 'বিজ্ঞান ২'}, img: "https://api.dicebear.com/7.x/initials/svg?seed=TH&backgroundColor=b45309" } - - - - ]; let state = { @@ -214,22 +277,63 @@ let state = { lang: 'en', menuOpen: false, currentSlide: 0, - graphMode: 0 + graphMode: 0, + eventSlideIndex: 0 }; +function startEventSlideshow() { + setInterval(() => { + if (state.view === 'EVENTS') { + state.eventSlideIndex = (state.eventSlideIndex + 1) % CLUB_PHOTOS.length; + + render(); + } + }, 3000); +} + +function handleRouting() { + const hash = window.location.hash.replace('#', ''); + const [view, id] = hash.split('/'); + + if (!view || view === 'home') { + state.view = 'HOME'; + } else if (view === 'articles' && id) { + state.view = 'ARTICLE_SINGLE'; + state.articleId = parseInt(id); + } else { + const foundView = view.toUpperCase(); + state.view = foundView; + } + render(); +} + +function navigate(viewName, params = null) { + state.view = viewName; + state.menuOpen = false; + + if (params && params.id) { + state.articleId = params.id; + window.location.hash = `articles/${params.id}`; + } else { + window.location.hash = viewName.toLowerCase(); + } + + window.scrollTo(0, 0); +} const t = (key) => DICTIONARY[key] ? DICTIONARY[key][state.lang] : key; const getLang = (obj) => obj ? obj[state.lang] : ''; - const app = document.getElementById('app'); let mathAnimationId; let sliderInterval; function init() { updateBodyLang(); - render(); + window.addEventListener('hashchange', handleRouting); + handleRouting(); startSlider(); + startEventSlideshow(); } function updateBodyLang() { @@ -244,22 +348,6 @@ function toggleLanguage() { if(state.view === 'HOME') initMathAnimation(); } -function navigate(viewName, params = null) { - state.view = viewName; - if (params) state.articleId = params.id; - state.menuOpen = false; - window.scrollTo(0, 0); - render(); - - - if (mathAnimationId) cancelAnimationFrame(mathAnimationId); - - if (viewName === 'HOME') { - startSlider(); - initMathAnimation(); - } -} - function renderMath() { if (window.renderMathInElement) { renderMathInElement(document.body, { @@ -274,7 +362,6 @@ function renderMath() { } } - function render() { app.innerHTML = ` ${renderHeader()} @@ -294,7 +381,6 @@ function render() { function renderHeader() { const navLinks = ['HOME', 'EVENTS', 'ARTICLES', 'RESOURCES', 'COMMITTEE', 'CONTACT']; - const logoHtml = SITE_DATA.logo ? `