Tests – MP Board Practice Online

*, *::before, *::after { box-sizing: border-box; }
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, ‘Segoe UI’, Roboto, sans-serif;
background: #f0f2f5;
color: #0f172a;
}
.vs-container { max-width: 1100px; margin: 0 auto; padding: 0 20px; }

.vs-navbar {
background: #00173F;
padding: 0 20px;
height: 64px;
display: flex;
align-items: center;
justify-content: space-between;
position: sticky;
top: 0;
z-index: 100;
}
.vs-logo { display: flex; align-items: center; gap: 8px; color: #fff; font-size: 20px; font-weight: 800; text-decoration: none; }
.vs-desktop-nav { display: flex; gap: 4px; }
.vs-desktop-nav a {
color: rgba(255,255,255,0.7); text-decoration: none; padding: 8px 14px; border-radius: 8px;
font-size: 14px; font-weight: 600; transition: all 0.2s;
}
.vs-desktop-nav a:hover, .vs-desktop-nav a.active { background: rgba(255,255,255,0.1); color: #fff; }

.mpba-test-hero {
background: linear-gradient(135deg, #0c1e3a 0%, #1a0a3e 50%, #2d0a4e 100%);
text-align: center;
padding: 48px 0 56px;
}
.mpba-test-hero h1 { font-size: clamp(1.8rem, 5vw, 3rem); font-weight: 800; color: #fff; margin: 0 0 12px; letter-spacing: -1px; }
.mpba-test-hero h1 span { color: #FF6B35; }

.mpba-filters {
background: #fff;
border-bottom: 1px solid #e2e8f0;
padding: 16px 0;
position: sticky;
top: 64px;
z-index: 50;
}
.mpba-filter-bar { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.mpba-filter-btn {
padding: 6px 16px; border-radius: 9999px; border: 1.5px solid #e2e8f0;
background: #fff; font-size: 13px; font-weight: 600; color: #64748b;
cursor: pointer; transition: all 0.2s; white-space: nowrap;
}
.mpba-filter-btn:hover { border-color: #3B0F70; color: #3B0F70; }
.mpba-filter-btn.active { background: #3B0F70; color: #fff; border-color: #3B0F70; }
.mpba-filter-divider { width: 1px; height: 24px; background: #e2e8f0; margin: 0 4px; }

.mpba-tests-main { padding: 32px 0 80px; }

.mpba-loading { text-align: center; padding: 60px 20px; color: #94a3b8; }
.mpba-spinner {
width: 40px; height: 40px; border: 3px solid #e2e8f0; border-top-color: #3B0F70;
border-radius: 50%; animation: spin 0.8s linear infinite; margin: 0 auto 16px;
}
@keyframes spin { to { transform: rotate(360deg); } }

.mpba-test-stat-bar { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-top: 20px; }
.mpba-test-stat {
background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.12);
border-radius: 12px; padding: 12px 24px;
}
.mpba-test-stat strong { display: block; font-size: 1.2rem; color: #fff; }
.mpba-test-stat span { font-size: 12px; color: rgba(255,255,255,0.6); }

.mpba-tests-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 20px; }
.mpba-test-card {
background: #fff; border: 1.5px solid #e2e8f0; border-radius: 16px;
overflow: hidden; transition: transform 0.25s, box-shadow 0.25s; display: flex; flex-direction: column;
}
.mpba-test-card:hover { transform: translateY(-4px); box-shadow: 0 12px 36px rgba(0,0,0,0.09); }
.mpba-test-card-accent { height: 5px; background: var(–card-color, #6366f1); }
.mpba-test-card-body { padding: 20px; flex: 1; display: flex; flex-direction: column; }
.mpba-test-card-tags { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; }
.mpba-test-tag {
display: inline-flex; align-items: center; gap: 3px; font-size: 10px; font-weight: 700;
text-transform: uppercase; letter-spacing: 0.5px; padding: 3px 9px; border-radius: 9999px;
background: #f1f5f9; color: #64748b;
}
.mpba-test-tag.type-tag { background: var(–card-color, #6366f1); color: #fff; opacity: 0.9; }
.mpba-test-card-title { font-size: 1rem; font-weight: 700; color: #0f172a; margin: 0 0 6px; line-height: 1.35; }
.mpba-test-chapter { font-size: 12px; color: #64748b; margin: 0 0 14px; }
.mpba-test-stats { display: flex; gap: 16px; margin-bottom: 16px; flex-wrap: wrap; }
.mpba-test-stat-item { display: flex; align-items: center; gap: 4px; font-size: 12px; color: #94a3b8; font-weight: 600; }
.mpba-test-start-btn {
display: inline-flex; align-items: center; justify-content: center; gap: 8px;
padding: 11px 20px; border-radius: 10px;
background: linear-gradient(135deg, #3B0F70, #5C2D91); color: #fff;
font-size: 14px; font-weight: 700; text-decoration: none; transition: all 0.25s; margin-top: auto;
border: none; cursor: pointer;
}
.mpba-test-start-btn:hover { transform: scale(1.02); box-shadow: 0 4px 16px rgba(59,15,112,0.3); }

.mpba-quiz-overlay {
position: fixed; top: 0; left: 0; right: 0; bottom: 0;
background: rgba(0,0,0,0.6); z-index: 1000;
display: none; align-items: center; justify-content: center;
padding: 20px; backdrop-filter: blur(4px);
}
.mpba-quiz-modal {
background: #fff; border-radius: 20px; max-width: 700px; width: 100%;
max-height: 90vh; overflow-y: auto; padding: 32px;
}
.mpba-quiz-modal h2 { margin: 0 0 8px; font-size: 1.3rem; }
.mpba-quiz-meta { color: #94a3b8; font-size: 13px; margin-bottom: 24px; }
.mpba-question {
background: #f8fafc; border: 1.5px solid #e2e8f0; border-radius: 12px;
padding: 20px; margin-bottom: 16px;
}
.mpba-question h3 { font-size: 15px; margin: 0 0 12px; }
.mpba-option {
display: flex; align-items: center; gap: 10px; padding: 10px 14px;
border: 1.5px solid #e2e8f0; border-radius: 10px; margin-bottom: 8px;
cursor: pointer; transition: all 0.2s; font-size: 14px; background: #fff;
}
.mpba-option:hover { border-color: #3B0F70; background: #f5f0ff; }
.mpba-option.selected { border-color: #3B0F70; background: #ede9fe; }
.mpba-option.correct { border-color: #22c55e; background: #f0fdf4; }
.mpba-option.wrong { border-color: #ef4444; background: #fef2f2; }
.mpba-option input[type=”radio”] { display: none; }
.mpba-quiz-actions { display: flex; gap: 12px; justify-content: flex-end; margin-top: 20px; }
.mpba-quiz-actions button { padding: 10px 24px; border-radius: 10px; border: none; font-weight: 700; cursor: pointer; transition: all 0.2s; }
.mpba-btn-submit { background: linear-gradient(135deg, #3B0F70, #5C2D91); color: #fff; }
.mpba-btn-submit:hover { transform: scale(1.02); }
.mpba-btn-close { background: #f1f5f9; color: #64748b; }

.mpba-results { text-align: center; padding: 24px; }
.mpba-score { font-size: 3rem; font-weight: 800; color: #3B0F70; margin: 16px 0; }
.mpba-score-label { font-size: 14px; color: #94a3b8; }
.mpba-results-bar { height: 8px; background: #e2e8f0; border-radius: 9999px; margin: 16px 0; overflow: hidden; }
.mpba-results-fill { height: 100%; background: linear-gradient(90deg, #3B0F70, #FF6B35); border-radius: 9999px; transition: width 1s ease; }
.mpba-results-msg { font-size: 16px; font-weight: 600; margin: 12px 0; }
.mpba-results-detail { font-size: 14px; color: #64748b; margin-bottom: 20px; }

.mpba-tests-empty { text-align: center; padding: 60px 24px; background: #fff; border-radius: 16px; border: 1px dashed #e2e8f0; }
.mpba-no-quiz {
background: linear-gradient(135deg, #f5f0ff, #ede9fe);
border: 1.5px solid #c4b5fd; border-radius: 16px; padding: 28px 32px;
margin-bottom: 32px; display: flex; align-items: flex-start; gap: 20px; flex-wrap: wrap;
}
.results-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
.reset-btn { padding: 6px 16px; border-radius: 8px; border: 1px solid #e2e8f0; background: #fff; cursor: pointer; font-size: 12px; color: #64748b; }
.reset-btn:hover { background: #f1f5f9; }

Test Your Knowledge

Class-wise, subject-wise, and chapter-wise practice tests for MP Board exams.

0Courses
0Practice Tests
0Questions






Loading tests…

const API = “https://mpboard.ai/wp-json”;
const COLORS = {
“accountancy”: “#6366f1”,
“business”: “#f59e0b”,
“economics”: “#10b981”,
“physics”: “#3b82f6”,
“chemistry”: “#8b5cf6”,
“biology”: “#22c55e”,
“maths”: “#ef4444”,
“science”: “#06b6d4”,
“english”: “#ec4899”,
“hindi”: “#f97316”,
“default”: “#6366f1”
};

let allCourses = [];
let quizzes = [];
let currentQuiz = null;
let currentAnswers = {};

async function fetchCourses() {
try {
const [courseRes, quizRes] = await Promise.all([
fetch(API + “/wp/v2/sfwd-courses?per_page=50&_fields=id,title,link,meta”),
fetch(API + “/wp/v2/sfwd-quiz?per_page=50&_fields=id,title,link,content,meta”)
]);
allCourses = await courseRes.json();
quizzes = await quizRes.json();
document.getElementById(“statCourses”).textContent = allCourses.length;
document.getElementById(“statQuizzes”).textContent = quizzes.length;
let qCount = 0;
for (const quiz of quizzes.slice(0, 5)) {
try {
const qRes = await fetch(API + “/ldlms/v1/sfwd-quiz/” + quiz.id + “/questions?per_page=1”);
const qData = await qRes.json();
if (qData && qData.length) qCount += qData.length;
} catch(e) {}
}
document.getElementById(“statQuestions”).textContent = qCount || “Coming Soon”;
renderTests(“all”);
} catch (e) {
document.getElementById(“mpba-content”).innerHTML = ‘

🚧

Tests Coming Soon

Practice with previous year papers in the meantime!

‘;
}
}

function renderTests(filter) {
const container = document.getElementById(“mpba-content”);
let filtered = quizzes;
if (filter !== “all”) {
const slug = filter;
filtered = quizzes.filter(q => {
const title = (q.title && q.title.rendered || “”).toLowerCase();
const content = (q.content && q.content.rendered || “”).toLowerCase();
return title.includes(slug.replace(“-“, ” “)) || content.includes(slug.replace(“-“, ” “));
});
}
const grouped = {};
for (const quiz of filtered) {
const courseId = quiz.meta?.course_id || quiz.meta?.course || 0;
const course = allCourses.find(c => c.id === courseId);
const courseName = course ? course.title.rendered : “General”;
if (!grouped[courseId || “0”]) {
let color = COLORS.default;
const cn = courseName.toLowerCase();
if (cn.includes(“account”)) color = COLORS.accountancy;
else if (cn.includes(“business”)) color = COLORS.business;
grouped[courseId || “0”] = { courseName, courseId, courseLink: course?.link || “#”, color, quizzes: [] };
}
grouped[courseId || “0”].quizzes.push(quiz);
}
let html = ‘

‘ + (filter === “all” ? “📚 All Tests” : filter.charAt(0).toUpperCase() + filter.slice(1).replace(“-“, ” “)) + ‘

‘ + Object.values(grouped).reduce((s,g) => s + g.quizzes.length, 0) + ‘ tests available

‘;
if (Object.keys(grouped).length === 0) {
html += ‘

📋

Practice Tests Coming Soon

We are building interactive tests for every chapter. Meanwhile, practice with our previous year papers.

Browse Papers →

‘;
} else {
const entries = Object.entries(grouped);
for (const [key, group] of entries) {
html += ‘

‘ + group.courseName + ‘

‘;
for (const quiz of group.quizzes) {
const qTitle = quiz.title?.rendered || “Practice Test”;
const qContent = quiz.content?.rendered || “”;
const qCount = qContent.match(/<li/g)?.length || 10;
html += '

📝 MCQ🎯 ‘ + qCount + ‘ Qs

‘ + qTitle + ‘

Test your knowledge with practice questions

⏱️ 15 min📊 ‘ + qCount + ‘ marks

‘;
}
html += ‘

‘;
}
}
container.innerHTML = html;
}

const SAMPLE_QUIZZES = {
“partner”: [
{ id: 1, q: “A and B are partners sharing profits in 3:2 ratio. They admit C for 1/4th share. New profit-sharing ratio of A and B is 2:1. What is the sacrificing ratio of A?”, opts: [“4/20”, “3/20”, “5/20”, “2/20”], ans: 0 },
{ id: 2, q: “X and Y are partners with capitals of ₹1,00,000 and ₹80,000. Interest on capital is 10% p.a. Net profit before interest is ₹36,000. What amount of interest will be credited to X?”, opts: [“₹10,000”, “₹8,000”, “₹12,000”, “₹9,000”], ans: 0 },
{ id: 3, q: “When the partnership deed is silent, partners are entitled to interest on capital at which rate?”, opts: [“No interest is allowed”, “6% p.a.”, “10% p.a.”, “8% p.a.”], ans: 0 },
{ id: 4, q: “A drew ₹5,000 at the end of each month. What is the average period for calculating interest on drawings?”, opts: [“5.5 months”, “6.5 months”, “6 months”, “4.5 months”], ans: 0 },
{ id: 5, q: “Which account is prepared to show the distribution of profit among partners?”, opts: [“P&L Appropriation Account”, “P&L Account”, “Trading Account”, “Balance Sheet”], ans: 0 },
{ id: 6, q: “Under Fixed Capital Method, partners capitals remain fixed except when:”, opts: [“Additional capital introduced or withdrawn permanently”, “Profit is distributed”, “Interest on drawings is charged”, “Salary is paid to partner”], ans: 0 },
{ id: 7, q: “Net profit ₹90,000, ratio 5:3:2. What is C share?”, opts: [“₹18,000”, “₹27,000”, “₹45,000”, “₹9,000”], ans: 0 },
{ id: 8, q: “Interest on drawings is charged to which account?”, opts: [“Partner Current Account (Debit)”, “Capital Account (Credit)”, “Profit and Loss Account”, “Trading Account”], ans: 0 },
{ id: 9, q: “Commission 10% on net profit after charging such commission. Net profit before commission is ₹55,000. The commission amount is:”, opts: [“₹5,000”, “₹5,500”, “₹4,500”, “₹6,000”], ans: 0 },
{ id: 10, q: “When a partner is entitled to a salary of ₹12,000 p.a. and net profit is ₹60,000, the divisible profit is:”, opts: [“₹48,000”, “₹60,000”, “₹72,000”, “₹36,000”], ans: 0 }
]
};

async function startQuiz(quizId) {
document.getElementById(“quizOverlay”).style.display = “flex”;
const quiz = quizzes.find(q => q.id === quizId);
const title = quiz?.title?.rendered || “Practice Test”;
try {
const res = await fetch(API + “/ldlms/v1/sfwd-quiz/” + quizId + “/questions?per_page=50”);
const data = await res.json();
if (data && data.length > 0) renderQuizContent(data, title);
else renderSampleQuiz(title);
} catch(e) {
renderSampleQuiz(title);
}
}

function renderSampleQuiz(title) {
const qs = SAMPLE_QUIZZES.partner;
const formatted = qs.map(q => ({ id: q.id, question: q.q, options: q.opts, correct: q.ans }));
renderQuizContent(formatted, title);
}

function renderQuizContent(questions, title) {
currentQuiz = { questions, title };
currentAnswers = {};
let html = ‘

📝 ‘ + title + ‘

‘ + questions.length + ‘ Questions • 15 minutes • Each question 1 mark

‘;
questions.forEach((q, i) => {
const qText = q.question || q.q || “Question ” + (i+1);
const options = q.options || q.opts || [“A”, “B”, “C”, “D”];
html += ‘

Q’ + (i+1) + ‘: ‘ + qText + ‘

‘;
options.forEach((opt, oi) => {
html += ‘‘;
});
html += ‘

‘;
});
html += ‘

‘;
document.getElementById(“quizContent”).innerHTML = html;
}

function selectOption(qIdx, optIdx, total) {
currentAnswers[qIdx] = optIdx;
document.querySelectorAll(“#options-” + qIdx + ” .mpba-option”).forEach((el, i) => { el.classList.toggle(“selected”, i === optIdx); });
}

function submitQuiz() {
const questions = currentQuiz.questions;
let correct = 0;
const total = questions.length;
questions.forEach((q, i) => {
const userAns = currentAnswers[i];
const correctAns = q.correct || q.ans || 0;
if (userAns === correctAns) correct++;
document.querySelectorAll(“#options-” + i + ” .mpba-option”).forEach((el, oi) => {
el.style.pointerEvents = “none”;
if (oi === correctAns) el.classList.add(“correct”);
else if (oi === userAns && oi !== correctAns) el.classList.add(“wrong”);
el.classList.remove(“selected”);
});
});
const score = Math.round((correct / total) * 100);
let grade, msg, color;
if (score >= 80) { grade = “🌟 Excellent!”; msg = “You have mastered this topic! Keep it up.”; color = “#22c55e”; }
else if (score >= 60) { grade = “👍 Good Job!”; msg = “You know the basics well. Practice a bit more to master.”; color = “#f59e0b”; }
else if (score >= 40) { grade = “📖 Keep Learning”; msg = “Review the chapter notes and try again.”; color = “#f97316”; }
else { grade = “🔄 Needs Revision”; msg = “Go through the chapter again and practice more.”; color = “#ef4444”; }
const resultHtml = ‘

📊 Your Results

‘ + (score >= 60 ? “🎉” : score >= 40 ? “📖” : “💪”) + ‘
Your Score
‘ + correct + ‘/’ + total + ‘
‘ + score + ‘%
‘ + grade + ‘
‘ + msg + ‘
📖 Study Notes

‘;
document.getElementById(“quizContent”).innerHTML = resultHtml;
}

function closeQuiz() { document.getElementById(“quizOverlay”).style.display = “none”; }

document.querySelectorAll(“.mpba-filter-btn”).forEach(btn => {
btn.addEventListener(“click”, function() {
document.querySelectorAll(“.mpba-filter-btn”).forEach(b => b.classList.remove(“active”));
this.classList.add(“active”);
renderTests(this.dataset.filter);
});
});

fetchCourses();