🔒

আপনার ফ্রি চেষ্টা শেষ হয়েছে!

আপনি ১০টি ফ্রি প্র্যাকটিস চেষ্টা সম্পূর্ণ করেছেন। অ্যাকাউন্ট তৈরি করুন বা সাইন ইন করুন এবং আনলিমিটেড অনুশীলন চালিয়ে যান!

Link copied to clipboard!
🚀 Skill Development Platform

SelfStudyMate

Master Modern Skills, Prepare Yourself

Learn Artificial Intelligence, Python Programming, Digital Marketing, and Business Skills on our smart platform. Prepare yourself for the global market.

🤖AI & Generative AI 💻Programming & Data 📈Digital Marketing

Popular Categories

🐍
Python
🧠
AI & ChatGPT
📣
Marketing
💼
Business
📚
Academic
🇬🇧
English

Build your career through self-learning with SelfStudyMate.

📚 Courses Library

Explore Our Learning Courses

AI-powered interactive courses in multiple languages — lessons, quizzes, exams & certificates all in one place.

✨ Try 1 course FREE — explore up to 5 lessons without signing up!
Courses
Chapters
Lessons
Languages
🔍
⚡ LPQ Studio
Course Management
Course Player
500+
Technical Skills
10k+
Active Learners
1000+
Resource Files
24/7
AI Support

⚡ Quick Access

Essential tools to boost your skills

AI & Tech Skills

Prepare for Generative AI, Python, Data Science, and Coding Interviews.

Practice Now →

Digital Marketing

Learn SEO, Social Media Marketing, Content Writing, and Affiliate Marketing.

Start Learning →

Business & Career

Resources and guidelines for Entrepreneurship, Freelancing, and Career Development.

Explore →

🎯 Why Choose SelfStudyMate?

A Complete Solution to Upgrade Yourself

AI-Powered Learning

Understand complex topics easily with Generative AI. Clear your Coding or Marketing concepts.

Vast Skill Bank

From Python, SQL, SEO, Content Writing to Business English - everything in one place.

Project Based Approach

Learn through practical scenarios and real-life problem solving, not just theory.

Skill Analytics

Track your learning progress. Know which skills you are weak in and where improvement is needed.

Resource Library

Download important notes, code snippets, and checklists for offline study.

Self-Paced Learning

Learn at your own pace. No fixed routine, practice whenever you want.

💡

Ready to Learn Something New?

Start your skill development journey today with SelfStudyMate.

📬

Stay Updated with SelfStudyMate

Weekly study tips, exam strategies and new features — straight to your inbox.

No spam. Unsubscribe anytime.

`); printWindow.document.close(); setTimeout(() => printWindow.print(), 500); } // ============================================================================ // LECTURE SHEETS TAB // ============================================================================ async function loadLectureCategories() { try { const response = await fetch('/api/practice/categories/alphagenedu/'); const data = await response.json(); if (data.success) { const select = document.getElementById('lectureCategorySelect'); if (!select) return; select.innerHTML = ''; data.categories.forEach(cat => { const option = document.createElement('option'); option.value = cat.id; option.textContent = cat.display_name; select.appendChild(option); }); } } catch (error) { console.error('❌ Error loading lecture categories:', error); } } document.addEventListener('DOMContentLoaded', function() { const lectureCategorySelect = document.getElementById('lectureCategorySelect'); const lectureCourseSelect = document.getElementById('lectureCourseSelect'); const lectureChapterSelect = document.getElementById('lectureChapterSelect'); const loadLectureSheetsBtn = document.getElementById('loadLectureSheetsBtn'); if (!lectureCategorySelect) return; lectureCategorySelect.addEventListener('change', async function() { const categoryId = this.value; lectureCourseSelect.disabled = true; lectureChapterSelect.disabled = true; loadLectureSheetsBtn.disabled = true; lectureCourseSelect.innerHTML = ''; if (!categoryId) { lectureCourseSelect.innerHTML = ''; return; } try { const response = await fetch(`/api/practice/courses/${categoryId}/`); const data = await response.json(); if (data.success) { lectureCourseSelect.innerHTML = ''; data.courses.forEach(course => { const name = course.title || course.name || `Course ${course.id}`; lectureCourseSelect.innerHTML += ``; }); lectureCourseSelect.disabled = false; } } catch (error) { console.error('❌ Error loading courses:', error); } }); lectureCourseSelect.addEventListener('change', async function() { const courseId = this.value; lectureChapterSelect.disabled = true; loadLectureSheetsBtn.disabled = true; lectureChapterSelect.innerHTML = ''; if (!courseId) { lectureChapterSelect.innerHTML = ''; return; } try { const response = await fetch(`/api/practice/chapters/${courseId}/`); const data = await response.json(); if (data.success) { lectureChapterSelect.innerHTML = ''; data.chapters.forEach(chapter => { const name = chapter.title || chapter.name || `Chapter ${chapter.id}`; lectureChapterSelect.innerHTML += ``; }); lectureChapterSelect.disabled = false; } } catch (error) { console.error('❌ Error loading chapters:', error); } }); lectureChapterSelect.addEventListener('change', function() { loadLectureSheetsBtn.disabled = lectureChapterSelect.selectedOptions.length === 0; }); loadLectureSheetsBtn.addEventListener('click', async function() { const selectedChapters = Array.from(lectureChapterSelect.selectedOptions).map(opt => opt.value); if (selectedChapters.length === 0) { alert('Please select at least one chapter'); return; } document.getElementById('lectureSheetsGrid').classList.add('hidden'); document.getElementById('lectureEmptyState').classList.add('hidden'); document.getElementById('lectureLoadingContainer').classList.remove('hidden'); this.disabled = true; this.innerHTML = 'Loading...'; try { const response = await fetch('/api/lecture-sheets/load/', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-CSRFToken': getCookie('csrftoken') }, body: JSON.stringify({ chapter_ids: selectedChapters }) }); const data = await response.json(); document.getElementById('lectureLoadingContainer').classList.add('hidden'); if (data.success && data.lecture_sheets.length > 0) { displayLectureSheets(data.lecture_sheets); } else { document.getElementById('lectureEmptyState').classList.remove('hidden'); } } catch (error) { console.error('❌ Error:', error); document.getElementById('lectureLoadingContainer').classList.add('hidden'); document.getElementById('lectureEmptyState').classList.remove('hidden'); } finally { this.disabled = false; this.innerHTML = 'Load Lecture Sheets'; } }); function displayLectureSheets(sheets) { const grid = document.getElementById('lectureSheetsGrid'); grid.classList.remove('hidden'); grid.innerHTML = ''; sheets.forEach(sheet => { const card = document.createElement('div'); card.innerHTML = `
${sheet.saved_name}
${sheet.course_title} ${sheet.language}
${sheet.created_at}
`; grid.appendChild(card); }); } }); function viewLectureSheet(id) { alert(`View lecture sheet ${id} - Implement modal view here`); } console.log('✅ Results and lecture sheets functions loaded'); // ============================================================================ // FLOATING SHARE BUTTONS FUNCTIONALITY // ============================================================================ // 🆕 NEW: Log share event to backend async function logShareEvent(channel) { try { await fetch('/api/share/log/', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-CSRFToken': getCookie('csrftoken') }, credentials: 'same-origin', body: JSON.stringify({ share_type: channel, page_url: window.location.href }) }); } catch (err) { console.error('❌ Failed to log share event:', err); } } // Toggle share buttons visibility // Toggle share buttons visibility // Toggle the share menu function toggleShareMenu() { const container = document.querySelector('.floating-share-container'); container.classList.toggle('active'); } // Close when clicking outside document.addEventListener('click', function(event) { const container = document.querySelector('.floating-share-container'); // If the container is active AND the click was NOT inside the container if (container.classList.contains('active') && !container.contains(event.target)) { container.classList.remove('active'); } }); // (Keep your existing shareOnWhatsApp, copyToClipboard, etc. functions) function toggleShareButtons() { const shareList = document.getElementById('shareButtonsList'); // We only toggle the class on the list, the CSS sibling selector handles the button rotation shareList.classList.toggle('active'); } // Close share menu when clicking outside document.addEventListener('click', function(event) { const container = document.querySelector('.floating-share-container'); const shareList = document.getElementById('shareButtonsList'); if (container && !container.contains(event.target)) { if (shareList && shareList.classList.contains('active')) { shareList.classList.remove('active'); } } }); // Your existing logic for shareOnWhatsApp, logShareEvent, etc. remains exactly the same... // Share on WhatsApp function shareOnWhatsApp() { const url = window.location.href; const title = 'SelfStudyMate Education - বাংলাদেশের শিক্ষা AI প্ল্যাটফর্ম'; const text = `${title}\n\nশিখুন AI সহকারী দিয়ে! অনুশীলন করুন এবং আপনার দক্ষতা উন্নত করুন।\n\n`; const whatsappUrl = `https://wa.me/?text=${encodeURIComponent(text + url)}`; // 🆕 log logShareEvent('whatsapp'); window.open(whatsappUrl, '_blank'); } // Share on Facebook function shareOnFacebook() { const url = window.location.href; const facebookUrl = `https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent(url)}`; // 🆕 log logShareEvent('facebook'); window.open(facebookUrl, '_blank', 'width=600,height=400'); } // Share on Telegram function shareOnTelegram() { const url = window.location.href; const title = 'SelfStudyMate Education'; const text = 'বাংলাদেশের শিক্ষা AI প্ল্যাটফর্ম - শিখুন এবং অনুশীলন করুন!'; const telegramUrl = `https://t.me/share/url?url=${encodeURIComponent(url)}&text=${encodeURIComponent(text)}`; // 🆕 log logShareEvent('telegram'); window.open(telegramUrl, '_blank'); } // Share via Email function shareViaEmail() { const url = window.location.href; const subject = 'SelfStudyMate Education - বাংলাদেশের শিক্ষা AI প্ল্যাটফর্ম'; const body = `আমি এই দুর্দান্ত AI শিক্ষা প্ল্যাটফর্মটি খুঁজে পেয়েছি!\n\nSelfStudyMate Education এ আপনি:\n• AI সহকারী দিয়ে শিখতে পারবেন\n• অনুশীলন প্রশ্ন সমাধান করতে পারবেন\n• লেকচার শীট তৈরি করতে পারবেন\n• এবং আরও অনেক কিছু!\n\nএখানে দেখুন: ${url}`; const mailtoUrl = `mailto:?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`; // 🆕 log logShareEvent('email'); window.location.href = mailtoUrl; } // Share via SMS function shareViaSMS() { const url = window.location.href; const text = `SelfStudymate Education - বাংলাদেশের শিক্ষা AI প্ল্যাটফর্ম\n\nশিখুন এবং অনুশীলন করুন: ${url}`; // Detect mobile device const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent); // 🆕 log logShareEvent('sms'); if (isMobile) { // For mobile devices const smsUrl = `sms:?body=${encodeURIComponent(text)}`; window.location.href = smsUrl; } else { // For desktop - show message to use mobile or copy link copyToClipboard(); alert('SMS sharing works best on mobile devices. The link has been copied to your clipboard instead!'); } } // Copy link to clipboard function copyToClipboard() { const url = window.location.href; // 🆕 log logShareEvent('copy'); // Modern clipboard API if (navigator.clipboard && navigator.clipboard.writeText) { navigator.clipboard.writeText(url).then(() => { showCopyNotification(); }).catch(err => { // Fallback for older browsers fallbackCopyToClipboard(url); }); } else { // Fallback for older browsers fallbackCopyToClipboard(url); } } // Fallback copy method for older browsers function fallbackCopyToClipboard(text) { const textArea = document.createElement('textarea'); textArea.value = text; textArea.style.position = 'fixed'; textArea.style.left = '-999999px'; textArea.style.top = '-999999px'; document.body.appendChild(textArea); textArea.focus(); textArea.select(); try { document.execCommand('copy'); showCopyNotification(); } catch (err) { console.error('Failed to copy:', err); alert('Failed to copy link. Please copy manually: ' + text); } document.body.removeChild(textArea); } // Show copy notification function showCopyNotification() { const notification = document.getElementById('copyNotification'); notification.classList.add('show'); setTimeout(() => { notification.classList.remove('show'); }, 3000); } // Close share buttons when clicking outside document.addEventListener('click', function(event) { const shareContainer = document.querySelector('.floating-share-container'); const shareList = document.getElementById('shareButtonsList'); const toggleBtn = document.getElementById('shareToggleBtn'); if (shareContainer && !shareContainer.contains(event.target)) { if (shareList && shareList.classList.contains('active')) { shareList.classList.remove('active'); if (toggleBtn) toggleBtn.classList.remove('active'); } } }); // Optional: Add keyboard shortcut (Ctrl/Cmd + Shift + S) to toggle share document.addEventListener('keydown', function(event) { if ((event.ctrlKey || event.metaKey) && event.shiftKey && event.key === 'S') { event.preventDefault(); toggleShareButtons(); } }); console.log('✅ Share buttons functionality loaded');