صانع البطاقات التعليمية

أنشئ بطاقات تعليمية رقمية احترافية بمساعدة الذكاء الاصطناعي. يتميز بالتكرار المتباعد، وأنماط دراسة متعددة، ودعم الوسائط المتعددة، والتصدير إلى المنصات الشهيرة مثل Anki وQuizlet.

إنشاء بطاقة تعليمية جديدة

أضف المحتوى الأمامي والخلفي لإنشاء بطاقتك التعليمية

انقر هنا لمعاينة بطاقتك التعليمية
أضف المحتوى أعلاه لرؤية الخلفية
🔄
البطاقات التعليمية
دراسة بالبطاقات التقليدية
🧠
التكرار المتباعد
مراجعة محسنة علمياً
وضع الاختبار
اختبار متعدد الخيارات
🎯
لعبة المطابقة
طابق المصطلحات مع التعريفات
بطاقاتي التعليمية
0 بطاقات 0 تمت دراستها اليوم
📚 لم يتم إنشاء بطاقات تعليمية بعد. اذهب إلى "إنشاء البطاقات" للبدء!
0 إجمالي البطاقات
0 سلسلة أيام الدراسة
0 البطاقات المتقنة
٠٪ معدل الدقة

📤 تصدير بطاقاتك التعليمية

صدّر بطاقاتك التعليمية إلى منصات الدراسة الشهيرة أو حملها للاستخدام دون اتصال

🎴
أنكي
صيغة APKG
📚
كويزلت
صيغة CSV
📊
ملف CSV
جدول بيانات
💾
JSON
صيغة النسخ الاحتياطي
🖨️
طباعة PDF
بطاقات ورقية
🌐
مشاركة عبر الإنترنت
رابط عام
Supports CSV, JSON, TXT, and APKG files from Anki, Quizlet, and other platforms

📚 تخطط للسفر التعليمي أو الدراسة في الخارج؟

عزز تعلمك من خلال تجارب الدراسة الدولية والرحلات التعليمية

Smart Nation's Core Infrastructure: WIA Code

توصيل بالطائرات بدون طيار والروبوتات، القيادة الذاتية، الإنقاذ في حالات الطوارئ والمزيد - اختبر المستقبل خلال 30 يوماً، مجاناً تماماً لبلدك!

تعرف أكثر على كود WIA

🤖 اختر مساعدك الذكي

💬 ChatGPT
الأكثر تنوعاً • الأفضل لإنشاء المحتوى
🧠 Claude
أفضل تفكير منطقي • مثالي لاستراتيجيات الدراسة
Gemini مجاني
حدود يومية مجانية • محادثة مدمجة
`); printWindow.document.close(); printWindow.print(); showNotification('تم فتح معاينة الطباعة', 'success'); } // Share online function shareOnline() { const shareData = { title: 'بطاقاتي التعليمية', text: `Check out my ${flashcards.length} flashcards created with WIA Code Flash Card Maker!`, url: window.location.href }; if (navigator.share) { navigator.share(shareData); } else { const text = `${shareData.text}\n\n${shareData.url}`; copyToClipboard(text); showNotification('Share link copied to clipboard!', 'success'); } } // Handle import function handleImport() { const file = document.getElementById('importFile').files[0]; if (!file) return; const reader = new FileReader(); reader.onload = function(e) { try { const content = e.target.result; let importedCards = []; if (file.name.endsWith('.json')) { importedCards = JSON.parse(content); } else if (file.name.endsWith('.csv')) { importedCards = parseCSV(content); } else if (file.name.endsWith('.txt')) { importedCards = parseTXT(content); } if (importedCards.length > 0) { flashcards = flashcards.concat(importedCards); saveData(); updateDeckDisplay(); updateStats(); showNotification(`Imported ${importedCards.length} flashcards!`, 'success'); } else { showNotification('لم يتم العثور على بطاقات تعليمية صالحة في الملف', 'error'); } } catch (error) { showNotification('Error importing file: ' + error.message, 'error'); } }; reader.readAsText(file); } // Parse CSV import function parseCSV(content) { const lines = content.split('\n').filter(line => line.trim()); const cards = []; for (let i = 1; i < lines.length; i++) { // Skip header const parts = lines[i].split(','); if (parts.length >= 2) { cards.push({ id: Date.now().toString() + i, front: parts[0].replace(/"/g, '').trim(), back: parts[1].replace(/"/g, '').trim(), tags: parts[2] ? parts[2].replace(/"/g, '').split(';').map(t => t.trim()) : [], created: new Date().toISOString(), interval: 0, easiness: 2.5, repetitions: 0, nextReview: new Date().toISOString() }); } } return cards; } // Parse TXT import (tab-separated) function parseTXT(content) { const lines = content.split('\n').filter(line => line.trim()); const cards = []; lines.forEach((line, i) => { const parts = line.split('\t'); if (parts.length >= 2) { cards.push({ id: Date.now().toString() + i, front: parts[0].trim(), back: parts[1].trim(), tags: parts[2] ? parts[2].split(' ').filter(t => t.trim()) : [], created: new Date().toISOString(), interval: 0, easiness: 2.5, repetitions: 0, nextReview: new Date().toISOString() }); } }); return cards; } // ========== UTILITY FUNCTIONS ========== // Download file function downloadFile(content, filename, mimeType) { const blob = new Blob([content], { type: mimeType }); const url = URL.createObjectURL(blob); const link = document.createElement('a'); link.href = url; link.download = filename; document.body.appendChild(link); link.click(); document.body.removeChild(link); URL.revokeObjectURL(url); } // Save data to localStorage function saveData() { localStorage.setItem('flashcards', JSON.stringify(flashcards)); localStorage.setItem('studyStats', JSON.stringify(studyStats)); } // Copy to clipboard function copyToClipboard(text) { navigator.clipboard.writeText(text).then(() => { showNotification('Copied to clipboard!', 'success'); }).catch(() => { // Fallback for older browsers const textArea = document.createElement('textarea'); textArea.value = text; document.body.appendChild(textArea); textArea.select(); document.execCommand('copy'); document.body.removeChild(textArea); showNotification('Copied to clipboard!', 'success'); }); } // Show notification toast function showNotification(message, type = 'success') { const toast = document.createElement('div'); toast.className = `toast ${type}`; toast.textContent = message; document.body.appendChild(toast); setTimeout(() => { toast.remove(); }, 3000); return toast; } // Show OTA section function showOTA() { const otaContainer = document.getElementById('otaContainer'); if (otaContainer && (otaContainer.style.display === 'none' || !otaContainer.style.display)) { otaContainer.style.display = 'block'; setTimeout(() => { const otaHeader = document.querySelector('.ota-header h3'); if (otaHeader) { otaHeader.style.animation = 'pulse 1s ease-in-out'; } }, 100); } } // Analytics tracking function trackEvent(eventName, data = {}) { if (typeof gtag !== 'undefined') { gtag('event', eventName, { 'event_category': TOOL_CONFIG.category, 'event_label': TOOL_CONFIG.name, ...data }); } } // ========== AI ASSISTANT FUNCTIONS ========== // AI 모달 열기 function openAIModal() { const modal = document.getElementById('aiModal'); modal.classList.add('show'); if (aiModalState.apiKey && aiModalState.currentView === 'gemini') { showGeminiChat(); } else { showAISelector(); } updateAPIKeyStatus(); } // AI 모달 닫기 function closeAIModal() { const modal = document.getElementById('aiModal'); modal.classList.remove('show'); setTimeout(() => { aiModalState.currentView = 'selector'; showAISelector(); }, 300); } // AI 선택 화면 표시 function showAISelector() { document.getElementById('aiModalTitle').textContent = 'Choose Your AI Assistant'; document.getElementById('aiSelector').style.display = 'flex'; document.getElementById('geminiChat').style.display = 'none'; document.getElementById('apiKeySetup').style.display = 'none'; aiModalState.currentView = 'selector'; } // Gemini 채팅 화면 표시 function showGeminiChat() { document.getElementById('aiModalTitle').innerHTML = ' Gemini AI Assistant'; document.getElementById('aiSelector').style.display = 'none'; document.getElementById('geminiChat').style.display = 'flex'; document.getElementById('apiKeySetup').style.display = 'none'; aiModalState.currentView = 'gemini'; const chatMessages = document.getElementById('chatMessages'); if (!chatMessages.innerHTML.trim()) { addMessage('assistant', `Hello! I can help you with: • Creating effective flashcard content • Study techniques and memorization strategies • Spaced repetition optimization • Converting notes into flashcard format • Memory improvement tips What would you like to know about flashcards or studying?`); } } // API 키 설정 화면 표시 function showAPIKeySetup() { document.getElementById('aiModalTitle').textContent = 'إعداد واجهة برمجة Gemini'; document.getElementById('aiSelector').style.display = 'none'; document.getElementById('geminiChat').style.display = 'none'; document.getElementById('apiKeySetup').style.display = 'block'; aiModalState.currentView = 'setup'; } // AI 선택 처리 function selectAI(aiType) { const cardCount = flashcards.length; switch(aiType) { case 'chatgpt': let chatContext = `I'm using a Flash Card Maker tool on WIA Code platform. `; if (cardCount > 0) { chatContext += `I have ${cardCount} flashcards created. `; } chatContext += `Can you help me with flashcard creation strategies, study techniques, or memory improvement methods?`; const chatUrl = `https://chat.openai.com/?q=${encodeURIComponent(chatContext)}`; window.open(chatUrl, '_blank'); closeAIModal(); trackEvent('ai_selection', { ai_type: 'chatgpt' }); break; case 'claude': let claudeContext = `I'm using a Flash Card Maker tool. `; if (cardCount > 0) { claudeContext += `I have ${cardCount} flashcards in my deck. `; } claudeContext += `Please help me with effective flashcard design, spaced repetition strategies, or study optimization techniques.`; const claudeUrl = `https://claude.ai/chat?q=${encodeURIComponent(claudeContext)}`; window.open(claudeUrl, '_blank'); closeAIModal(); trackEvent('ai_selection', { ai_type: 'claude' }); break; case 'gemini': if (!aiModalState.apiKey) { showAPIKeySetup(); } else { showGeminiChat(); } trackEvent('ai_selection', { ai_type: 'gemini' }); break; } } // API 키 저장 function saveGeminiApiKey() { const apiKey = document.getElementById('geminiApiKeyInput').value.trim(); if (apiKey) { localStorage.setItem('geminiApiKey', apiKey); aiModalState.apiKey = apiKey; showGeminiChat(); updateAPIKeyStatus(); } else { alert('يرجى إدخال مفتاح API صالح'); } } // API 키 상태 업데이트 function updateAPIKeyStatus() { const statusEl = document.getElementById('apiKeyStatus'); if (aiModalState.apiKey) { statusEl.innerHTML = 'تغيير مفتاح واجهة برمجة التطبيقات'; } else { statusEl.textContent = 'لم يتم تعيين مفتاح API'; } } // 채팅 메시지 추가 function addMessage(type, content) { const chatMessages = document.getElementById('chatMessages'); const messageDiv = document.createElement('div'); messageDiv.className = `message ${type}`; if (type === 'user') { messageDiv.innerHTML = `You: ${content}`; } else { messageDiv.innerHTML = `✨ Gemini:
${content.replace(/\n/g, '
')}`; } chatMessages.appendChild(messageDiv); chatMessages.scrollTop = chatMessages.scrollHeight; } // Gemini에 메시지 전송 async function sendToGemini() { const input = document.getElementById('geminiInput'); const message = input.value.trim(); if (!message) return; addMessage('user', message); input.value = ''; const loadingMsg = document.createElement('div'); loadingMsg.className = 'message assistant'; loadingMsg.innerHTML = '✨ Gemini:
Thinking...'; loadingMsg.id = 'loading-message'; document.getElementById('chatMessages').appendChild(loadingMsg); try { let context = `Context: User is using a Flash Card Maker on WIA Code platform. `; if (flashcards.length > 0) { context += `Current deck has ${flashcards.length} flashcards. `; const recentCard = flashcards[flashcards.length - 1]; context += `Most recent card: "${recentCard.front}" -> "${recentCard.back}". `; } context += `User question: ${message}`; const response = await fetch(`https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=${aiModalState.apiKey}`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ contents: [{ parts: [{ text: context }] }], generationConfig: { temperature: 0.7, maxOutputTokens: 1000 } }) }); const data = await response.json(); document.getElementById('loading-message').remove(); if (data.candidates && data.candidates[0] && data.candidates[0].content) { const reply = data.candidates[0].content.parts[0].text; addMessage('assistant', reply); } else { addMessage('assistant', 'Sorry, I could not generate a response. Please try again.'); } } catch (error) { document.getElementById('loading-message')?.remove(); if (error.message.includes('مفتاح API')) { addMessage('error', 'Invalid API key. Please check your API key and try again.'); showAPIKeySetup(); } else { addMessage('error', 'Failed to connect to Gemini. Please check your internet connection and try again.'); } } } // ========== EVENT LISTENERS ========== document.addEventListener('تحميل محتوى DOM', function() { // Initialize updateStats(); updateDeckDisplay(); updatePreview(); // AI 버튼 이벤트 document.getElementById('aiBtn').addEventListener('click', openAIModal); // 모달 외부 클릭시 닫기 document.getElementById('aiModal').addEventListener('click', function(e) { if (e.target === this) { closeAIModal(); } }); // 키보드 이벤트 document.addEventListener('keydown', function(e) { if (e.key === 'إدخال') { const geminiInput = document.getElementById('geminiInput'); if (document.activeElement === geminiInput) { sendToGemini(); } } if (e.key === 'خروج') { closeAIModal(); } // Study mode keyboard shortcuts if (!document.getElementById('studyInterface').classList.contains('hidden')) { if (e.key === ' ') { e.preventDefault(); flipCard('studyCard'); } else if (e.key === 'السهم الأيمن' || e.key === 'إدخال') { e.preventDefault(); nextCard(); } } }); // 초기 API 키 상태 업데이트 updateAPIKeyStatus(); updateCurrentYear(); updateToolCount(); }); // Track analytics events document.querySelectorAll('a[href*="wia"]').forEach(link => { link.addEventListener('click', function() { trackEvent('wia_link_click', { link: link.textContent }); }); }); // ========== DYNAMIC TOOL COUNT ========== async function updateToolCount() { try { const fallbackCount = 333; document.querySelectorAll('.dynamic-tools-count').forEach(el => { el.textContent = `${fallbackCount}+ free online tools in 206 languages. No signup, no fees, just tools that work.`; }); document.querySelectorAll('.dynamic-count').forEach(el => { const prefix = el.getAttribute('data-text') || ''; const suffix = el.getAttribute('data-suffix') || ''; const icon = el.textContent.split(' ')[0] || ''; el.textContent = `${icon} ${prefix} ${fallbackCount}+ ${suffix}`; }); } catch (error) { console.log('واجهة برمجة التطبيقات لعدد الأدوات غير متوفرة'); } } function updateCurrentYear() { const currentYear = new Date().getFullYear(); document.querySelectorAll('.current-year').forEach(el => { el.textContent = currentYear; }); } // ========== ANALYTICS ========== window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-XXXXXXXXX'); trackEvent('page_view', { tool: TOOL_CONFIG.name, category: TOOL_CONFIG.category });