đŻ SkillCheck Assessment
Enter your test code or choose subject and grade
đ Do you have a test code?
If your teacher gave you a specific test code, enter it here:
Test Code:
Use This Code
I donât have a code - let me choose subject and grade
đŻ SkillCheck Assessment
Choose your subject and grade level
đ What skill are you working on today?
đ˘
Math
Numbers & Operations
đ
Language Arts
Reading & Writing
đŹ
Science
Discovery & Inquiry
đ
Social Studies
History & Geography
đ What grade level are you in?
Grade 1
Grade 2
Grade 3
Grade 4
Grade 5
Grade 6
Grade 7
Grade 8
Grade 9
Grade 10
Grade 11
Grade 12
Continue to Student Info â
Student Name:
Class Code (Optional):
đ Choose Assessment Type:
đ
Teacher Assessment
Take a test assigned by your teacher
Requires class code
đŻ
Practice Mode
Practice questions by standard
No class code needed
đŻ Choose Practice Type:
đ˛ Random Questions đ By Standard
Select Grade Level for Standards: Choose Grade Level Grade 1 Grade 2 Grade 3 Grade 4 Grade 5 Grade 6 Grade 7 Grade 8 Grade 9 Grade 10 Grade 11 Grade 12
Select a grade level to see available standards
Start Assessment đ
Submit Assessment â
jQuery(document).ready(function($) { let selectedSubject = â; let selectedGrade = â; let currentQuestions = []; let testCode = â; let assessmentMode = âteacherâ; // âteacherâ or âpracticeâ let practiceType = ârandomâ; // ârandomâ or âstandardâ let selectedStandards = []; // Question banks const questionBanks = {âmathâ:[{âquestionâ:âWhat is 5 + 3?â,âanswerâ:â8â},{âquestionâ:âWhat is 10 - 4?â,âanswerâ:â6â},{âquestionâ:âWhat is 2 \u00d7 5?â,âanswerâ:â10â},{âquestionâ:âWhat is 20 \u00f7 4?â,âanswerâ:â5â}],âlanguageâ:[{âquestionâ:âWhat is the plural of \âchild\â?â,âanswerâ:âchildrenâ},{âquestionâ:âComplete: \âI ___ going to school.\â (am\/is\/are)â,âanswerâ:âamâ},{âquestionâ:âWhat type of word is \âquickly\â?â,âanswerâ:âadverbâ},{âquestionâ:âCapitalize this: \ânew york city\"",âanswerâ:âNew York Cityâ}],âscienceâ:[{âquestionâ:âWhat do plants need to make food? (sunlight, water, andâŚ)â,âanswerâ:âcarbon dioxideâ},{âquestionâ:âHow many legs does a spider have?â,âanswerâ:â8â},{âquestionâ:âWhat is the closest planet to the Sun?â,âanswerâ:âMercuryâ},{âquestionâ:âWhat do we call animals that eat only plants?â,âanswerâ:âherbivoresâ}],âsocial_studiesâ:[{âquestionâ:âWhat is the capital of the United States?â,âanswerâ:âWashington D.C.â},{âquestionâ:âHow many states are in the United States?â,âanswerâ:â50â},{âquestionâ:âWhat ocean is on the west coast of the United States?â,âanswerâ:âPacificâ},{âquestionâ:âWho was the first President of the United States?â,âanswerâ:âGeorge Washingtonâ}]}; // Common Core Standards Database (expanded) const commonCoreStandards = { âmathâ: { 1: [â1.OA.1 - Addition within 20â, â1.OA.2 - Subtraction within 20â, â1.NBT.1 - Counting to 120â, â1.NBT.2 - Place valueâ, â1.MD.1 - Measurementâ], 2: [â2.OA.1 - Addition within 100â, â2.OA.2 - Subtraction within 100â, â2.NBT.1 - Place valueâ, â2.NBT.5 - Addition/Subtractionâ, â2.MD.1 - Measurementâ], 3: [â3.OA.1 - Multiplicationâ, â3.OA.2 - Divisionâ, â3.NF.1 - Fractionsâ, â3.NBT.1 - Roundingâ, â3.MD.1 - Timeâ], 4: [â4.OA.1 - Multi-step problemsâ, â4.NBT.1 - Place valueâ, â4.NF.1 - Equivalent fractionsâ, â4.NF.3 - Decimal notationâ, â4.MD.1 - Units of measurementâ], 5: [â5.OA.1 - Numerical expressionsâ, â5.NBT.1 - Place valueâ, â5.NF.1 - Add/subtract fractionsâ, â5.NF.4 - Multiply fractionsâ, â5.MD.1 - Unit conversionsâ], 6: [â6.RP.1 - Ratiosâ, â6.NS.1 - Divide fractionsâ, â6.EE.1 - Exponentsâ, â6.G.1 - Area formulasâ, â6.SP.1 - Statistical questionsâ], 7: [â7.RP.1 - Proportionsâ, â7.NS.1 - Rational numbersâ, â7.EE.1 - Linear equationsâ, â7.G.1 - Scale drawingsâ, â7.SP.1 - Samplingâ], 8: [â8.NS.1 - Irrational numbersâ, â8.EE.1 - Integer exponentsâ, â8.F.1 - Functionsâ, â8.G.1 - Transformationsâ, â8.SP.1 - Bivariate dataâ] }, âelaâ: { 1: [â1.RL.1 - Reading comprehensionâ, â1.W.1 - Opinion writingâ, â1.L.1 - Grammarâ, â1.RF.1 - Phonicsâ, â1.SL.1 - Speaking/Listeningâ], 2: [â2.RL.1 - Reading comprehensionâ, â2.W.1 - Opinion writingâ, â2.L.1 - Grammarâ, â2.RF.3 - Phonics/Word recognitionâ, â2.SL.1 - Speaking/Listeningâ], 3: [â3.RL.1 - Reading comprehensionâ, â3.W.1 - Opinion writingâ, â3.L.1 - Grammarâ, â3.RF.3 - Phonics/Word recognitionâ, â3.SL.1 - Speaking/Listeningâ], 4: [â4.RL.1 - Reading comprehensionâ, â4.W.1 - Opinion writingâ, â4.L.1 - Grammarâ, â4.RF.3 - Phonics/Word recognitionâ, â4.SL.1 - Speaking/Listeningâ], 5: [â5.RL.1 - Reading comprehensionâ, â5.W.1 - Opinion writingâ, â5.L.1 - Grammarâ, â5.RF.3 - Phonics/Word recognitionâ, â5.SL.1 - Speaking/Listeningâ] }, âscienceâ: { 1: [â1.PS.1 - Properties of materialsâ, â1.LS.1 - Animal behaviorâ, â1.ESS.1 - Sun and moon patternsâ], 2: [â2.PS.1 - Material propertiesâ, â2.LS.1 - Plant diversityâ, â2.ESS.1 - Earth materialsâ], 3: [â3.PS.1 - Matter propertiesâ, â3.LS.1 - Life cyclesâ, â3.ESS.2 - Weather and climateâ], 4: [â4.PS.3 - Energyâ, â4.LS.1 - Animal structuresâ, â4.ESS.1 - Rock formationsâ], 5: [â5.PS.1 - Matter and interactionsâ, â5.LS.1 - Ecosystemsâ, â5.ESS.1 - Solar systemâ] }, âsocial_studiesâ: { 1: [â1.C.1 - Civics and governmentâ, â1.H.1 - Historical thinkingâ, â1.G.1 - Geographyâ], 2: [â2.C.1 - Civics and governmentâ, â2.H.1 - Historical thinkingâ, â2.G.1 - Geographyâ], 3: [â3.C.1 - Civics and governmentâ, â3.H.1 - Historical thinkingâ, â3.G.1 - Geographyâ], 4: [â4.C.1 - Civics and governmentâ, â4.H.1 - Historical thinkingâ, â4.G.1 - Geographyâ], 5: [â5.C.1 - Civics and governmentâ, â5.H.1 - Historical thinkingâ, â5.G.1 - Geographyâ] } }; // If we have a test code from URL, show that section focused if (testCode) { $(â#test-code-inputâ).focus().css(âborder-colorâ, â#10b981â); } // Test code functionality $(â#use-test-codeâ).on(âclickâ, function() { const enteredCode = $(â#test-code-inputâ).val().trim().toUpperCase(); if (!enteredCode) { alert(âPlease enter a test code.â); return; } // For now, redirect to the code-based assessment // In a full implementation, this would check if the code exists in database window.location.href = window.location.pathname + â?code=â + enteredCode; }); $(â#choose-subject-insteadâ).on(âclickâ, function() { $(â#test-code-entryâ).hide(); $(â#subject-selectionâ).show(); }); // Auto-uppercase test code input $(â#test-code-inputâ).on(âinputâ, function() { $(this).val($(this).val().toUpperCase()); }); // Subject icons and colors const subjectInfo = { âmathâ: { icon: âđ˘â, name: âMathâ, color: â#3B82F6â }, âlanguageâ: { icon: âđâ, name: âLanguage Artsâ, color: â#059669â }, âscienceâ: { icon: âđŹâ, name: âScienceâ, color: â#f59e0bâ }, âsocial_studiesâ: { icon: âđâ, name: âSocial Studiesâ, color: â#8b5cf6â } }; // Subject selection $(â.subject-optionâ).on(âclickâ, function() { $(â.subject-optionâ).css({ âtransformâ: âscale(1)â, âbox-shadowâ: $(this).attr(âstyleâ).match(/box-shadow: ([^;]+)/)[1] }); $(this).css({ âtransformâ: âscale(1.05)â, âbox-shadowâ: â0 8px 16px rgba(0,0,0,0.2)â }); selectedSubject = $(this).data(âsubjectâ); checkSelections(); }); // Grade selection $(â.grade-optionâ).on(âclickâ, function() { $(â.grade-optionâ).css({ âbackgroundâ: âwhiteâ, âborder-colorâ: â#e2e8f0â, âcolorâ: â#374151â, âtransformâ: âscale(1)â }); $(this).css({ âbackgroundâ: âlinear-gradient(135deg, #3B82F6 0%, #1e40af 100%)â, âborder-colorâ: â#3B82F6â, âcolorâ: âwhiteâ, âtransformâ: âscale(1.05)â }); selectedGrade = $(this).data(âgradeâ); checkSelections(); }); // Check if both selections are made function checkSelections() { if (selectedSubject && selectedGrade) { $(â#continue-to-infoâ).css(âopacityâ, â1â).prop(âdisabledâ, false); } } // Continue to student info $(â#continue-to-infoâ).on(âclickâ, function() { if (!selectedSubject || !selectedGrade) return; // Update selection summary const info = subjectInfo[selectedSubject]; $(â#selection-summaryâ).html(`
${info.icon}
${info.name} - Grade ${selectedGrade}
Ready to test your ${info.name.toLowerCase()} skills!
`); $(â#subject-selectionâ).hide(); $(â#student-infoâ).show(); }); // Assessment type selection $(â.assessment-type-optionâ).on(âclickâ, function() { $(â.assessment-type-optionâ).css({ âtransformâ: âscale(1)â, âbox-shadowâ: â0 2px 4px rgba(0,0,0,0.1)â }); $(this).css({ âtransformâ: âscale(1.05)â, âbox-shadowâ: â0 6px 12px rgba(0,0,0,0.2)â }); if ($(this).attr(âidâ) === âteacher-test-optionâ) { assessmentMode = âteacherâ; $(â#practice-standards-selectionâ).hide(); $(â#class-codeâ).prop(ârequiredâ, true); $(â#class-codeâ).attr(âplaceholderâ, âRequired for teacher testsâ); } else { assessmentMode = âpracticeâ; $(â#practice-standards-selectionâ).show(); $(â#class-codeâ).prop(ârequiredâ, false); $(â#class-codeâ).attr(âplaceholderâ, âLeave blank for practice modeâ); } checkStartButtonState(); }); // Practice type selection $(â.practice-type-btnâ).on(âclickâ, function() { $(â.practice-type-btnâ).css(âopacityâ, â0.7â); $(this).css(âopacityâ, â1â); if ($(this).attr(âidâ) === ârandom-practiceâ) { practiceType = ârandomâ; $(â#standard-selectionâ).hide(); selectedStandards = []; } else { practiceType = âstandardâ; $(â#standard-selectionâ).show(); $(â#practice-grade-levelâ).val(selectedGrade); // Pre-select current grade loadStandardsForGrade(selectedGrade, selectedSubject); } checkStartButtonState(); }); // Practice grade level change $(â#practice-grade-levelâ).on(âchangeâ, function() { const grade = parseInt($(this).val()); if (grade) { loadStandardsForGrade(grade, selectedSubject); } else { $(â#standards-listâ).html(â
Select a grade level to see available standards
â); } }); // Function to load standards for practice function loadStandardsForGrade(grade, subject) { const standards = commonCoreStandards[subject] && commonCoreStandards[subject][grade] ? commonCoreStandards[subject][grade] : []; if (standards.length === 0) { $(â#standards-listâ).html(â
No standards available for this grade/subject combination.
â); return; } let standardsHtml = â; standards.forEach(function(standard, index) { const questionCount = Math.floor(Math.random() * 15) + 5; // Simulate question count standardsHtml += `
`; }); $(â#standards-listâ).html(standardsHtml); // Handle standard selection $(â.practice-standard-checkboxâ).on(âchangeâ, function() { selectedStandards = []; $(â.practice-standard-checkbox:checkedâ).each(function() { selectedStandards.push($(this).val()); }); checkStartButtonState(); }); } // Function to check if start button should be enabled function checkStartButtonState() { const studentName = $(â#student-nameâ).val().trim(); let canStart = false; if (!studentName) { canStart = false; } else if (assessmentMode === âteacherâ) { const classCode = $(â#class-codeâ).val().trim(); canStart = classCode.length > 0; } else if (assessmentMode === âpracticeâ) { if (practiceType === ârandomâ) { canStart = true; } else if (practiceType === âstandardâ) { canStart = selectedStandards.length > 0; } } $(â#start-assessmentâ).prop(âdisabledâ, !canStart); $(â#start-assessmentâ).css(âopacityâ, canStart ? â1â : â0.5â); } // Check start button state when student name changes $(â#student-name, #class-codeâ).on(âinputâ, function() { checkStartButtonState(); }); // Start assessment $(â#start-assessmentâ).on(âclickâ, function() { const studentName = $(â#student-nameâ).val().trim(); const classCode = $(â#class-codeâ).val().trim(); if (!studentName) { alert(âPlease enter your name!â); return; } if (assessmentMode === âteacherâ && !classCode) { alert(âPlease enter a class code for teacher assessments!â); return; } if (assessmentMode === âpracticeâ && practiceType === âstandardâ && selectedStandards.length === 0) { alert(âPlease select at least one standard to practice!â); return; } // Load appropriate questions if (assessmentMode === âteacherâ) { currentQuestions = questionBanks[selectedSubject] || []; } else { // Practice mode - generate questions based on selection currentQuestions = generatePracticeQuestions(); } // Update assessment header const info = subjectInfo[selectedSubject]; let headerTitle = â; let headerSubtitle = â; if (assessmentMode === âteacherâ) { headerTitle = `${info.name} Assessment`; headerSubtitle = `Grade ${selectedGrade} ⢠${currentQuestions.length} Questions ⢠Class: ${classCode}`; } else { headerTitle = `${info.name} Practice`; if (practiceType === ârandomâ) { headerSubtitle = `Grade ${selectedGrade} ⢠${currentQuestions.length} Random Questions`; } else { headerSubtitle = `${selectedStandards.length} Standards ⢠${currentQuestions.length} Questions`; } } $(â#assessment-headerâ).html(`
${info.icon}
${headerTitle} ${headerSubtitle}
${assessmentMode === âpracticeâ ? â
đŻ Practice Mode - Results won\ât be saved to your teacher\âs gradebook
â : â}
`); // Render questions let questionsHtml = â; currentQuestions.forEach(function(q, index) { const standardInfo = (assessmentMode === âpracticeâ && practiceType === âstandardâ) ? `
đ ${q.standard || âStandard practiceâ}
` : â; questionsHtml += `
`; }); $(â#questions-listâ).html(questionsHtml); // NO REAL-TIME FEEDBACK for teacher assessments // For practice mode, we can provide immediate feedback if (assessmentMode === âpracticeâ) { $(â.question-answerâ).on(âinputâ, function() { const userAnswer = $(this).val().trim(); const correctAnswer = $(this).data(âcorrectâ); const feedbackDiv = $(this).siblings(â.answer-feedbackâ); if (userAnswer === â) { feedbackDiv.html(â); $(this).css(âborder-colorâ, â#d1d5dbâ); } else if (userAnswer.toLowerCase() === correctAnswer.toLowerCase()) { feedbackDiv.html(â
â
Correct! â); $(this).css(âborder-colorâ, â#059669â); } else { feedbackDiv.html(â
đ¤ Keep trying⌠â); $(this).css(âborder-colorâ, â#f59e0bâ); } }); } $(â#student-infoâ).hide(); $(â#questions-containerâ).show(); }); // Function to generate practice questions function generatePracticeQuestions() { let questions = []; const baseQuestions = questionBanks[selectedSubject] || []; if (practiceType === ârandomâ) { // Return random questions from the subject questions = [âŚbaseQuestions]; } else { // Generate questions based on selected standards selectedStandards.forEach(function(standard) { // Create sample questions for each standard const standardCode = standard.split(â - â)[0]; const standardName = standard.split(â - â)[1] || standard; // Generate 2-3 questions per standard for (let i = 1; i <= 3; i++) { questions.push({ question: `Practice question ${i} for ${standardName}`, answer: Math.floor(Math.random() * 20) + 1, // Random answer for demo standard: standardCode }); } }); } // Shuffle and limit questions questions = questions.sort(() => 0.5 - Math.random()); return questions.slice(0, Math.min(10, questions.length)); } // Submit assessment $(â#submit-assessmentâ).on(âclickâ, function() { const studentName = $(â#student-nameâ).val().trim(); const classCode = $(â#class-codeâ).val().trim(); let score = 0; let answers = []; $(â.question-answerâ).each(function() { const userAnswer = $(this).val().trim(); const correctAnswer = $(this).data(âcorrectâ); const questionNum = $(this).data(âquestionâ); const isCorrect = userAnswer.toLowerCase() === correctAnswer.toLowerCase(); if (isCorrect) score++; answers.push({ question: questionNum, answer: userAnswer, correct: isCorrect }); }); // Enhanced results display const totalQuestions = currentQuestions.length; const percentage = Math.round((score / totalQuestions) * 100); const info = subjectInfo[selectedSubject]; let performance = â; let bgColor = â; let resultType = â; if (assessmentMode === âpracticeâ) { resultType = practiceType === ârandomâ ? âRandom Practiceâ : âStandards Practiceâ; } else { resultType = âTeacher Assessmentâ; } if (percentage >= 90) { performance = âđ Outstanding Performance!â; bgColor = âlinear-gradient(135deg, #059669 0%, #047857 100%)â; } else if (percentage >= 80) { performance = âđ Excellent Work!â; bgColor = âlinear-gradient(135deg, #3B82F6 0%, #1e40af 100%)â; } else if (percentage >= 70) { performance = âđ Good Job!â; bgColor = âlinear-gradient(135deg, #f59e0b 0%, #d97706 100%)â; } else { performance = âđŞ Keep Practicing!â; bgColor = âlinear-gradient(135deg, #ef4444 0%, #dc2626 100%)â; } let practiceInfo = â; if (assessmentMode === âpracticeâ) { if (practiceType === âstandardâ) { practiceInfo = `
Standards Practiced: ${selectedStandards.map(s => s.split(â - â)[0]).join(â, â)}
`; } practiceInfo += `
đŻ Practice results are not saved to your teacherâs gradebook
`; } $(â#resultsâ).html(`
${info.icon}
${resultType} Complete! ${score}/${totalQuestions}
${percentage}%
${performance}
Student: ${studentName} ${classCode ? â| Class: â + classCode : â} | Grade ${selectedGrade} | Subject: ${info.name} | Version: 0.3.2
${practiceInfo} ${assessmentMode === âpracticeâ ? â
Try Another Practice â : â }
`).show(); $(â#questions-containerâ).hide(); // Only save results for teacher assessments if (assessmentMode === âteacherâ) { const studentNameWithClass = classCode ? studentName + â [â + classCode + â]â : studentName; $.post(â/api/skillcheck-disabledâ, { action: âedthings_test_submitâ, student_name: studentNameWithClass + â - Gâ + selectedGrade + â â + subjectInfo[selectedSubject].name, answers: JSON.stringify(answers), subject: selectedSubject, grade: selectedGrade, assessment_mode: assessmentMode, nonce: â0da5cd6420â }, function(response) { console.log(âAssessment saved:â, response); }, âjsonâ); } else { console.log(âPractice mode - results not saved to databaseâ); } }); // Add hover effects $(â.subject-option, .grade-option, buttonâ).hover( function() { if (!$(this).prop(âdisabledâ)) { $(this).css(âtransformâ, âtranslateY(-2px)â); } }, function() { if (!$(this).hasClass(âselectedâ) && !$(this).prop(âdisabledâ)) { $(this).css(âtransformâ, âtranslateY(0px)â); } } ); }); .subject-option:hover { transform: translateY(-3px) !important; } .grade-option:hover { background: #f3f4f6 !important; border-color: #9ca3af !important; } button:hover { transform: translateY(-2px) !important; } button:disabled { cursor: not-allowed; transform: none !important; } .question-answer:focus { outline: none; border-color: #3B82F6 !important; box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); } .assessment-step { animation: fadeIn 0.5s ease-in-out; } @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } @media (max-width: 768px) { #edthings-simple-assessment { padding: 15px !important; margin: 10px !important; } .subject-option { padding: 15px !important; font-size: 14px !important; } .grade-option { padding: 10px !important; font-size: 14px !important; } }