ÿþ<!DOCTYPE html> <html lang="hi"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>UP TET Paper 1 -  # ? $  8 >  ( . G    ( 0 G  0 </title> <link href="img/logo1.jpg" rel="icon"> <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js"></script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> <style> :root { --primary: #4361ee; --primary-dark: #3f37c9; --secondary: #4895ef; --danger: #f72585; --success: #4cc9f0; --light: #f8f9fa; --dark: #212529; --gray: #6c757d; --border-radius: 12px; --box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1); --transition: all 0.3s ease; } * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; } body { background: linear-gradient(135deg, #f5f7fa 0%, #e2e8f0 100%); min-height: 100vh; display: flex; justify-content: center; align-items: center; padding: 20px; color: var(--dark); line-height: 1.6; } .container { width: 100%; max-width: 950px; background: white; border-radius: var(--border-radius); box-shadow: var(--box-shadow); overflow: hidden; transition: var(--transition); animation: fadeIn 0.5s ease-out; } @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .header { background: linear-gradient(135deg, var(--primary), var(--primary-dark)); color: white; padding: 30px 20px; text-align: center; position: relative; overflow: hidden; } .header::before { content: ''; position: absolute; top: -50px; right: -50px; width: 150px; height: 150px; background: rgba(255, 255, 255, 0.1); border-radius: 50%; } .header h1 { font-size: 2rem; margin-bottom: 10px; font-weight: 700; position: relative; z-index: 1; } .header p { font-size: 1rem; opacity: 0.9; position: relative; z-index: 1; } .content-area { padding: 30px; } .hidden { display: none !important; } .btn { display: inline-block; padding: 12px 28px; border-radius: 50px; font-weight: 600; cursor: pointer; transition: var(--transition); border: none; text-align: center; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); margin: 10px 5px; } .btn-primary { background: var(--primary); color: white; } .btn-primary:hover { background: var(--primary-dark); transform: translateY(-2px); box-shadow: 0 8px 15px rgba(67, 97, 238, 0.3); } .btn-success { background: var(--success); color: white; } .btn-success:hover { background: #3ab0d6; transform: translateY(-2px); box-shadow: 0 8px 15px rgba(76, 201, 240, 0.3); } .btn-danger { background: var(--danger); color: white; } .btn-danger:hover { background: #d3166b; transform: translateY(-2px); box-shadow: 0 8px 15px rgba(247, 37, 133, 0.3); } .btn-level { background: var(--light); color: var(--dark); border: 2px solid var(--gray); font-size: 1.2rem; padding: 15px 30px; width: 200px; } .btn-level:hover { transform: translateY(-5px); box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2); } .btn-level.selected { background: var(--primary); color: white; border-color: var(--primary); } .btn-group { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 20px 0; } .level-buttons { display: flex; justify-content: center; gap: 20px; margin: 30px 0; } .section-title { text-align: center; margin-bottom: 25px; color: var(--primary-dark); font-size: 1.5rem; position: relative; padding-bottom: 10px; } .section-title::after { content: ''; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 80px; height: 3px; background: var(--secondary); border-radius: 3px; } .checkbox-container { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; margin: 25px 0; max-height: 500px; overflow-y: auto; padding: 10px; border: 1px solid #eee; border-radius: var(--border-radius); } .checkbox-item { display: flex; align-items: center; } .checkbox-item input { margin-right: 10px; width: 18px; height: 18px; cursor: pointer; } .checkbox-item label { cursor: pointer; font-size: 0.9rem; } .instructions { margin-bottom: 30px; padding: 20px; background: #f8f9fa; border-radius: var(--border-radius); } .instructions ol { padding-left: 20px; margin-top: 10px; } .instructions li { margin-bottom: 8px; } .question-section { margin-bottom: 30px; } .section-heading { font-weight: 600; color: var(--primary-dark); margin-bottom: 15px; padding-bottom: 5px; border-bottom: 1px solid #eee; } .question { margin-bottom: 20px; page-break-inside: avoid; } .question-text { font-weight: 500; margin-bottom: 8px; } .option { margin-left: 20px; margin-bottom: 5px; } .action-buttons { display: flex; justify-content: center; flex-wrap: wrap; gap: 15px; margin-top: 40px; } .answer-sheet { margin-top: 40px; padding: 20px; background: #f8f9fa; border-radius: var(--border-radius); } .answer-table { width: 100%; border-collapse: collapse; margin-top: 15px; } .answer-table th, .answer-table td { border: 1px solid #ddd; padding: 8px; text-align: center; } .answer-table th { background-color: var(--primary); color: white; } .answer-table tr:nth-child(even) { background-color: #f2f2f2; } @media (max-width: 768px) { .header h1 { font-size: 1.6rem; } .content-area { padding: 20px; } .checkbox-container { grid-template-columns: 1fr; } .btn { padding: 10px 20px; font-size: 0.9rem; } .btn-level { width: 150px; font-size: 1rem; padding: 12px 20px; } .level-buttons { flex-direction: column; align-items: center; } } @media (max-width: 480px) { .header { padding: 20px 15px; } .section-title { font-size: 1.3rem; } .action-buttons { flex-direction: column; align-items: center; } .btn { width: 100%; max-width: 250px; } } @media print { body { background: none; padding: 0; } .container { box-shadow: none; max-width: 100%; } .action-buttons { display: none; } .question { page-break-inside: avoid; } .header { -webkit-print-color-adjust: exact; print-color-adjust: exact; } } .home-icon { position: absolute; top: 20px; left: 20px; color: white; font-size: 24px; cursor: pointer; transition: var(--transition); z-index: 2; text-decoration: none; display: inline-block; } .home-icon:hover { transform: scale(1.1); color: rgba(255, 255, 255, 0.8); } @media (max-width: 480px) { .home-icon { font-size: 20px; top: 15px; left: 15px; } } @media print { .home-icon { display: none; } } .temp-pdf-container { font-family: Arial, sans-serif; line-height: 1.5; width: 794px; background-color: white; color: black; } .question { page-break-inside: avoid; break-inside: avoid; } .text-center { text-align: center; margin-bottom: 15px; } </style> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4930137336556867" crossorigin="anonymous"></script> <script async src="https://www.googletagmanager.com/gtag/js?id=G-KMZ9RJ62EY"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-KMZ9RJ62EY'); </script> </head> <body> <div class="container" id="startContainer"> <div class="header"> <a href="up-tet-exam-paper1-assignment-generator.html" class="home-icon"><i class="fas fa-home"></i></a> <h1>UP TET Paper 1</h1> <p> # ? $ (Mathematics)  8 >  ( . G    ( 0 G  0 </p> </div> <div class="content-area"> <div id="startScreen"> <h2 class="section-title"> # ? $  8 >  ( . G    ( 0 G  0 </h2> <div class="btn-group"> <button class="btn btn-primary" id="startGeneratingBtn"> 8 >  ( . G   , ( >   </button> </div> </div> <div id="subjectSelection" class="hidden"> <h2 class="section-title">5 ? 7 /  >  / (  0 G  </h2> <div class="btn-group"> <button class="btn btn-primary" id="selectMathBtn"> # ? $ (Mathematics)</button> </div> </div> <div id="chapterSelection" class="hidden"> <h2 class="section-title"> ' M / > / / 5 ? 7 /  A ( G  </h2> <div id="chapterCheckboxContainer" class="checkbox-container"></div> <div class="btn-group"> <button class="btn btn-danger" id="backToStartBtn">* M 0 > 0  - * 0 5 > * 8  >   </button> <button class="btn btn-success" id="generateAssignmentBtn"> 8 >  ( . G   , ( >   </button> </div> </div> <div id="levelSelection" class="hidden"> <h2 class="section-title"> ? ( >  8 M $ 0  A ( G  </h2> <p class="text-center"> * ( G  8 >  ( . G    G 2 ?  8 M $ 0  >  / (  0 G  :</p> <div class="level-buttons"> <button class="btn btn-level" id="level1Btn">8 M $ 0 1<br><small>, G 8 ?  8 M $ 0 </small></button> <button class="btn btn-level" id="level2Btn">8 M $ 0 2<br><small>. ' M / . 8 M $ 0 </small></button> <button class="btn btn-level" id="level3Btn">8 M $ 0 3<br><small>* 0 @  M 7 > 8 M $ 0 </small></button> </div> <div class="btn-group"> <button class="btn btn-danger" id="backToChaptersBtn">5 ? 7 / K  * 0 5 > * 8  >   </button> <button class="btn btn-success" id="generateFinalBtn"> 8 >  ( . G    ( 0 G   0 G  </button> </div> </div> </div> </div> <div class="container hidden" id="generatedPaperContainer"></div> <script> const { jsPDF } = window.jspdf; // ===================================================== // COMPLETE QUESTIONS DATABASE FOR MATHEMATICS (19 TOPICS) // ===================================================== const questions = { "8   M / >    5  8   M / >    >  K ! < ,   > ( >  A # > , - >  ": { level1: [ { question: "123 + 456 = ?", options: ["579", "569", "589", "599"], answer: "A" }, { question: "1000 - 254 = ?", options: ["746", "756", "736", "766"], answer: "A" }, { question: "25 × 4 = ?", options: ["80", "100", "120", "90"], answer: "B" } ], level2: [ { question: "144 ÷ 12 + 5 × 3 = ?", options: ["27", "17", "32", "22"], answer: "A" }, { question: "875 × 12 = ?", options: ["10500", "10400", "10600", "10700"], answer: "A" } ], level3: [ { question: "{(456 + 789) - 123} × 2 = ?", options: ["2244", "2144", "2344", "2044"], answer: "A" }, { question: "98765 ÷ 13  > 6 G 7 + 2  M / > 9 K  > ?", options: ["7", "8", "9", "10"], answer: "B" } ] }, "2  A $ M $ . 8 . > * 5 0 M $ M /  5  . 9 $ M $ . 8 . > * 5 0 M $  ": { level1: [ { question: "12  0 18  > . 9 $ M $ . 8 . > * 5 0 M $  (HCF)  M / > 9 H ?", options: ["6", "4", "3", "9"], answer: "A" }, { question: "4, 5  0 10  > 2  A $ M $ . 8 . > * 5 0 M $ M / (LCM)  M / > 9 H ?", options: ["20", "40", "10", "5"], answer: "A" } ], level2: [ { question: "24, 36  0 48  > HCF  M / > 9 H ?", options: ["12", "8", "6", "24"], answer: "A" }, { question: "15, 25  0 30  > LCM  M / > 9 H ?", options: ["150", "75", "300", "50"], answer: "A" } ], level3: [ { question: "& K 8   M / >    > LCM 168  0 HCF 12 9 H d / & ?   8   M / > 24 9 H , $ K & B 8 0 @ 8   M / >  M  > $  0 G  ?", options: ["84", "72", "96", "108"], answer: "A" } ] }, "- ? ( M ( K   >  K ! < ,   > ( > ,  A # > 5 - >  ": { level1: [ { question: "1/2 + 1/4 = ?", options: ["3/4", "2/6", "1/6", "2/4"], answer: "A" }, { question: "3/5 × 2/3 = ?", options: ["2/5", "5/8", "6/15", "1/2"], answer: "A" } ], level2: [ { question: "5/6 - 1/3 = ?", options: ["1/2", "4/6", "1/3", "2/3"], answer: "A" }, { question: "(2/3) ÷ (4/9) = ?", options: ["1.5", "2", "1", "0.5"], answer: "A" } ], level3: [ { question: "3(1/2) + 2(1/3) = ?", options: ["5(5/6)", "5(2/5)", "6(1/6)", "5(1/6)"], answer: "A" }, { question: "  - ? ( M (  > . > ( 3/4 9 H d / & ?   6 . G  2  K ! < & ? / >  >   0 9 0 . G  8 G 2   > & ? / >  >  $ K - ? ( M ( 6/5 9 K  > $ @ 9 H d . B 2 - ? ( M (  M  > $  0 G  ?", options: ["9/12", "6/8", "12/16", "15/20"], answer: "A" } ] }, "& 6 . 2 5 -  K ! < ,   > ( > ,  A # > 5 - >  ": { level1: [ { question: "2.5 + 3.7 = ?", options: ["6.2", "5.2", "6.5", "5.5"], answer: "A" }, { question: "4.8 × 2.5 = ?", options: ["12.0", "10.0", "11.0", "13.0"], answer: "A" } ], level2: [ { question: "12.5 - 8.75 = ?", options: ["3.75", "3.25", "4.25", "2.75"], answer: "A" }, { question: "6.4 ÷ 0.8 = ?", options: ["8", "7", "9", "6"], answer: "A" } ], level3: [ { question: "(0.2 × 0.2) + (0.3 × 0.3) = ?", options: ["0.13", "0.10", "0.12", "0.14"], answer: "A" } ] }, "  ?  ( ? / . ": { level1: [ { question: "5 * G (  > . B 2 M / 50 0 A * / G 9 H , $ K 8 * G (  > . B 2 M /  M / > 9 K  > ?", options: ["80", "70", "90", "100"], answer: "A" }, { question: "10 .  & B 0    > .  K 20 & ? ( . G   0 $ G 9 H  , $ K 20 .  & B 0 8 @  > .  K  ? $ ( G & ? ( . G   0 G   G ?", options: ["10", "5", "15", "8"], answer: "A" } ], level2: [ { question: "/ & ? 15 . @  0  * ! < G  > . B 2 M / 750 0 A * / G 9 H , $ K 25 . @  0  * ! < G  > . B 2 M /  M / > 9 K  > ?", options: ["1250", "1200", "1300", "1350"], answer: "A" } ], level3: [ { question: "/ & ? 8  & . @ 5    G * M 0 $ ? & ? (  > .  0  G    > .  K 12 & ? ( . G  * B 0 >  0 $ G 9 H  , $ K 10  & . @ 6    G * M 0 $ ? & ? (  > .  0  G 8 @  > .  K  ? $ ( G & ? ( . G  * B 0 >  0 G   G ?", options: ["8", "9", "7", "10"], answer: "A" } ] }, "* M 0 $ ? 6 $ ": { level1: [ { question: "50  > 20%  ? $ ( > 9 K  > ?", options: ["10", "5", "15", "20"], answer: "A" }, { question: " ? 8 @ 8   M / >  > 25% 75 9 H , $ K 8   M / >  M / > 9 H ?", options: ["300", "200", "400", "250"], answer: "A" } ], level2: [ { question: "/ & ?  ? 8 @ 5 8 M $ A  G . B 2 M / . G  20%  @ 5 C & M ' ? 9 K  >  , $ K ( / > . B 2 M / 600 0 A * / G 9 K  > $ > 9 H d . B 2 . B 2 M /  M / > % > ?", options: ["500", "480", "520", "550"], answer: "A" } ], level3: [ { question: "& K 8   M / >   . G  40%  >   $ 0 9 H d  K  @ 8   M / > 180 9 H , $ K , ! < @ 8   M / >  M / > 9 H ?", options: ["300", "250", "200", "280"], answer: "A" } ] }, "2 > - 9 > ( ? ": { level1: [ { question: "  5 8 M $ A 500 0 A * / G . G   0 @ & @    0 600 0 A * / G . G  , G  @   d 2 > - * M 0 $ ? 6 $  M / > 9 H ?", options: ["20%", "10%", "15%", "25%"], answer: "A" }, { question: "  5 8 M $ A 1200 0 A * / G . G  , G  ( G * 0 20%  > 2 > - 9 K $ > 9 H d  M 0 / . B 2 M /  M / > 9 H ?", options: ["1000", "960", "1040", "1200"], answer: "A" } ], level2: [ { question: "  5 8 M $ A  K 800 0 A * / G . G  , G  ( G * 0 20%  @ 9 > ( ? 9 K $ @ 9 H , $ K 5 8 M $ A  >  M 0 / . B 2 M /  M / > 9 H ?", options: ["1000", "960", "1040", "1100"], answer: "A" } ], level3: [ { question: "  & A  > ( & > 0 & K 5 8 M $ A   * M 0 $ M / G  1000 0 A * / G . G  , G  $ > 9 H d   * 0 20% 2 > -  0 & B 8 0 @ * 0 20% 9 > ( ? 9 K $ @ 9 H d  A 2 2 > - / > 9 > ( ? * M 0 $ ? 6 $  M / > 9 H ?", options: ["4% 9 > ( ? ", "4% 2 > - ", "0%", "2% 9 > ( ? "], answer: "A" } ] }, "8 > ' > 0 # , M / >  ": { level1: [ { question: "500 0 A * / G  > 2 5 0 M 7 . G  10% 5 > 0 M 7 ?  , M / >  & 0 8 G 8 > ' > 0 # , M / >   M / > 9 K  > ?", options: ["100", "50", "150", "200"], answer: "A" }, { question: " ? $ ( G 5 0 M 7 . G  1000 0 A * / G  > 5% 5 > 0 M 7 ?  , M / >  & 0 8 G 8 > ' > 0 # , M / >  150 0 A * / G 9 K  >   > ?", options: ["3", "2", "4", "5"], answer: "A" } ], level2: [ { question: " K  ' ( 3 5 0 M 7 . G  8% 5 > 0 M 7 ?  , M / >  & 0 8 G 1240 0 A * / G 9 K  > $ > 9 H d . B 2 ' (  M / > 9 H ?", options: ["1000", "1100", "900", "1200"], answer: "A" } ], level3: [ { question: "& K  2  - 2  , M / >  & 0 K  * 0   9 @ ' ( 0 > 6 ? * 0 2 5 0 M 7  > 8 > ' > 0 # , M / >   M 0 . 6  400  0 500 0 A * / G 9 H d , M / >  & 0 K  . G    $ 0  M / > 9 H ?", options: ["5%", "4%", "6%", "2%"], answer: "A" } ] }, " M / > . ? $ ?  M / > . ? $ @ /   C $ ? / >   5  * C 7 M ,  K # , $ M 0 ? - A  , 5 C $ M $ ": { level1: [ { question: "  $ M 0 ? - A   G $ @ ( K   K # K   > / K  9 K $ > 9 H ?", options: ["180°", "90°", "360°", "270°"], answer: "A" }, { question: "5 C $ M $  @ * 0 ? ' ?  > 8 B $ M 0  M / > 9 H ?", options: ["2Àr", "Àr²", "Àd", "2Àd"], answer: "A" } ], level2: [ { question: "  8 .  K # $ M 0 ? - A  . G  , / & ? & K - A  >   3 8 G . @  0 4 8 G . @ 9 H  , $ K  0 M #  @ 2  , >   M / > 9 K  @ ?", options: ["5 8 G . @ ", "6 8 G . @ ", "7 8 G . @ ", "8 8 G . @ "], answer: "A" } ], level3: [ { question: "  5 C $ M $  >  M 7 G $ M 0 + 2 154 5 0 M  8 G . @ 9 H d  8  @ $ M 0 ?  M / >  M / > 9 H ? (À = 22/7)", options: ["7 8 G . @ ", "14 8 G . @ ", "21 8 G . @ ", "28 8 G . @ "], answer: "A" } ] }, "' ( (0 A * / > - * H 8 > )": { level1: [ { question: "5 0 A * / G 50 * H 8 G  K 0 A * / G . G  5 M /  M $  0 G  ?", options: ["5.50", "5.05", "5.55", "5.00"], answer: "A" }, { question: "2.75 0 A * / G  K * H 8 G . G  , & 2 G  ?", options: ["275", "270", "280", "260"], answer: "A" } ], level2: [ { question: "8.40 0 A * / G  0 3.60 0 A * / G  > / K   M / > 9 H ?", options: ["12.00", "12.50", "11.00", "13.00"], answer: "A" } ], level3: [ { question: "  5 M /  M $ ?  G * > 8 1 0 A * / G , 50 * H 8 G  0 25 * H 8 G  G 8 ?  M  G 9 H  d / & ?  A 2 . B 2 M / 40 0 A * / G 9 H  0 8 ?  M  K   @ 8   M / > 60 9 H , $ K 1 0 A * / G  G 8 ?  M  K   @ 8   M / >  M / > 9 H ?", options: ["10", "15", "20", "25"], answer: "A" } ] }, ". > * ( 8 . / , $ L 2 , ' > 0 ? $ > , 2 . M , >   5  $ > * ": { level1: [ { question: "1  ? 2 K  M 0 > . . G   ? $ ( G  M 0 > . 9 K $ G 9 H  ?", options: ["1000", "100", "500", "2000"], answer: "A" }, { question: "5 . @  0  K 8 G   @ . @  0 . G  , & 2 G  ?", options: ["500", "50", "5000", "5"], answer: "A" } ], level2: [ { question: "2    G 30 . ? (   K . ? (  . G  , & 2 G  ?", options: ["150", "120", "180", "200"], answer: "A" } ], level3: [ { question: "8 G 2 M 8 ? / 8  K + > 0 G ( 9 >   . G  , & 2 ( G  > 8 B $ M 0  M / > 9 H ?", options: ["C × 9/5 + 32", "C × 5/9 + 32", "C × 9/5 - 32", "C × 5/9 - 32"], answer: "A" } ] }, ". G ( M 8 A 0 G 6 ( - * 0 ? . ? $ ? (* 0 ? . > * ) - $ M 0 ? - A  ,  / $ , 5 0 M  ,  $ A 0 M - A   M 7 G $ M 0 + 2 -  / $ , 5 0 M  /  / $ ( , ' > 0 ? $ > - ' ( ,  ( > - ": { level1: [ { question: "10 8 G . @ - A  > 5 > 2 G 5 0 M   > * 0 ? . > *  M / > 9 H ?", options: ["40 8 G . @ ", "20 8 G . @ ", "100 8 G . @ ", "30 8 G . @ "], answer: "A" }, { question: "5 8 G . @ × 3 8 G . @ 5 > 2 G  / $  >  M 7 G $ M 0 + 2  M / > 9 H ?", options: ["15 5 0 M  8 G . @ ", "16 5 0 M  8 G . @ ", "8 5 0 M  8 G . @ ", "12 5 0 M  8 G . @ "], answer: "A" } ], level2: [ { question: "4 8 G . @ - A  > 5 > 2 G  (  >  / $ (  M / > 9 H ?", options: ["64  ( 8 G . @ ", "16  ( 8 G . @ ", "96  ( 8 G . @ ", "48  ( 8 G . @ "], answer: "A" } ], level3: [ { question: "   ( > -  @ 2  , >  10 8 G . @ ,  L ! < >  8 8 G . @  0   >  6 8 G . @ 9 H d  8  >  A 2 * C 7 M @ /  M 7 G $ M 0 + 2  M / > 9 H ?", options: ["376 5 0 M  8 G . @ ", "480 5 0 M  8 G . @ ", "376 5 0 M  8 G . @ ", "360 5 0 M  8 G . @ "], answer: "A" } ] }, " H 2 G # M ! 0 ": { level1: [ { question: "  8 * M $ > 9 . G   ? $ ( G & ? ( 9 K $ G 9 H  ?", options: ["7", "5", "6", "8"], answer: "A" }, { question: "  2 @ * 5 0 M 7 . G   ? $ ( G & ? ( 9 K $ G 9 H  ?", options: ["366", "365", "364", "367"], answer: "A" } ], level2: [ { question: "/ & ? 10 . > 0 M  2024  K 0 5 ? 5 > 0 9 H , $ K 17 . > 0 M  2024  K  L ( 8 > & ? ( 9 K  > ?", options: ["0 5 ? 5 > 0 ", "8 K . 5 > 0 ", "6 ( ? 5 > 0 ", "6 A  M 0 5 > 0 "], answer: "A" } ], level3: [ { question: "1  ( 5 0 @ 2020  K , A ' 5 > 0 % > , $ K 1  ( 5 0 @ 2021  K  L ( 8 > & ? ( 9 K  > ?", options: [" A 0 A 5 > 0 ", "6 A  M 0 5 > 0 ", ", A ' 5 > 0 ", ".   2 5 > 0 "], answer: "B" } ] }, "   ! < G ,    ! < K   > * M 0 8 M $ A $ @  0 #  5  ( ? 0 B * # ": { level1: [ { question: "( ? . M ( 2 ?  ? $ . G  8 G  L ( 8 >    ! < K   G * M 0 8 M $ A $ @  0 #  >   * M 0  > 0 9 H ?", options: [", > 0  M 0 > + ", "8 . @  0 # ", ", @   # ? $ ", " M / > . ? $ ? "], answer: "A" }, { question: "   ! < K   > . > ' M /  M  > $  0 ( G  > 8 B $ M 0  M / > 9 H ?", options: ["8 - @ . > ( K   > / K  /  A 2 8   M / > ", " ' ?  $ . . > ( - ( M / B ( $ . . > ( ", ". ' M / . > ( ", ", > 0  , > 0 $ > 5 > 2 > . > ( "], answer: "A" } ], level2: [ { question: "8   M / > 2, 4, 6, 8, 10  > . > ' M /  M / > 9 H ?", options: ["6", "5", "7", "8"], answer: "A" } ], level3: [ { question: "  , > 0  , > 0 $ > ,   ( . G  / & ? . > ' M / 20  0 . > ' M / ?  > 25 9 H , $ K , 9 A 2   M / > 9 K  > ? ( ( A - 5  ( M / 8  ,  ' )", options: ["35", "30", "25", "20"], answer: "A" } ] }, "0 G 2 5 G / > , 8 8 . / - 8 > 0 ? # @ ": { level1: [ { question: "/ & ?   , 8 8 A , 9 8:00 ,  G  2 $ @ 9 H  0 5    G , > &   $ 5 M / * 9 A   $ @ 9 H , $ K 5 9  ? $ ( G ,  G * 9 A   G  @ ?", options: ["1:00 ,  G & K * 9 0 ", "1:00 ,  G 0 > $ ", "3:00 ,  G & K * 9 0 ", "2:00 ,  G & K * 9 0 "], answer: "A" }, { question: "   M 0 G ( 60  ? . @ /   >  @  $ ? 8 G  2 $ @ 9 H d 3    G . G  5 9  ? $ ( @ & B 0 @ $ /  0 G  @ ?", options: ["180  ? . @ ", "120  ? . @ ", "240  ? . @ ", "300  ? . @ "], answer: "A" } ], level2: [ { question: "   M 0 G ( 10:15 ,  G  2 $ @ 9 H  0 13:45 ,  G * 9 A   $ @ 9 H d / > $ M 0 >  @  5 ' ?  M / > 9 H ?", options: ["3    G 30 . ? (  ", "3    G ", "4    G ", "2    G 30 . ? (  "], answer: "A" } ], level3: [ { question: "& K  M 0 G ( G   M 0 . 6  80  ? . @ /   >  0 70  ? . @ /   >  @  $ ? 8 G   & B 8 0 G  @  0  2 0 9 @ 9 H  d / & ? (  G , @   @ & B 0 @ 450  ? . @ 9 H , $ K 5 G  ? $ ( G 8 . / , > & . ? 2 G   @ ?", options: ["3    G ", "2.5    G ", "4    G ", "3.5    G "], answer: "A" } ] }, "5 0 M  5 0 M  . B 2  ( -  ( . B 2 ": { level1: [ { question: "12  > 5 0 M   M / > 9 H ?", options: ["144", "122", "124", "136"], answer: "A" }, { question: ""81 = ?", options: ["9", "8", "7", "10"], answer: "A" } ], level2: [ { question: "5  >  (  M / > 9 H ?", options: ["125", "25", "75", "100"], answer: "A" }, { question: ""64 = ?", options: ["4", "8", "6", "5"], answer: "A" } ], level3: [ { question: ""(2025)  > . > (  M / > 9 H ?", options: ["45", "35", "55", "65"], answer: "A" } ] }, " > $ >    0 # @ ": { level1: [ { question: "2³ × 2² = ?", options: ["32", "64", "16", "8"], answer: "A" }, { question: ""2 × "8 = ?", options: ["4", "2", "8", "16"], answer: "A" } ], level2: [ { question: "(2u ) ÷ (2³) = ?", options: ["4", "8", "2", "16"], answer: "A" } ], level3: [ { question: ""(3 + 2"2)  > . > (  M / > 9 H ?", options: [""2 + 1", ""2 - 1", "2", ""3"], answer: "A" } ] }, " ( A * > $ - 8 . > ( A * > $ ": { level1: [ { question: "5 : 10  G  ( A * > $  K 8 0 2  @  ?  ?", options: ["1:2", "2:1", "1:3", "2:3"], answer: "A" }, { question: "/ & ? A : B = 2 : 3  0 B : C = 4 : 5, $ K A : C  M / > 9 H ?", options: ["8:15", "6:15", "12:15", "10:15"], answer: "A" } ], level2: [ { question: "/ & ? 15, x  0 25, 20 8 . > ( A * > $ . G  9 H  , $ K x  > . > (  M / > 9 H ?", options: ["12", "10", "15", "18"], answer: "A" } ], level3: [ { question: "& K 8   M / >    >  ( A * > $ 5:8 9 H d / & ? * M 0 $ M / G  . G  6  K ! < & ? / >  >  , $ K  ( A * > $ 7:10 9 K  > $ > 9 H d 8   M / >    M  > $  0 G  ?", options: ["15, 24", "10, 16", "20, 32", "25, 40"], answer: "A" } ] }, ", @   # ? $ ": { level1: [ { question: "/ & ? x + 5 = 10, $ K x = ?", options: ["5", "15", "10", "2"], answer: "A" }, { question: "2x + 3x = ?", options: ["5x", "6x", "x", "5x²"], answer: "A" } ], level2: [ { question: "(x + 3)(x - 2)  > 5 ? 8 M $ > 0  M / > 9 H ?", options: ["x² + x - 6", "x² - x + 6", "x² + 5x + 6", "x² - 5x - 6"], answer: "A" } ], level3: [ { question: "/ & ? x + y = 7  0 xy = 12, $ K x² + y²  > . > (  M / > 9 H ?", options: ["25", "49", "24", "13"], answer: "A" } ] } }; // Complete list of 19 Mathematics topics const allTopics = [ "8   M / >    5  8   M / >    >  K ! < ,   > ( >  A # > , - >  ", "2  A $ M $ . 8 . > * 5 0 M $ M /  5  . 9 $ M $ . 8 . > * 5 0 M $  ", "- ? ( M ( K   >  K ! < ,   > ( > ,  A # > 5 - >  ", "& 6 . 2 5 -  K ! < ,   > ( > ,  A # > 5 - >  ", "  ?  ( ? / . ", "* M 0 $ ? 6 $ ", "2 > - 9 > ( ? ", "8 > ' > 0 # , M / >  ", " M / > . ? $ ?  M / > . ? $ @ /   C $ ? / >   5  * C 7 M ,  K # , $ M 0 ? - A  , 5 C $ M $ ", "' ( (0 A * / > - * H 8 > )", ". > * ( 8 . / , $ L 2 , ' > 0 ? $ > , 2 . M , >   5  $ > * ", ". G ( M 8 A 0 G 6 ( - * 0 ? . ? $ ? (* 0 ? . > * ) - $ M 0 ? - A  ,  / $ , 5 0 M  ,  $ A 0 M - A   M 7 G $ M 0 + 2 -  / $ , 5 0 M  /  / $ ( , ' > 0 ? $ > - ' ( ,  ( > - ", " H 2 G # M ! 0 ", "   ! < G ,    ! < K   > * M 0 8 M $ A $ @  0 #  5  ( ? 0 B * # ", "0 G 2 5 G / > , 8 8 . / - 8 > 0 ? # @ ", "5 0 M  5 0 M  . B 2  ( -  ( . B 2 ", " > $ >    0 # @ ", " ( A * > $ - 8 . > ( A * > $ ", ", @   # ? $ " ]; // DOM Elements const startContainer = document.getElementById('startContainer'); const startScreen = document.getElementById('startScreen'); const subjectSelection = document.getElementById('subjectSelection'); const chapterSelection = document.getElementById('chapterSelection'); const levelSelection = document.getElementById('levelSelection'); const generatedPaperContainer = document.getElementById('generatedPaperContainer'); const startGeneratingBtn = document.getElementById('startGeneratingBtn'); const selectMathBtn = document.getElementById('selectMathBtn'); const backToStartBtn = document.getElementById('backToStartBtn'); const generateAssignmentBtn = document.getElementById('generateAssignmentBtn'); const backToChaptersBtn = document.getElementById('backToChaptersBtn'); const generateFinalBtn = document.getElementById('generateFinalBtn'); const level1Btn = document.getElementById('level1Btn'); const level2Btn = document.getElementById('level2Btn'); const level3Btn = document.getElementById('level3Btn'); let selectedChapters = []; let selectedLevel = null; function populateChapters() { const container = document.getElementById('chapterCheckboxContainer'); container.innerHTML = `<div class="checkbox-item"><input type="checkbox" id="fullPaper" value="full"><label for="fullPaper">* B 0 M # * > M /  M 0 . (8 - @ ${allTopics.length} 5 ? 7 / )</label></div>`; allTopics.forEach((topic, idx) => { container.innerHTML += `<div class="checkbox-item"><input type="checkbox" id="topic_${idx}" name="chapter" value="${topic}"><label for="topic_${idx}">${idx+1}. ${topic}</label></div>`; }); const fullPaperCheckbox = document.getElementById('fullPaper'); if(fullPaperCheckbox) { fullPaperCheckbox.addEventListener('change', function() { const allChapterCheckboxes = document.querySelectorAll('input[name="chapter"]'); allChapterCheckboxes.forEach(cb => cb.disabled = this.checked); }); } } function getRandomQuestions(chapters, level, count) { let allQuestions = []; chapters.forEach(ch => { if(questions[ch] && questions[ch][`level${level}`]) { allQuestions = allQuestions.concat(questions[ch][`level${level}`]); } }); if(allQuestions.length === 0) { return [{ question: "* M 0 6 M ( * 2 , M ' ( 9 @  9 H  d  C * / >  ( M /  ' M / > /  A ( G  d ", options: ["A", "B", "C", "D"], answer: "A" }]; } allQuestions = allQuestions.sort(() => Math.random() - 0.5); return allQuestions.slice(0, Math.min(count, allQuestions.length)); } // Event Listeners startGeneratingBtn.addEventListener('click', function() { startScreen.classList.add('hidden'); subjectSelection.classList.remove('hidden'); }); selectMathBtn.addEventListener('click', function() { subjectSelection.classList.add('hidden'); populateChapters(); chapterSelection.classList.remove('hidden'); }); backToStartBtn.addEventListener('click', function() { generatedPaperContainer.classList.add('hidden'); startContainer.classList.remove('hidden'); chapterSelection.classList.add('hidden'); levelSelection.classList.add('hidden'); startScreen.classList.remove('hidden'); subjectSelection.classList.add('hidden'); }); generateAssignmentBtn.addEventListener('click', function() { const fullPaper = document.getElementById('fullPaper'); if(fullPaper && fullPaper.checked) { selectedChapters = [...allTopics]; } else { selectedChapters = Array.from(document.querySelectorAll('input[name="chapter"]:checked')).map(cb => cb.value); } if(selectedChapters.length === 0) { alert(" C * / >  . 8 G  .    ' M / > / /5 ? 7 /  A ( G  !"); return; } chapterSelection.classList.add('hidden'); levelSelection.classList.remove('hidden'); }); backToChaptersBtn.addEventListener('click', function() { levelSelection.classList.add('hidden'); chapterSelection.classList.remove('hidden'); }); function selectLevel(level) { level1Btn.classList.remove('selected'); level2Btn.classList.remove('selected'); level3Btn.classList.remove('selected'); document.getElementById(`level${level}Btn`).classList.add('selected'); selectedLevel = level; } level1Btn.addEventListener('click', function() { selectLevel(1); }); level2Btn.addEventListener('click', function() { selectLevel(2); }); level3Btn.addEventListener('click', function() { selectLevel(3); }); generateFinalBtn.addEventListener('click', function() { if(!selectedLevel) { alert(" C * / >  ? ( >  8 M $ 0  A ( G  !"); return; } startContainer.classList.add('hidden'); levelSelection.classList.add('hidden'); generatedPaperContainer.classList.remove('hidden'); generatedPaperContainer.innerHTML = ''; const mcqs = getRandomQuestions(selectedChapters, selectedLevel, 45); let questionNumber = 1; let paperContent = ` <div class="header"> <h2>UP TET Paper 1 -  # ? $  8 >  ( . G   </h2> <h3>${selectedChapters.length === allTopics.length ? "* B 0 M # * > M /  M 0 . (8 - @ 5 ? 7 / )" : selectedChapters.slice(0,3).join(", ")+ (selectedChapters.length>3 ? "..." : "")}</h3> <p>8 M $ 0 ${selectedLevel} - ${selectedLevel === 1 ? ", G 8 ?  " : selectedLevel === 2 ? ". ' M / . " : "* 0 @  M 7 > 8 M $ 0 "}</p> </div> <div class="content-area"> <div class="instructions"> <p><strong>( ? 0 M & G 6 :</strong></p> <ol> <li> 8  8 >  ( . G   . G  45 , 9 A 5 ?  2 M * @ / * M 0 6 M ( (MCQs) 9 H  d </li> <li>* M 0 $ M / G  * M 0 6 M (  G  > 0 5 ?  2 M * 9 H  ,  G 5 2   8 9 @ 9 H d </li> <li>  ? $ 5 ?  2 M *  >  / (  0 G  d </li> <li>8 . / : 60 . ? (  </li> </ol> </div> <div class="question-section"> <div class="section-heading">, 9 A 5 ?  2 M * @ / * M 0 6 M ( (MCQs)</div>`; mcqs.forEach(mcq => { paperContent += ` <div class="question"> <div class="question-text">${questionNumber}. ${mcq.question}</div> <div class="option">A. ${mcq.options[0]}</div> <div class="option">B. ${mcq.options[1]}</div> <div class="option">C. ${mcq.options[2]}</div> <div class="option">D. ${mcq.options[3]}</div> </div>`; questionNumber++; }); paperContent += ` </div> <div class="answer-sheet"> <h3 class="section-title"> $ M $ 0  A   @ (Answer Key)</h3> <table class="answer-table"> <thead> <tr> <th>* M 0 6 M ( 8  .</th><th> $ M $ 0 </th> <th>* M 0 6 M ( 8  .</th><th> $ M $ 0 </th> <th>* M 0 6 M ( 8  .</th><th> $ M $ 0 </th> </tr> </thead> <tbody>`; for(let i=0; i<mcqs.length; i+=3) { paperContent += `<tr>`; for(let j=0; j<3; j++) { if(i+j < mcqs.length) { paperContent += `<td>${i+j+1}</td><td>${mcqs[i+j].answer}</td>`; } else { paperContent += `<td></td><td></td>`; } } paperContent += `</tr>`; } paperContent += ` </tbody> </table> </div> <div class="action-buttons"> <button class="btn btn-primary" id="printBtn"><i class="fas fa-print"></i> * M 0 ?    0 G  </button> <button class="btn btn-success" id="downloadBtn"><i class="fas fa-download"></i> PDF ! > ( 2 K !  0 G  </button> <button class="btn btn-danger" id="newAssignmentBtn"><i class="fas fa-plus"></i> ( / >  8 >  ( . G   </button> </div> </div>`; generatedPaperContainer.innerHTML = paperContent; document.getElementById('printBtn').addEventListener('click', function() { window.print(); }); document.getElementById('downloadBtn').addEventListener('click', downloadPDF); document.getElementById('newAssignmentBtn').addEventListener('click', function() { generatedPaperContainer.classList.add('hidden'); startContainer.classList.remove('hidden'); startScreen.classList.remove('hidden'); subjectSelection.classList.add('hidden'); chapterSelection.classList.add('hidden'); levelSelection.classList.add('hidden'); selectedLevel = null; level1Btn.classList.remove('selected'); level2Btn.classList.remove('selected'); level3Btn.classList.remove('selected'); }); }); async function downloadPDF() { const element = document.getElementById('generatedPaperContainer'); const tempDiv = document.createElement('div'); tempDiv.style.position = 'absolute'; tempDiv.style.left = '-9999px'; tempDiv.style.width = '794px'; tempDiv.style.backgroundColor = 'white'; tempDiv.style.padding = '20px'; tempDiv.innerHTML = element.innerHTML; document.body.appendChild(tempDiv); try { const pdf = new jsPDF('p', 'mm', 'a4'); const pageWidth = pdf.internal.pageSize.getWidth() - 25.4; const pageHeight = pdf.internal.pageSize.getHeight() - 25.4; let position = 12.7; let remainingHeight = tempDiv.scrollHeight; let pageNum = 1; while(remainingHeight > 0) { const canvas = await html2canvas(tempDiv, { scale: 2, windowHeight: pageHeight * 3.78, windowWidth: pageWidth * 3.78, y: position * 3.78, height: pageHeight * 3.78, useCORS: true, backgroundColor: '#ffffff', logging: false }); const imgData = canvas.toDataURL('image/jpeg', 0.95); if(pageNum > 1) pdf.addPage('a4', 'portrait'); pdf.addImage(imgData, 'JPEG', 12.7, 12.7, pageWidth, (canvas.height * pageWidth) / canvas.width); position += pageHeight; remainingHeight -= pageHeight * 3.78; pageNum++; } pdf.save('UP_TET_Mathematics_Assignment.pdf'); } catch(err) { console.error(err); alert('PDF  ( 0 G 6 ( . G  $ M 0 A  ? d  C * / > * A (  * M 0 / > 8  0 G  d '); } finally { if(tempDiv && tempDiv.parentNode) document.body.removeChild(tempDiv); } } </script> </body> </html>