Astronomy Flashcards Generator

Current Card

Card 0 of 0

[Click NEXT or Add a card]
[Click NEXT or Add a card]

Add New Term

Study Set Metadata

Card Manager (0)

User: | Total Cards:

Itemized Study Set

Term / Concept Definition / Explanation Category

No cards created yet.

'; return; } cardData.forEach(c => { const div = document.createElement('div'); div.className = 'flex justify-between items-center bg-stone-700 p-3 rounded text-sm mb-1'; div.innerHTML = ` ${c.term} (${c.category}) `; managerContainer.appendChild(div); }); } // --- Viewer Logic --- function filterCards() { const filter = document.getElementById('card-filter').value; currentCardIndex = 0; if (filter === 'All') { filteredCardSet = [...cardData]; } else { filteredCardSet = cardData.filter(c => c.category === filter); } updateViewer(); } function updateViewer() { const total = filteredCardSet.length; const card = filteredCardSet[currentCardIndex]; const container = document.getElementById('flip-container'); document.getElementById('total-cards').innerText = total; document.getElementById('current-index').innerText = total > 0 ? (currentCardIndex + 1) : 0; container.classList.remove('flipped'); // Reset flip state if (total === 0) { document.getElementById('card-front').innerText = "NO CARDS IN THIS SET"; document.getElementById('card-back').innerText = "Adjust your filter or add new cards."; return; } document.getElementById('card-front').innerText = card.term; document.getElementById('card-back').innerHTML = `

${card.term}

${card.definition}

Category: ${card.category}

`; } function flipCard() { const container = document.getElementById('flip-container'); if (filteredCardSet.length > 0) { container.classList.toggle('flipped'); } } function nextCard() { if (filteredCardSet.length > 0) { currentCardIndex = (currentCardIndex + 1) % filteredCardSet.length; updateViewer(); } } // --- PDF Export --- function generatePDF() { if (cardData.length === 0) { alert("Please add flashcards to the study set before generating the report."); return; } const template = document.getElementById('pdf-template'); const pdfTbody = document.getElementById('pdf-tbody'); // 1. Fill Metadata (Done in updateMeta) document.getElementById('pdf-card-count').innerText = cardData.length; // 2. Fill Table Content (All cards, sorted by Category) pdfTbody.innerHTML = ''; const sorted = [...cardData].sort((a, b) => a.category.localeCompare(b.category) || a.term.localeCompare(b.term)); sorted.forEach(entry => { pdfTbody.innerHTML += ` ${entry.term} ${entry.definition} ${entry.category} `; }); // 3. Generate PDF template.style.display = 'block'; const opt = { margin: 0.5, filename: 'Astronomy_Study_Set_Report.pdf', image: { type: 'jpeg', quality: 0.98 }, html2canvas: { scale: 2 }, jsPDF: { unit: 'in', format: 'letter', orientation: 'portrait' } }; html2pdf().set(opt).from(template).save().then(() => { template.style.display = 'none'; }); } // Expose public methods return { switchTab, addCard, deleteCard, flipCard, nextCard, filterCards, generatePDF }; })();
Scroll to Top