Skip to content
This repository was archived by the owner on Jul 27, 2025. It is now read-only.
/ CodeByteTutor Public archive

A flashcard-style app for learning basic programming terms (e.g. "variable", "loop", "function")!

License

Notifications You must be signed in to change notification settings

Progresbyte/CodeByteTutor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

Coding Flashcard App

A simple flashcard app to learn programming terms with categories and quizzes.

Features

  • Categories: JavaScript, Python, HTML
  • Flip cards to reveal definitions
  • Take quizzes to test your knowledge

1. HTML Structure

<div id="app">
    <select id="categorySelect">
        <option value="JavaScript">JavaScript</option>
        <option value="Python">Python</option>
        <option value="HTML">HTML</option>
    </select>
    <div id="flashcard" class="card">
        <div class="front"></div>
        <div class="back"></div>
    </div>
    <button id="flipBtn">Flip</button>
    <button id="nextBtn">Next</button>
    <button id="quizBtn">Take Quiz</button>
    <div id="quizSection" style="display:none;">
        <div id="quizQuestion"></div>
        <input id="quizAnswer" type="text" placeholder="Your answer">
        <button id="submitQuiz">Submit</button>
        <div id="quizResult"></div>
    </div>
</div>

2. CSS (Basic)

.card {
    width: 300px;
    height: 150px;
    border: 1px solid #333;
    margin: 20px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2em;
    cursor: pointer;
    background: #f9f9f9;
}

3. JavaScript Logic

const flashcards = {
    JavaScript: [
        { term: "Variable", definition: "A container for storing data values." },
        { term: "Function", definition: "A block of code designed to perform a task." }
    ],
    Python: [
        { term: "List", definition: "A collection which is ordered and changeable." },
        { term: "Indentation", definition: "Whitespace used to define code blocks." }
    ],
    HTML: [
        { term: "Element", definition: "A part of a web page defined by tags." },
        { term: "Attribute", definition: "Provides additional information about elements." }
    ]
};

let currentCategory = "JavaScript";
let currentIndex = 0;
let flipped = false;

const categorySelect = document.getElementById('categorySelect');
const flashcard = document.getElementById('flashcard');
const front = flashcard.querySelector('.front');
const back = flashcard.querySelector('.back');
const flipBtn = document.getElementById('flipBtn');
const nextBtn = document.getElementById('nextBtn');
const quizBtn = document.getElementById('quizBtn');
const quizSection = document.getElementById('quizSection');
const quizQuestion = document.getElementById('quizQuestion');
const quizAnswer = document.getElementById('quizAnswer');
const submitQuiz = document.getElementById('submitQuiz');
const quizResult = document.getElementById('quizResult');

function loadCard() {
    const card = flashcards[currentCategory][currentIndex];
    front.textContent = card.term;
    back.textContent = card.definition;
    flashcard.classList.remove('flipped');
    flipped = false;
}

categorySelect.addEventListener('change', () => {
    currentCategory = categorySelect.value;
    currentIndex = 0;
    loadCard();
});

flipBtn.addEventListener('click', () => {
    flashcard.classList.toggle('flipped');
    flipped = !flipped;
});

nextBtn.addEventListener('click', () => {
    currentIndex = (currentIndex + 1) % flashcards[currentCategory].length;
    loadCard();
});

quizBtn.addEventListener('click', () => {
    quizSection.style.display = 'block';
    startQuiz();
});

function startQuiz() {
    const card = flashcards[currentCategory][Math.floor(Math.random() * flashcards[currentCategory].length)];
    quizQuestion.textContent = `Define: ${card.term}`;
    quizAnswer.value = '';
    quizResult.textContent = '';
    submitQuiz.onclick = () => {
        if (quizAnswer.value.trim().toLowerCase() === card.definition.toLowerCase()) {
            quizResult.textContent = "Correct!";
        } else {
            quizResult.textContent = `Incorrect. Answer: ${card.definition}`;
        }
    };
}

loadCard();

4. Usage

  1. Copy HTML, CSS, and JS into your project.
  2. Open in browser.
  3. Select a category, flip cards, and take quizzes!

About

A flashcard-style app for learning basic programming terms (e.g. "variable", "loop", "function")!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published