ÿþ<!DOCTYPE html> <html lang="hi"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>UP TET * G * 0 -1 | - > 7 > & M 5 ? $ @ /     M 0 G  @ | & H ( ?   - M / > 8  ( 0 G  0 </title> <link href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='45' fill='%234361ee'/%3E%3Ctext x='50' y='68' font-size='48' text-anchor='middle' fill='white' font-weight='bold'%3EEn%3C/text%3E%3C/svg%3E" 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', 'Poppins', system-ui, 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: 1100px; 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; bottom: 10px; right: 20px; font-size: 70px; opacity: 0.1; } .header h1 { font-size: 1.9rem; margin-bottom: 10px; font-weight: 700; letter-spacing: -0.5px; } .header p { font-size: 1rem; opacity: 0.9; } .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); } .btn-success { background: #28a745; color: white; } .btn-success:hover { background: #218838; transform: translateY(-2px); } .btn-danger { background: var(--danger); color: white; } .btn-danger:hover { background: #d3166b; transform: translateY(-2px); } .btn-level { background: var(--light); color: var(--dark); border: 2px solid var(--gray); font-size: 1.1rem; padding: 14px 28px; 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: 12px; margin: 20px 0; } .level-buttons { display: flex; justify-content: center; gap: 25px; margin: 30px 0; flex-wrap: wrap; } .section-title { text-align: center; margin-bottom: 25px; color: var(--primary-dark); font-size: 1.6rem; position: relative; padding-bottom: 12px; font-weight: 600; } .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(310px, 1fr)); gap: 14px; margin: 25px 0; max-height: 480px; overflow-y: auto; padding: 15px; border: 1px solid #e2e8f0; border-radius: 18px; background: #fafef7; } .checkbox-item { display: flex; align-items: center; background: white; padding: 8px 12px; border-radius: 40px; transition: all 0.2s; border: 1px solid #e9ecef; } .checkbox-item:hover { background: #e8f0fe; transform: translateX(3px); } .checkbox-item input { margin-right: 12px; width: 18px; height: 18px; cursor: pointer; accent-color: var(--primary); } .checkbox-item label { cursor: pointer; font-size: 0.92rem; font-weight: 500; } .question { margin-bottom: 25px; page-break-inside: avoid; background: #ffffff; padding: 15px; border-radius: 16px; box-shadow: 0 1px 2px rgba(0,0,0,0.05); border-left: 4px solid var(--secondary); } .question-text { font-weight: 700; margin-bottom: 12px; font-size: 1.05rem; color: #2d3748; } .option { margin-left: 24px; margin-bottom: 6px; color: #4a5568; } .action-buttons { display: flex; justify-content: center; flex-wrap: wrap; gap: 18px; margin-top: 40px; } .answer-sheet { margin-top: 40px; padding: 20px; background: #f0faf4; border-radius: var(--border-radius); } .answer-table { width: 100%; border-collapse: collapse; margin-top: 15px; border-radius: 12px; overflow: hidden; } .answer-table th, .answer-table td { border: 1px solid #cbd5e0; padding: 10px; text-align: center; } .answer-table th { background-color: var(--primary); color: white; font-weight: 600; } .streak-container { display: flex; justify-content: center; align-items: center; margin: 20px 0; gap: 20px; flex-wrap: wrap; } .streak-counter { background: #ff9100; color: white; padding: 10px 20px; border-radius: 60px; font-weight: bold; box-shadow: 0 4px 10px rgba(0,0,0,0.1); } .date-display { font-size: 1rem; font-weight: 600; background: #e2e8f0; padding: 8px 18px; border-radius: 40px; color: var(--primary-dark); } .progress-container { margin: 20px 0; background: #edf2f7; padding: 20px; border-radius: 28px; } .progress-bar { height: 12px; background: #cbd5e0; border-radius: 20px; overflow: hidden; margin-top: 12px; } .progress-fill { height: 100%; background: var(--success); border-radius: 20px; transition: width 0.5s ease; } .problem-of-day { background: linear-gradient(115deg, #fff6e5, #ffedd5); border-left: 5px solid var(--danger); padding: 20px; margin: 20px 0; border-radius: 24px; } .daily-summary { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 15px; margin: 20px 0; } .summary-card { flex: 1; min-width: 110px; background: white; padding: 15px; border-radius: 20px; box-shadow: 0 8px 20px rgba(0,0,0,0.05); text-align: center; border: 1px solid #e2e8f0; } .home-icon { position: absolute; top: 20px; left: 20px; color: white; font-size: 26px; cursor: pointer; transition: transform 0.2s; z-index: 5; background: rgba(0,0,0,0.2); width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; } .home-icon:hover { transform: scale(1.08); background: rgba(0,0,0,0.4); } .instructions { margin-bottom: 30px; padding: 18px 22px; background: #f7fafc; border-radius: 24px; border: 1px solid #e2e8f0; } @media (max-width: 680px) { .header h1 { font-size: 1.3rem; } .btn-level { width: 140px; font-size: 0.9rem; padding: 12px 16px; } .checkbox-container { grid-template-columns: 1fr; } } @media print { .action-buttons, .streak-container, .progress-container, .problem-of-day, .daily-summary, .home-icon { display: none; } .question { break-inside: avoid; } } .topic-badge { background: var(--secondary); color: white; font-size: 0.7rem; border-radius: 20px; padding: 2px 10px; display: inline-block; margin-bottom: 8px; } </style> </head> <body> <div class="container" id="startContainer"> <div class="header"> <a href="up-tet-exam-paper1-daily-practice-problem-generator.html" class="home-icon" ><i class="fas fa-language"></i></a> <h1><i class="fas fa-book-open"></i> UP TET * G * 0 -1</h1> <p>- > 7 > & M 5 ? $ @ /     M 0 G  @ | & H ( ?   - M / > 8 8 . 8 M / >  ( 0 G  0 (9 ?  & @ . G  )</p> </div> <div class="content-area"> <div id="startScreen"> <h2 class="section-title">=ØÖÜ English Language & Pedagogy</h2> <div class="streak-container"> <div class="streak-counter"><i class="fas fa-fire"></i> 2  > $ > 0 : <span id="streakDays">0</span> & ? ( </div> <div class="date-display" id="currentDate"></div> </div> <div class="progress-container"> <h3><i class="fas fa-chart-line"></i>  *  @ * M 0  $ ? </h3> <div class="progress-bar"><div class="progress-fill" id="progressFill" style="width: 0%"></div></div> <p id="progressText" style="margin-top: 8px;">0% * B 0 M # </p> </div> <div class="btn-group"> <button class="btn btn-primary" id="problemOfDayBtn"><i class="fas fa-calendar-day"></i> & ? (  @ 8 . 8 M / > </button> <button class="btn btn-success" id="customPracticeBtn"><i class="fas fa-pen-ruler"></i>  8 M  .  - M / > 8 </button> </div> </div> <div id="subjectSelection" class="hidden"> <h2 class="section-title"><Ø¯ß 5 ? 7 /  / ( </h2> <div class="btn-group"><button class="btn btn-primary" id="selectEnglishBtn"><i class="fas fa-language"></i> - > 7 > & M 5 ? $ @ /     M 0 G  @ </button></div> </div> <div id="topicSelection" class="hidden"> <h2 class="section-title">=ØÚÜ  ' M / > / K   >  / (  0 G  (19  ' M / > / )</h2> <form id="topicForm"> <div class="checkbox-container" id="topicsContainer"></div> </form> <div class="btn-group"> <button class="btn btn-danger" id="backToStartBtn"><i class="fas fa-arrow-left"></i> * M 0 > 0  - * 0 5 > * 8 </button> <button class="btn btn-success" id="generateAssignmentBtn"><i class="fas fa-cogs"></i>  - M / > 8 * M 0 6 M (  G ( 0 G   0 G  </button> </div> </div> <div id="levelSelection" class="hidden"> <h2 class="section-title">¡&  ? ( >  8 M $ 0  A ( G  </h2> <p class="text-center" style="text-align:center; margin-bottom:10px;"> * ( G TET 8 M $ 0  G  ( A 8 > 0  A ( G  :</p> <div class="level-buttons"> <button class="btn btn-level" id="level1Btn">8 M $ 0 1 <br><small>, G 8 ?  / TET  ' > 0 </small></button> <button class="btn btn-level" id="level2Btn">8 M $ 0 2 <br><small>. ' M / . (UP TET . > (  )</small></button> <button class="btn btn-level" id="level3Btn">8 M $ 0 3 <br><small> ( M ( $ (5 ? 6 M 2 G 7 # > $ M .  )</small></button> </div> <div class="btn-group"> <button class="btn btn-danger" id="backToTopicsBtn">5 ? 7 / K  * 0 5 > * 8 </button> <button class="btn btn-success" id="generateFinalBtn"> - M / > 8 * M 0 6 M (  G ( 0 G   0 G  </button> </div> </div> </div> </div> <div class="container hidden" id="generatedPaperContainer"></div> <script> const { jsPDF } = window.jspdf; const startContainer = document.getElementById('startContainer'); const startScreen = document.getElementById('startScreen'); const subjectSelection = document.getElementById('subjectSelection'); const topicSelection = document.getElementById('topicSelection'); const levelSelection = document.getElementById('levelSelection'); const generatedPaperContainer = document.getElementById('generatedPaperContainer'); // ======================== - > 7 > & M 5 ? $ @ /     M 0 G  @ (19  ' M / > / ) ======================== const chaptersList = [ "Unseen Passage", "The Sentences - Subject and Predicate", "Kinds of Sentences", "Parts of Speech", "Noun-Kinds of Noun, Singular & Plural, Gender", "Pronoun", "Adverb", "Adjective", "Verb", "Preposition", "Conjunction", "Interjection", "Tenses - Present, Past, Future", "Articles", "Punctuation", "Word Formation", "Active & Passive Voice", "Conditional Sentence", "Vocabulary" ]; // ===============  ' M / > / 5 > 0 * M 0 6 M ( ! G  > , G 8 (8 . C & M ' , 8 M $ 0 > ( A 8 > 0 ) =============== const questions = {}; // 1. Unseen Passage questions["Unseen Passage"] = { level1: [ { question: "What is an unseen passage?", options: ["A passage not read before", "A difficult passage", "A long poem", "A grammar exercise"], answer: "A" }, { question: "To answer questions from an unseen passage, you should:", options: ["Read the passage carefully", "Guess the answers", "Skip the passage", "Only see the first line"], answer: "A" } ], level2: [ { question: "What skill does solving unseen passages primarily develop?", options: ["Reading comprehension", "Writing speed", "Vocabulary memorization", "Grammar rules"], answer: "A" } ], level3: [ { question: "In an unseen passage, the main idea is usually found:", options: ["In the first or last sentence of a paragraph", "In the middle", "Scattered randomly", "In the title only"], answer: "A" } ] }; // 2. Subject and Predicate questions["The Sentences - Subject and Predicate"] = { level1: [ { question: "In the sentence 'The sun rises in the east', what is the subject?", options: ["The sun", "rises", "in the east", "sun rises"], answer: "A" }, { question: "Identify the predicate: 'Birds fly in the sky.'", options: ["fly in the sky", "Birds", "fly", "in the sky"], answer: "A" } ], level2: [ { question: "What is the subject in the sentence 'Stand up'?", options: ["You (implied)", "Stand", "up", "No subject"], answer: "A" } ], level3: [ { question: "In 'The boy who won the race is my brother', the subject is:", options: ["The boy who won the race", "The boy", "my brother", "won the race"], answer: "A" } ] }; // 3. Kinds of Sentences questions["Kinds of Sentences"] = { level1: [ { question: "'Please close the door.' is what kind of sentence?", options: ["Imperative", "Declarative", "Interrogative", "Exclamatory"], answer: "A" }, { question: "'What a beautiful flower!' is:", options: ["Exclamatory", "Interrogative", "Declarative", "Imperative"], answer: "A" } ], level2: [ { question: "Identify the sentence type: 'She is studying for the exam.'", options: ["Declarative", "Imperative", "Interrogative", "Exclamatory"], answer: "A" } ], level3: [ { question: "Convert 'She is very intelligent.' into an exclamatory sentence.", options: ["How intelligent she is!", "Is she intelligent?", "She is intelligent, isn't she?", "What an intelligent she is!"], answer: "A" } ] }; // 4. Parts of Speech questions["Parts of Speech"] = { level1: [ { question: "'Beautiful' is which part of speech?", options: ["Adjective", "Noun", "Verb", "Adverb"], answer: "A" }, { question: "Identify the part of speech: 'She runs quickly.' - 'quickly' is:", options: ["Adverb", "Adjective", "Verb", "Noun"], answer: "A" } ], level2: [ { question: "Which part of speech shows the relationship of a noun to another word?", options: ["Preposition", "Conjunction", "Interjection", "Pronoun"], answer: "A" } ], level3: [ { question: "In 'The man gave me a pen', the word 'me' is:", options: ["Pronoun", "Noun", "Adjective", "Verb"], answer: "A" } ] }; // 5. Noun & its kinds questions["Noun-Kinds of Noun, Singular & Plural, Gender"] = { level1: [ { question: "'Team' is what kind of noun?", options: ["Collective Noun", "Proper Noun", "Abstract Noun", "Common Noun"], answer: "A" }, { question: "Plural of 'Child' is:", options: ["Children", "Childs", "Childes", "Childeren"], answer: "A" } ], level2: [ { question: "Identify the gender: 'Actress' is:", options: ["Feminine", "Masculine", "Neuter", "Common"], answer: "A" }, { question: "'Honesty' is an example of:", options: ["Abstract Noun", "Proper Noun", "Collective Noun", "Concrete Noun"], answer: "A" } ], level3: [ { question: "Which of the following is a common gender noun?", options: ["Teacher", "Boy", "Girl", "King"], answer: "A" } ] }; // 6. Pronoun questions["Pronoun"] = { level1: [ { question: "Replace the noun: 'John is a doctor. ___ works hard.'", options: ["He", "She", "It", "They"], answer: "A" }, { question: "Which pronoun is used for a group of people?", options: ["They", "He", "She", "It"], answer: "A" } ], level2: [ { question: "Identify the pronoun: 'This is the book that I bought.'", options: ["that", "this", "is", "bought"], answer: "A" } ], level3: [ { question: "Choose the correct pronoun: 'Neither of the boys did ___ homework.'", options: ["his", "their", "its", "our"], answer: "A" } ] }; // 7. Adverb questions["Adverb"] = { level1: [ { question: "Identify the adverb: 'She sings beautifully.'", options: ["beautifully", "sings", "She", "sings beautifully"], answer: "A" }, { question: "'He arrived early.' The word 'early' is:", options: ["Adverb", "Adjective", "Noun", "Verb"], answer: "A" } ], level2: [ { question: "Which adverb modifies the adjective? 'This is very good.'", options: ["very", "good", "is", "this"], answer: "A" } ], level3: [ { question: "Identify the type: 'She almost finished the work.'", options: ["Adverb of degree", "Adverb of manner", "Adverb of time", "Adverb of place"], answer: "A" } ] }; // 8. Adjective questions["Adjective"] = { level1: [ { question: "Identify the adjective: 'The red car is fast.'", options: ["red", "car", "fast", "is"], answer: "A" }, { question: "'She is taller than me.' The word 'taller' is:", options: ["Adjective", "Adverb", "Verb", "Noun"], answer: "A" } ], level2: [ { question: "Which adjective shows quantity? 'I have some water.'", options: ["some", "water", "have", "I"], answer: "A" } ], level3: [ { question: "Correct order of adjectives: 'a ___ dress'", options: ["beautiful long red", "red long beautiful", "long beautiful red", "beautiful red long"], answer: "A" } ] }; // 9. Verb questions["Verb"] = { level1: [ { question: "Identify the verb: 'The dog barks loudly.'", options: ["barks", "dog", "loudly", "the"], answer: "A" }, { question: "Which is a helping verb?", options: ["is", "run", "eat", "write"], answer: "A" } ], level2: [ { question: "Identify transitive verb: 'She kicked the ball.'", options: ["kicked", "She", "ball", "the"], answer: "A" } ], level3: [ { question: "In 'I have finished my work', the verb 'have finished' is:", options: ["Present Perfect", "Past Perfect", "Present Continuous", "Simple Past"], answer: "A" } ] }; // 10. Preposition questions["Preposition"] = { level1: [ { question: "Fill in: 'The book is ___ the table.'", options: ["on", "in", "at", "under"], answer: "A" }, { question: "Identify preposition: 'She went to the market.'", options: ["to", "went", "market", "she"], answer: "A" } ], level2: [ { question: "Which preposition shows time? 'I wake up at 6 AM.'", options: ["at", "up", "in", "on"], answer: "A" } ], level3: [ { question: "Correct preposition: 'He is good ___ mathematics.'", options: ["at", "in", "on", "for"], answer: "A" } ] }; // 11. Conjunction questions["Conjunction"] = { level1: [ { question: "Identify conjunction: 'I like tea and coffee.'", options: ["and", "like", "tea", "coffee"], answer: "A" }, { question: "'He is poor but honest.' The conjunction is:", options: ["but", "is", "poor", "honest"], answer: "A" } ], level2: [ { question: "Which conjunction shows cause?", options: ["because", "and", "or", "but"], answer: "A" } ], level3: [ { question: "Choose the correct conjunction: 'I will wait ___ you come.'", options: ["until", "and", "or", "so"], answer: "A" } ] }; // 12. Interjection questions["Interjection"] = { level1: [ { question: "'Wow! That's amazing.' The interjection is:", options: ["Wow", "amazing", "that's", "the"], answer: "A" }, { question: "Which word is an interjection?", options: ["Alas", "Run", "Beautiful", "Quickly"], answer: "A" } ], level2: [ { question: "Identify interjection: 'Oh! I forgot my keys.'", options: ["Oh", "forgot", "keys", "my"], answer: "A" } ], level3: [ { question: "The interjection 'Hurrah!' expresses:", options: ["Joy", "Sorrow", "Surprise", "Pain"], answer: "A" } ] }; // 13. Tenses questions["Tenses - Present, Past, Future"] = { level1: [ { question: "Identify tense: 'She writes a letter.'", options: ["Present Indefinite", "Past Indefinite", "Future Indefinite", "Present Continuous"], answer: "A" }, { question: "'He will come tomorrow.' is which tense?", options: ["Future Indefinite", "Present Indefinite", "Past Indefinite", "Future Continuous"], answer: "A" } ], level2: [ { question: "Correct form: 'They ___ (play) football now.'", options: ["are playing", "play", "played", "will play"], answer: "A" } ], level3: [ { question: "Convert to Past Perfect: 'I eat breakfast.'", options: ["I had eaten breakfast", "I ate breakfast", "I have eaten breakfast", "I was eating breakfast"], answer: "A" } ] }; // 14. Articles questions["Articles"] = { level1: [ { question: "Fill in: 'He is ___ honest man.'", options: ["an", "a", "the", "no article"], answer: "A" }, { question: "'Sun' is used with which article?", options: ["the", "a", "an", "no article"], answer: "A" } ], level2: [ { question: "Which article is used before a singular countable noun mentioned for the first time?", options: ["a/an", "the", "no article", "some"], answer: "A" } ], level3: [ { question: "Choose correct: 'She is ___ European.'", options: ["a", "an", "the", "none"], answer: "A" } ] }; // 15. Punctuation questions["Punctuation"] = { level1: [ { question: "What punctuation ends a question?", options: ["?", "!", ".", ","], answer: "A" }, { question: "Which punctuation shows strong emotion?", options: ["!", "?", ".", ";"], answer: "A" } ], level2: [ { question: "Correct punctuation: 'Where are you going'", options: ["Where are you going?", "Where are you going.", "Where are you going!", "Where are you going,"], answer: "A" } ], level3: [ { question: "Choose correctly punctuated: 'Yes she said I will come'", options: ["'Yes,' she said, 'I will come.'", "Yes she said I will come.", "Yes, she said I will come!", "Yes she said, I will come?"], answer: "A" } ] }; // 16. Word Formation questions["Word Formation"] = { level1: [ { question: "Adding 'un' to 'happy' forms:", options: ["unhappy", "happily", "happiness", "happier"], answer: "A" }, { question: "The suffix '-ness' changes an adjective into:", options: ["Noun", "Verb", "Adverb", "Adjective"], answer: "A" } ], level2: [ { question: "Which prefix means 'again'?", options: ["re-", "pre-", "un-", "dis-"], answer: "A" } ], level3: [ { question: "The word 'incredible' is formed by adding prefix to:", options: ["credible", "cred", "incred", "ible"], answer: "A" } ] }; // 17. Active & Passive Voice questions["Active & Passive Voice"] = { level1: [ { question: "Convert to passive: 'Ram eats an apple.'", options: ["An apple is eaten by Ram", "An apple was eaten by Ram", "An apple is being eaten by Ram", "An apple has been eaten by Ram"], answer: "A" }, { question: "Identify active voice: 'The letter was written by him.'", options: ["He wrote the letter", "The letter was written", "Writing the letter", "Letter written"], answer: "A" } ], level2: [ { question: "Passive of 'They will build a house' is:", options: ["A house will be built by them", "A house was built by them", "A house is built by them", "A house has been built by them"], answer: "A" } ], level3: [ { question: "Passive of 'Who wrote this poem?'", options: ["By whom was this poem written?", "Whom was this poem written by?", "This poem was written by whom?", "Who was this poem written by?"], answer: "A" } ] }; // 18. Conditional Sentence questions["Conditional Sentence"] = { level1: [ { question: "If it rains, we ___ the match.", options: ["will cancel", "cancel", "cancelled", "would cancel"], answer: "A" }, { question: "Which conditional expresses general truth?", options: ["Zero Conditional", "First Conditional", "Second Conditional", "Third Conditional"], answer: "A" } ], level2: [ { question: "If I ___ you, I would say sorry.", options: ["were", "was", "am", "is"], answer: "A" } ], level3: [ { question: "If she had studied, she ___ passed.", options: ["would have", "will have", "would", "has"], answer: "A" } ] }; // 19. Vocabulary questions["Vocabulary"] = { level1: [ { question: "Synonym of 'Happy' is:", options: ["Joyful", "Sad", "Angry", "Tired"], answer: "A" }, { question: "Antonym of 'Dark' is:", options: ["Light", "Night", "Black", "Gloomy"], answer: "A" } ], level2: [ { question: "What does 'Benevolent' mean?", options: ["Kind", "Cruel", "Strict", "Angry"], answer: "A" } ], level3: [ { question: "Which word means 'a person who loves books'?", options: ["Bibliophile", "Philanthropist", "Introvert", "Optimist"], answer: "A" } ] }; const finalTopicList = chaptersList; let selectedTopics = []; let selectedLevel = null; let userProgress = { streak: 0, lastPracticeDate: null, totalProblemsSolved: 0, topicsCompleted: 0, totalTopics: finalTopicList.length }; function loadUserProgress() { const saved = localStorage.getItem('upTetEnglishProgress'); if (saved) userProgress = JSON.parse(saved); const today = new Date().toDateString(); if (userProgress.lastPracticeDate !== today) { const yesterday = new Date(); yesterday.setDate(yesterday.getDate() - 1); if (userProgress.lastPracticeDate === yesterday.toDateString()) userProgress.streak++; else userProgress.streak = 1; userProgress.lastPracticeDate = today; saveUserProgress(); } updateUI(); } function saveUserProgress() { localStorage.setItem('upTetEnglishProgress', JSON.stringify(userProgress)); } function updateUI() { document.getElementById('streakDays').textContent = userProgress.streak; const today = new Date(); document.getElementById('currentDate').textContent = today.toLocaleDateString('hi-IN', { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }); const percent = Math.min(100, Math.round((userProgress.topicsCompleted / userProgress.totalTopics) * 100)); document.getElementById('progressFill').style.width = `${percent}%`; document.getElementById('progressText').textContent = `${percent}% * B 0 M # (${userProgress.topicsCompleted}/${userProgress.totalTopics}  ' M / > / )`; } function getRandomQuestions(topicsArray, level, count) { let allQs = []; topicsArray.forEach(topic => { if (questions[topic] && questions[topic][`level${level}`]) { allQs = allQs.concat(questions[topic][`level${level}`]); } }); if(allQs.length === 0) return [{ question: "What is the basic unit of English grammar?", options: ["Sentence", "Word", "Paragraph", "Letter"], answer: "A" }]; allQs = allQs.sort(() => Math.random() - 0.5); return allQs.slice(0, count); } function renderTopics() { const container = document.getElementById('topicsContainer'); container.innerHTML = `<div class="checkbox-item" style="background:#e9f5ec;"><input type="checkbox" id="fullSyllabus" value="full"><label for="fullSyllabus"><strong>' 8  * B 0 M # * > M /  M 0 . (8 - @ 19  ' M / > / )</strong></label></div>`; finalTopicList.forEach(topic => { const id = `topic_${topic.replace(/[\s,?]/g, '_').substring(0, 30)}`; container.innerHTML += `<div class="checkbox-item"><input type="checkbox" id="${id}" name="topic" value="${topic}"><label for="${id}">${topic}</label></div>`; }); document.getElementById('fullSyllabus')?.addEventListener('change', (e) => { const allCheckboxes = document.querySelectorAll('input[name="topic"]'); allCheckboxes.forEach(cb => cb.disabled = e.target.checked); if(e.target.checked) allCheckboxes.forEach(cb => cb.checked = false); }); } // Event listeners document.getElementById('customPracticeBtn').addEventListener('click', () => { startScreen.classList.add('hidden'); subjectSelection.classList.remove('hidden'); }); document.getElementById('selectEnglishBtn').addEventListener('click', () => { renderTopics(); subjectSelection.classList.add('hidden'); topicSelection.classList.remove('hidden'); }); document.getElementById('backToStartBtn').addEventListener('click', () => { topicSelection.classList.add('hidden'); startContainer.classList.remove('hidden'); startScreen.classList.remove('hidden'); updateUI(); }); document.getElementById('generateAssignmentBtn').addEventListener('click', () => { const full = document.getElementById('fullSyllabus')?.checked; if (full) selectedTopics = [...finalTopicList]; else selectedTopics = Array.from(document.querySelectorAll('input[name="topic"]:checked')).map(cb => cb.value); if (selectedTopics.length === 0) { alert(" C * / >  . 8 G  .    ' M / > /  A ( G  !"); return; } topicSelection.classList.add('hidden'); levelSelection.classList.remove('hidden'); }); document.getElementById('backToTopicsBtn').addEventListener('click', () => { levelSelection.classList.add('hidden'); topicSelection.classList.remove('hidden'); }); document.getElementById('level1Btn').addEventListener('click', () => { document.querySelectorAll('.btn-level').forEach(b => b.classList.remove('selected')); document.getElementById('level1Btn').classList.add('selected'); selectedLevel = 1; }); document.getElementById('level2Btn').addEventListener('click', () => { document.querySelectorAll('.btn-level').forEach(b => b.classList.remove('selected')); document.getElementById('level2Btn').classList.add('selected'); selectedLevel = 2; }); document.getElementById('level3Btn').addEventListener('click', () => { document.querySelectorAll('.btn-level').forEach(b => b.classList.remove('selected')); document.getElementById('level3Btn').classList.add('selected'); selectedLevel = 3; }); document.getElementById('generateFinalBtn').addEventListener('click', () => { if (!selectedLevel) { alert(" C * / >  ? ( >  8 M $ 0  A ( G  !"); return; } generateAssignment(); }); document.getElementById('homeIconBtn').addEventListener('click', (e) => { e.preventDefault(); backToStart(); }); document.getElementById('problemOfDayBtn').addEventListener('click', generateProblemOfDay); function generateAssignment() { startContainer.classList.add('hidden'); levelSelection.classList.add('hidden'); generatedPaperContainer.classList.remove('hidden'); const topicNames = selectedTopics.length > 5 ? selectedTopics.slice(0,5).join(", ")+" ..." : selectedTopics.join(", "); const mcqs = getRandomQuestions(selectedTopics, selectedLevel, 10); let paperContent = ` <div class="header"><h2>=ØØÜ UP TET * G * 0 -1 (- > 7 > & M 5 ? $ @ /     M 0 G  @ )</h2><h3>=ØÌÜ ${selectedTopics.length === finalTopicList.length ? "8  * B 0 M # * > M /  M 0 . (19  ' M / > / )" : topicNames.substring(0, 85)}</h3><p>¡&  ? ( >  8 M $ 0 ${selectedLevel}  ${selectedLevel === 1 ? ", G 8 ?  " : selectedLevel === 2 ? ". ' M / . (UP TET . > (  )" : " ( M ( $ "}</p></div> <div class="content-area"><div class="instructions"><p><strong>( ? 0 M & G 6 (English Language Practice):</strong></p><ol><li>This set contains 10 multiple choice questions.</li><li>Each question is based on English grammar/language skills.</li><li>Solve in 15 minutes, then check with answer key.</li><li>Regular practice strengthens conceptual understanding.</li></ol></div> <div class="question-section"><div style="font-size:1.4rem; margin-bottom:20px; font-weight:bold;">'þ Practice Questions</div>`; let qNum = 1; mcqs.forEach(mcq => { paperContent += `<div class="question"><div class="question-text">${qNum}. ${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>`; qNum++; }); paperContent += `</div><div class="answer-sheet"><h3 class="section-title">=ØÝ Answer Key</h3><table class="answer-table"><thead><tr><th>Question No.</th><th>Answer</th><th>Question No.</th><th>Answer</th></tr></thead><tbody>`; for (let i = 0; i < mcqs.length; i += 2) { paperContent += `<tr><td>${i+1}</td><td><strong>${mcqs[i].answer}</strong></td>`; if (i+1 < mcqs.length) paperContent += `<td>${i+2}</td><td><strong>${mcqs[i+1].answer}</strong></td>`; else paperContent += `<td></td><td></td>`; paperContent += `</tr>`; } paperContent += `</tbody></table></div><div class="action-buttons"><button class="btn btn-success" id="markCompleteBtn"><i class="fas fa-check-circle"></i> Mark Complete</button><button class="btn btn-primary" id="printBtn"><i class="fas fa-print"></i> Print / PDF</button><button class="btn btn-danger" id="newAssignmentBtn"><i class="fas fa-undo-alt"></i> New Practice</button></div></div>`; generatedPaperContainer.innerHTML = paperContent; document.getElementById('markCompleteBtn')?.addEventListener('click', markPracticeComplete); document.getElementById('printBtn')?.addEventListener('click', () => window.print()); document.getElementById('newAssignmentBtn')?.addEventListener('click', backToStart); } function markPracticeComplete() { userProgress.totalProblemsSolved += 10; let newlyCompleted = 0; selectedTopics.forEach(t => { if (!userProgress[`comp_${t}`]) { userProgress[`comp_${t}`] = true; newlyCompleted++; } }); userProgress.topicsCompleted = Math.min(userProgress.totalTopics, userProgress.topicsCompleted + newlyCompleted); saveUserProgress(); updateUI(); alert("<Ø‰ß Excellent! Practice marked complete. Progress saved."); backToStart(); } function generateProblemOfDay() { const randomTopic = finalTopicList[Math.floor(Math.random() * finalTopicList.length)]; const randomLevel = Math.floor(Math.random() * 3) + 1; selectedTopics = [randomTopic]; selectedLevel = randomLevel; startContainer.classList.add('hidden'); generatedPaperContainer.classList.remove('hidden'); const mcq = getRandomQuestions(selectedTopics, selectedLevel, 1)[0]; let content = `<div class="header"><h2><Øß Daily Challenge (English)</h2><h3><Ø¯ß ${randomTopic}</h3><p>Level ${randomLevel}</p></div><div class="content-area"><div class="problem-of-day"><h3><i class="fas fa-star-of-life"></i> Today's Practice Question</h3><p>Maintain your learning streak by solving this!</p></div><div class="daily-summary"><div class="summary-card"><h4>=Ø%Ý Streak</h4><p>${userProgress.streak} days</p></div><div class="summary-card"><h4>' Solved</h4><p>${userProgress.totalProblemsSolved}</p></div><div class="summary-card"><h4>=ØÚÜ Progress</h4><p>${Math.round((userProgress.topicsCompleted / userProgress.totalTopics) * 100)}%</p></div></div><div class="question"><div class="question-text">${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><div class="answer-sheet"><h3>=ØÌÜ Solution</h3><p><strong>Correct Answer:</strong> ${mcq.answer}</p><p><strong>Explanation:</strong> Based on UP TET English language concepts.</p></div><div class="action-buttons"><button class="btn btn-success" id="markCompleteDailyBtn"><i class="fas fa-check"></i> Mark Complete</button><button class="btn btn-primary" id="printBtn">Print</button><button class="btn btn-danger" id="newAssignmentBtn">New Practice</button></div></div>`; generatedPaperContainer.innerHTML = content; document.getElementById('markCompleteDailyBtn')?.addEventListener('click', () => { userProgress.totalProblemsSolved++; saveUserProgress(); updateUI(); alert("Congratulations! Daily problem solved."); backToStart(); }); document.getElementById('printBtn')?.addEventListener('click', () => window.print()); document.getElementById('newAssignmentBtn')?.addEventListener('click', backToStart); } function backToStart() { generatedPaperContainer.classList.add('hidden'); startContainer.classList.remove('hidden'); topicSelection.classList.add('hidden'); levelSelection.classList.add('hidden'); subjectSelection.classList.add('hidden'); startScreen.classList.remove('hidden'); updateUI(); } document.addEventListener('DOMContentLoaded', () => { loadUserProgress(); }); </script> </body> </html>