const {
Document,Packer,Paragraph,TextRun,Table,TableRow,TableCell,
AlignmentType,LevelFormat,BorderStyle,WidthType,ShadingType,PageBreak
} = require('docx');
const fs = require('fs');
// ── Borders ──────────────────────────────────────────────────────
const bs = (sz=6) => ({style:BorderStyle.SINGLE,size:sz,color:"000000"});
const bn = () => ({style:BorderStyle.NONE,size:0,color:"FFFFFF"});
const AB = (sz=6) => ({top:bs(sz),bottom:bs(sz),left:bs(sz),right:bs(sz)});
const NB = () => ({top:bn(),bottom:bn(),left:bn(),right:bn()});
// ── Text ─────────────────────────────────────────────────────────
const r = (s,o={}) => new TextRun({text:s,font:"Arial",size:22,...o});
const rb = (s,o={}) => r(s,{bold:true,...o});
const ri = (s,o={}) => r(s,{italics:true,...o});
const sp = (b=100) => new Paragraph({children:[r(" ")],spacing:{before:b,after:0}});
// ── Paragraphs ───────────────────────────────────────────────────
const pp = (runs,bef=80,aft=80,left=0) =>
new Paragraph({children:runs,spacing:{before:bef,after:aft},indent:{left}});
const bul = runs => new Paragraph({
numbering:{reference:"bul",level:0},children:runs,spacing:{before:50,after:50}});
// ── Headings ─────────────────────────────────────────────────────
const H1 = s => new Paragraph({
children:[new TextRun({text:s,font:"Arial",size:36,bold:true})],
spacing:{before:360,after:100},border:{bottom:bs(16)}});
const H2 = s => new Paragraph({
children:[new TextRun({text:s,font:"Arial",size:26,bold:true})],
spacing:{before:240,after:80},border:{bottom:bs(6)}});
const H3 = s => new Paragraph({
children:[new TextRun({text:s,font:"Arial",size:23,bold:true})],
spacing:{before:180,after:60}});
// ── Simple 1-col list table ──────────────────────────────────────
const LT = (header,note,items) => {
const rows=[];
rows.push(new TableRow({children:[new TableCell({
width:{size:9200,type:WidthType.DXA},borders:AB(10),
margins:{top:80,bottom:60,left:180,right:180},
children:[
new Paragraph({children:[rb(header,{size:23})],spacing:{before:0,after:note?30:0}}),
...(note?[new Paragraph({children:[ri(note,{size:20})],spacing:{before:0,after:0}})]:[])
]
})]}));
items.forEach(it=>rows.push(new TableRow({children:[new TableCell({
width:{size:9200,type:WidthType.DXA},
borders:{top:bn(),bottom:bs(3),left:bs(6),right:bs(6)},
margins:{top:50,bottom:50,left:180,right:180},
children:[new Paragraph({children:[r(it,{size:21})],spacing:{before:0,after:0}})]
})]})));
return new Table({width:{size:9200,type:WidthType.DXA},columnWidths:[9200],rows});
};
// ── Example table (label | content) ─────────────────────────────
const ET = rows => new Table({
width:{size:9200,type:WidthType.DXA},columnWidths:[1500,7700],
rows:rows.map(({lb,s,n})=>new TableRow({children:[
new TableCell({width:{size:1500,type:WidthType.DXA},borders:AB(7),
margins:{top:70,bottom:70,left:70,right:70},verticalAlign:"center",
children:[new Paragraph({alignment:AlignmentType.CENTER,
children:[rb(lb,{size:20})],spacing:{before:0,after:0}})]
}),
new TableCell({width:{size:7700,type:WidthType.DXA},borders:AB(7),
margins:{top:70,bottom:70,left:140,right:100},
children:[
new Paragraph({children:[r(s,{size:21})],spacing:{before:0,after:n?35:0}}),
...(n?[new Paragraph({children:n,spacing:{before:0,after:0}})]:[])
]
})
]}))
});
// ── Note box ─────────────────────────────────────────────────────
const NoteBox = s => new Table({
width:{size:9200,type:WidthType.DXA},columnWidths:[500,8700],
rows:[new TableRow({children:[
new TableCell({width:{size:500,type:WidthType.DXA},borders:AB(12),
margins:{top:70,bottom:70,left:60,right:60},verticalAlign:"center",
children:[new Paragraph({alignment:AlignmentType.CENTER,
children:[rb("NOTE",{size:18})],spacing:{before:0,after:0}})]
}),
new TableCell({width:{size:8700,type:WidthType.DXA},borders:AB(12),
margins:{top:70,bottom:70,left:140,right:100},
children:[new Paragraph({children:[ri(s,{size:21})],spacing:{before:0,after:0}})]
})
]})]
});
const TipBox = s => new Table({
width:{size:9200,type:WidthType.DXA},columnWidths:[500,8700],
rows:[new TableRow({children:[
new TableCell({width:{size:500,type:WidthType.DXA},borders:AB(16),
margins:{top:70,bottom:70,left:60,right:60},verticalAlign:"center",
children:[new Paragraph({alignment:AlignmentType.CENTER,
children:[rb("TIP",{size:18})],spacing:{before:0,after:0}})]
}),
new TableCell({width:{size:8700,type:WidthType.DXA},borders:AB(16),
margins:{top:70,bottom:70,left:140,right:100},
children:[new Paragraph({children:[ri(s,{size:21})],spacing:{before:0,after:0}})]
})
]})]
});
// ── 3-col table ──────────────────────────────────────────────────
const T3 = (hdrs,rows,ws=[3200,3000,3000]) => new Table({
width:{size:9200,type:WidthType.DXA},columnWidths:ws,
rows:[
new TableRow({children:hdrs.map((h,i)=>new TableCell({
width:{size:ws[i],type:WidthType.DXA},borders:AB(9),
margins:{top:70,bottom:70,left:110,right:70},
children:[new Paragraph({children:[rb(h)],spacing:{before:0,after:0}})]
}))}),
...rows.map(row=>new TableRow({children:row.map((c,i)=>new TableCell({
width:{size:ws[i],type:WidthType.DXA},borders:AB(5),
margins:{top:55,bottom:55,left:110,right:70},
children:[new Paragraph({children:[r(c,{size:21})],spacing:{before:0,after:0}})]
}))}))
]
});
// ── 4-col table ──────────────────────────────────────────────────
const T4 = (hdrs,rows,ws=[3600,2000,1400,2200]) => new Table({
width:{size:9200,type:WidthType.DXA},columnWidths:ws,
rows:[
new TableRow({children:hdrs.map((h,i)=>new TableCell({
width:{size:ws[i],type:WidthType.DXA},borders:AB(9),
margins:{top:70,bottom:70,left:110,right:70},
children:[new Paragraph({children:[rb(h)],spacing:{before:0,after:0}})]
}))}),
...rows.map(row=>new TableRow({children:row.map((c,i)=>new TableCell({
width:{size:ws[i],type:WidthType.DXA},borders:AB(5),
margins:{top:50,bottom:50,left:110,right:70},
children:[new Paragraph({children:[ri(c,{size:20})],spacing:{before:0,after:0}})]
}))}))
]
});
// ── Practice Q & Answer ──────────────────────────────────────────
const Q = s => new Paragraph({children:[r(s)],spacing:{before:70,after:70},indent:{left:320}});
const Ans = (n,a,e) => new Paragraph({
children:[rb(`${n} `),rb(a,{size:22}),ri(` — ${e}`,{size:21})],
spacing:{before:55,after:55},indent:{left:320}});
// ════════════════════════════════════════════════════════════════
const doc = new Document({
numbering:{config:[{reference:"bul",levels:[{level:0,format:LevelFormat.BULLET,
text:"-",alignment:AlignmentType.LEFT,
style:{paragraph:{indent:{left:640,hanging:320}}}}]}]},
styles:{
default:{document:{run:{font:"Arial",size:22}}},
paragraphStyles:[
{id:"Heading1",name:"Heading 1",basedOn:"Normal",next:"Normal",quickFormat:true,
run:{size:36,bold:true,font:"Arial"},
paragraph:{spacing:{before:360,after:100},outlineLevel:0}},
{id:"Heading2",name:"Heading 2",basedOn:"Normal",next:"Normal",quickFormat:true,
run:{size:26,bold:true,font:"Arial"},
paragraph:{spacing:{before:240,after:80},outlineLevel:1}}
]
},
sections:[{
properties:{page:{
size:{width:11906,height:16838},
margin:{top:1008,right:1008,bottom:1008,left:1180}
}},
children:[
// ══ TITLE ════════════════════════════════════════════════════════
new Paragraph({alignment:AlignmentType.CENTER,
children:[rb("Subject–Verb Agreement",{size:52})],
spacing:{before:160,after:70},border:{bottom:bs(18)}}),
new Paragraph({alignment:AlignmentType.CENTER,
children:[ri("Complete Grammar Lesson | 6 Steps | IELTS Bands 4.5 – 7.5",{size:21})],
spacing:{before:60,after:0}}),
sp(180),
// ══ INTRO ════════════════════════════════════════════════════════
H1("Introduction"),
new Table({width:{size:9200,type:WidthType.DXA},columnWidths:[9200],
rows:[new TableRow({children:[new TableCell({
width:{size:9200,type:WidthType.DXA},borders:AB(14),
margins:{top:140,bottom:140,left:220,right:220},
children:[
pp([rb("নিয়ম মাত্র একটি:",{size:25})],0,70),
pp([r("বাক্যের Subject যদি "),rb("Singular"),r(" হয়, তবে Verb-ও "),rb("Singular"),
r(" হবে; আর Subject যদি "),rb("Plural"),r(" হয়, তবে Verb-ও "),rb("Plural"),r(" হবে।")],0,100),
bul([rb("Singular subject"),r(" → Singular verb "),ri("(He works hard.)")]),
bul([rb("Plural subject"), r(" → Plural verb "),ri("(They work hard.)")]),
pp([r(" ")],70,0),
pp([r("এই একটিমাত্র নিয়মকেই আমরা "),rb("৬টি ধাপে (Step)"),
r(" শিখব — কারণ আসল চ্যালেঞ্জটা নিয়ম মনে রাখায় নয়, "),rb("Subject চেনায়।")],60,0)
]
})]})]
}),
sp(180),
// ══ STEP 01 ══════════════════════════════════════════════════════
H1("Step 01: Singular Subject → Singular Verb"),
pp([rb("এই টেবিলের সবাই 3rd Person Singular Number"),r(" — তাই এদের পরে সবসময় "),rb("Singular Verb"),r(" হবে।")]),
sp(70),
LT("Singular Pronouns & Nouns",null,[
"He, She, It, That, This",
"Singular Noun (e.g., The student, The report, The chart)",
"Uncountable Noun (e.g., water, information, evidence, data*)",
"Verb+ing as subject (e.g., Swimming is healthy.)",
"To+Verb as subject (e.g., To learn English is important.)",
"Each, Every, Either, Neither (used alone as subjects)"
]),sp(70),
LT("Quantity & Proportion Phrases",null,[
"Many a/an + noun → Many a student has failed.",
"More than one + noun → More than one person was injured.",
"The number of + noun → The number of cars is increasing.",
"Either of the / Each of the / Neither of the / One of the + noun → Each of the students was present.",
"One and a half + noun → One and a half hours is enough."
]),sp(70),
LT("Indefinite Pronouns",null,[
"Everybody, Everyone, Everything",
"Anybody, Anyone, Anything",
"Somebody, Someone, Something",
"Nobody, No one, Nothing"
]),sp(70),
LT("Distance, Time, Weight, Money, Academic Subjects, Book Titles, Diseases, Countries",
"এই categories একটি complete unit হিসেবে গণ্য হয় — তাই Singular।",[
"Distance → Fifty kilometres is not far to travel.",
"Time → Ten years is a long time to wait.",
"Weight → Ninety kilograms is too heavy.",
"Money → Five thousand dollars is the registration fee.",
"Academic subject → Physics is my favourite subject.",
"Book title → Arabian Nights is a classic collection of stories.",
"Disease → Diabetes is a growing global health concern.",
"Country (plural name) → The United States is a major trading partner."
]),
sp(120),
H2("Step 01 — Examples"),sp(50),
H3("Set A: Singular Noun / Uncountable Noun"),sp(50),
ET([
{lb:"Basic", s:"The report shows a steady increase in global temperatures."},
{lb:"IELTS", s:"The information provided in the pie chart indicates that more than half of the respondents prefer online learning."},
{lb:"✗ Error",s:"The data show a significant rise in unemployment.",
n:[rb("✓ Corrected: "),r("The data "),rb("shows"),r(" a significant rise. [data = uncountable in academic writing]")]}
]),sp(100),
H3("Set B: Each / Every / Either / Neither"),sp(50),
ET([
{lb:"Basic", s:"Each student has submitted the assignment on time."},
{lb:"IELTS", s:"Every graph in the report clearly demonstrates the upward trend in renewable energy consumption over the past decade."},
{lb:"✗ Error",s:"Neither of the two methods were effective in reducing carbon emissions.",
n:[rb("✓ Corrected: "),r("Neither of the two methods "),rb("was"),r(" effective in reducing carbon emissions.")]}
]),sp(100),
H3("Set C: The Number of / Many a / More than one"),sp(50),
ET([
{lb:"Basic", s:"The number of students applying for university is rising every year."},
{lb:"IELTS", s:"The number of people living in urban areas has doubled over the past two decades, as the bar chart illustrates."},
{lb:"✗ Error",s:"More than one country have adopted this environmental policy.",
n:[rb("✓ Corrected: "),r("More than one country "),rb("has"),r(" adopted this policy.")]}
]),sp(100),
H3("Set D: Distance / Time / Weight / Academic Subjects"),sp(50),
ET([
{lb:"Basic", s:"Twenty kilometres is a reasonable distance to commute daily by public transport."},
{lb:"IELTS", s:"According to the table, fifty billion dollars was invested in clean energy infrastructure globally in 2022."},
{lb:"✗ Error",s:"Physics are considered one of the most challenging subjects in secondary education.",
n:[rb("✓ Corrected: "),r("Physics "),rb("is"),r(" considered one of the most challenging subjects.")]}
]),sp(100),
TipBox("IELTS Tip: 'The number of…' and 'The proportion of…' always take singular verbs in Writing Task 1. Mastering this single pattern immediately improves your Grammatical Range & Accuracy score."),
sp(180),
// ══ STEP 02 ══════════════════════════════════════════════════════
H1("Step 02: Plural Subject → Plural Verb"),
pp([rb("এই টেবিলের সবাই Plural Subject"),r(" — তাই এদের পরে সবসময় "),rb("Plural Verb"),r(" হবে।")]),
sp(70),
LT("Plural Pronouns",null,[
"You, We, They",
"These, Those",
"Others, Few, A few, Both, Many, Several"
]),sp(70),
LT("Plural Noun Structures",null,[
"Plural Noun → Students are required to register.",
"A number of + noun → A number of issues have been raised.",
"A couple of + noun → A couple of issues have been raised in the report.",
"Both…and… (different entities) → Both the teacher and the student were present.",
"…and… → Jack and Jill have arrived. (usually plural — see exception below)",
"The + Adjective (group) → The poor need better support."
]),
sp(120),
H2("….And…. এর ব্যতিক্রম নিয়ম"),sp(50),
T3(["Rule","Example","Verb"],[
["And-এর আগে ও পরে উভয় 'The' থাকলে → ভিন্ন ব্যক্তি → Plural Verb",
"The great scholar and the poet have arrived.\nThe prime minister and the finance minister have signed the agreement.","Plural"],
["And-এর আগে মাত্র একবার 'The' থাকলে → একই ব্যক্তি → Singular Verb",
"The great scholar and poet has arrived.\nThe founder and CEO has resigned.","Singular"],
["Mathematical fact: two numbers joined by 'and' → Singular Verb",
"Two and two makes four.\nFive and five is ten.","Singular"]
],[4000,3800,1400]),
sp(80),
pp([rb("Fixed expressions — সবসময় Singular Verb: "),
ri("age and experience, time and tide, bread and butter, slow and steady, honesty and truthfulness, rice and curry, horse and carriage, honour and glory.")]),
sp(80),
NoteBox("Memory Rule: Noun + s/es = Plural | Verb + s/es = Singular. These work in opposite directions. 'Works' (verb+s) is singular. 'Workers' (noun+s) is plural."),
sp(120),
H2("Step 02 — Examples"),sp(50),
H3("Set A: A number of / A couple of / Several / Many"),sp(50),
ET([
{lb:"Basic", s:"A number of problems have emerged since the new policy was introduced last year."},
{lb:"IELTS", s:"Several factors have contributed to the dramatic rise in global average temperatures over the last century, as climate scientists consistently confirm."},
{lb:"✗ Error",s:"A number of students was absent during the examination period.",
n:[rb("✓ Corrected: "),r("A number of students "),rb("were"),r(" absent during the examination period.")]}
]),sp(100),
H3("Set B: The + Adjective (group)"),sp(50),
ET([
{lb:"Basic", s:"The elderly often face significant challenges when accessing digital government services."},
{lb:"IELTS", s:"The unemployed in many developed nations are supported by comprehensive government welfare programmes, as the data clearly suggests."},
{lb:"✗ Error",s:"The rich is not always happier than those with considerably less wealth.",
n:[rb("✓ Corrected: "),r("The rich "),rb("are"),r(" not always happier than those with less wealth.")]}
]),sp(100),
H3("Set C: Both…and… / The…and the… exceptions"),sp(50),
ET([
{lb:"Basic", s:"The teacher and the student were both present at the disciplinary hearing."},
{lb:"IELTS", s:"Both economic growth and environmental sustainability are central to the government's long-term development agenda."},
{lb:"✗ Error",s:"The founder and CEO have submitted their resignation following the financial scandal.",
n:[rb("✓ Corrected: "),r("The founder and CEO "),rb("has"),r(" submitted their resignation. [one person, two roles → singular]")]}
]),sp(100),
TipBox("IELTS Task 2 Tip: 'A number of experts argue…', 'Several studies have shown…', and 'Both advantages and disadvantages exist…' are hallmarks of Band 7+ writing. The verb after all three must be plural."),
sp(180),
// ══ STEP 03 ══════════════════════════════════════════════════════
H1("Step 03: Verb Follows the Noun After"),
pp([rb("এই টেবিলের Subject — Singular নাকি Plural, তা নির্ভর করবে পরবর্তী Noun অনুযায়ী।")]),
sp(60),
bul([r("পরের Noun যদি "),rb("Singular / Uncountable"),r(" হয় → "),rb("Singular Verb")]),
bul([r("পরের Noun যদি "),rb("Plural"),r(" হয় → "),rb("Plural Verb")]),
sp(70),
LT("All, Any, More, Most, Some, No",null,[
"All water is polluted in that region. (uncountable → singular)",
"All students have passed the exam. (plural → plural)",
"Any water in that tank is unsafe to drink. (uncountable → singular)",
"Any students who arrive late will miss the briefing. (plural → plural)",
"More research is needed before drawing a conclusion. (uncountable → singular)",
"More countries are adopting renewable energy policies. (plural → plural)",
"Most information in the report was outdated. (uncountable → singular)",
"Most governments have failed to meet carbon targets. (plural → plural)",
"Some evidence suggests a link between diet and cognitive decline. (uncountable → singular)",
"Some economists argue that inflation will stabilise. (plural → plural)",
"No data was collected during the initial phase. (uncountable → singular)",
"No countries were excluded from the survey. (plural → plural)"
]),sp(70),
LT("All of, Most of, Some of, None of",null,[
"All of the water in the reservoir is contaminated. (uncountable → singular)",
"All of the students have submitted their final assignments. (plural → plural)",
"Most of the water supply is contaminated with harmful pollutants. (uncountable → singular)",
"Most of the countries have experienced a steady decline in birth rates. (plural → plural)",
"Some of the evidence presented in the study is inconclusive. (uncountable → singular)",
"Some of the countries surveyed have implemented carbon tax legislation. (plural → plural)",
"None of the information gathered was considered reliable. (uncountable → singular)",
"None of the policies introduced have produced measurable results. (plural → plural)"
]),sp(70),
LT("Half of, A lot of, A great deal of, Plenty of, A majority of",null,[
"Half of the building has been constructed. (singular noun → singular)",
"Half of the buildings have been constructed. (plural noun → plural)",
"A lot of effort is required to address this issue effectively. (uncountable → singular)",
"A lot of people are affected by rising fuel prices. (plural → plural)",
"A great deal of research has been conducted on this subject. (uncountable → singular)",
"A majority of respondents have expressed support for stricter regulations. (plural → plural)"
]),sp(70),
LT("Fractions (One Third, Two Thirds, Three Fourths, etc.)",null,[
"One third of the land is used for agriculture. (uncountable → singular)",
"Two thirds of the population are living below the poverty line. (plural → plural)",
"Three fourths of the budget was allocated to healthcare. (singular → singular)",
"One fifth of the workers have lost their jobs. (plural → plural)"
]),
sp(120),
H2("Step 03 — Examples"),sp(50),
H3("Set A: All / Some / Most / No"),sp(50),
ET([
{lb:"Basic", s:"Most water in developing nations is not properly treated before consumption."},
{lb:"IELTS", s:"Most countries represented in the chart have experienced a significant decline in birth rates since the 1990s, largely due to urbanisation."},
{lb:"✗ Error",s:"All of the evidence suggest that climate change is accelerating at an alarming rate.",
n:[rb("✓ Corrected: "),r("All of the evidence "),rb("suggests"),r(" that climate change is accelerating. [evidence = uncountable]")]}
]),sp(100),
H3("Set B: A lot of / A great deal of / A majority of"),sp(50),
ET([
{lb:"Basic", s:"A great deal of effort is required to bring about meaningful social change."},
{lb:"IELTS", s:"A majority of respondents in the survey have expressed strong support for stricter environmental regulations at the national level."},
{lb:"✗ Error",s:"A lot of research have been published on the long-term effects of social media on adolescent mental health.",
n:[rb("✓ Corrected: "),r("A lot of research "),rb("has"),r(" been published… [research = uncountable]")]}
]),sp(100),
H3("Set C: Fractions"),sp(50),
ET([
{lb:"Basic", s:"Two thirds of the students were absent on the first day of the academic year."},
{lb:"IELTS", s:"According to the pie chart, almost one third of the total annual budget was allocated to public transport infrastructure."},
{lb:"✗ Error",s:"Three fourths of the world's oceans remains entirely unexplored by modern science.",
n:[rb("✓ Corrected: "),r("Three fourths of the world's oceans "),rb("remain"),r(" unexplored. [oceans = plural]")]}
]),sp(100),
TipBox("Quick Test: Replace the subject phrase with 'it' (singular) or 'they' (plural). If 'it' works → singular verb. If 'they' works → plural verb. Example: 'Most of the water' → 'It is clean.' ✓"),
sp(180),
// ══ STEP 04 ══════════════════════════════════════════════════════
H1("Step 04: Identifying the True Subject — Subject চেনার কৌশল"),
pp([r("Preposition, Prepositional Phrase, Participle Phrase এবং Relative Clause — এদের পরে যে Noun বা Pronoun থাকে, সেটা "),rb("Subject নয়"),r("। Verb সবসময় "),rb("প্রথম Subject"),r(" অনুযায়ী হবে।")]),
sp(80),
H3("Preposition-এর পর Subject বসে না"),
pp([ri("of, in, at, on, with, for, by, to, from, between, among, within, despite, through")]),sp(50),
T4(["Sentence","True Subject","Verb",""],
[["The quality of the reports is excellent.","the quality","is",""],
["The impact of rising temperatures has been severe.","the impact","has been",""],
["A list of recommendations was submitted to the board.","a list","was",""],
["The number of unemployed workers is increasing annually.","the number","is",""]],
[4200,2300,1400,1300]),
sp(90),
H3("Prepositional Phrase-এর পর Subject বসে না"),
pp([ri("along with, and not, but not, together with, as well as, in addition to, accompanied by, including, besides, followed by, led by, guided by, apart from")]),sp(50),
T4(["Sentence","True Subject","Verb",""],
[["The director, along with the managers, was present.","the director","was",""],
["The government, together with several NGOs, has launched a new initiative.","the government","has launched",""],
["The president, as well as his advisers, was briefed.","the president","was",""],
["The report, in addition to the survey data, suggests a clear upward trend.","the report","suggests",""],
["The teacher, and not the students, was responsible for the error.","the teacher","was",""],
["The committee, led by the chairperson, has submitted its final recommendations.","the committee","has",""],
["The proposal, guided by international standards, is expected to reduce emissions.","the proposal","is",""]],
[4200,2300,1400,1300]),
sp(90),
H3("Present Participial Phrase (Ving) — এর পর Subject বসে না"),sp(50),
T4(["Sentence","True Subject","Verb",""],
[["The scientist working on the new vaccine has published promising results.","the scientist","has published",""],
["The delegates representing all member countries were asked to submit proposals.","the delegates","were",""],
["The data collected from coastal communities suggests a sharp rise in flood frequency.","the data","suggests",""],
["The report highlighting the key environmental concerns was released last Monday.","the report","was",""]],
[4200,2300,1400,1300]),
sp(90),
H3("Past Participial Phrase (V3) — এর পর Subject বসে না"),sp(50),
T4(["Sentence","True Subject","Verb",""],
[["The minister, accompanied by senior advisers, was present at the summit.","the minister","was",""],
["The proposal, supported by extensive research, has been submitted to the committee.","the proposal","has been",""],
["The village, surrounded by industrial factories, has suffered severe air quality deterioration.","the village","has suffered",""],
["The economy, followed by prolonged stagnation, is showing early signs of recovery.","the economy","is showing",""]],
[4200,2300,1400,1300]),
sp(90),
H3("Relative Clause-এর পর Subject বসে না (who, which, that, where, when, whose)"),sp(50),
T4(["Sentence","True Subject","Verb",""],
[["The boy who came there yesterday with his friends is my brother.","the boy","is",""],
["The policy that was introduced last year has failed to reduce poverty.","the policy","has failed",""],
["The countries which adopted early intervention measures were largely successful.","the countries","were",""],
["The researcher whose findings were published last month has won a national award.","the researcher","has won",""]],
[4200,2300,1400,1300]),
sp(80),
NoteBox("Relative Clause থেকে 'who is / who was' বাদ দিলে যা থাকে — সেটাই Participial Phrase। উভয়ই subject ও verb-এর মাঝে বসে extra information যোগ করে, কিন্তু verb-কে প্রভাবিত করে না।"),
sp(120),
H2("Step 04 — Examples"),sp(50),
H3("Set A: Preposition & Prepositional Phrase interruption"),sp(50),
ET([
{lb:"Basic", s:"The quality of the students' answers was surprisingly high."},
{lb:"IELTS", s:"The rate of unemployment in developing countries, along with related social challenges, has risen sharply over the past decade."},
{lb:"✗ Error",s:"The impact of rising temperatures and changing weather patterns are becoming increasingly alarming.",
n:[rb("✓ Corrected: "),r("The impact of rising temperatures… "),rb("is"),r(" becoming increasingly alarming. [Subject = 'the impact']")]}
]),sp(100),
H3("Set B: Participial Phrase interruption"),sp(50),
ET([
{lb:"Basic", s:"The government, guided by international standards, has approved the new emissions policy."},
{lb:"IELTS", s:"The data collected from communities living along the coastal regions strongly suggests a sharp and sustained rise in flood frequency."},
{lb:"✗ Error",s:"The delegates representing all member countries was asked to submit detailed proposals by Friday.",
n:[rb("✓ Corrected: "),r("The delegates representing all member countries "),rb("were"),r(" asked to submit detailed proposals.")]}
]),sp(100),
H3("Set C: Relative Clause interruption"),sp(50),
ET([
{lb:"Basic", s:"The student who scored highest in the examination was awarded a full scholarship."},
{lb:"IELTS", s:"The policy that was introduced by the government last year to address rising urban poverty has failed to produce any measurable results."},
{lb:"✗ Error",s:"The countries which adopted early intervention measures was largely successful in containing the spread.",
n:[rb("✓ Corrected: "),r("The countries which adopted early intervention measures "),rb("were"),r(" largely successful.")]}
]),sp(100),
TipBox("Practical Rule: Draw a mental bracket around everything between the subject and verb. Commas are your guide. The noun before the first comma is always your true subject."),
sp(180),
// ══ STEP 05 ══════════════════════════════════════════════════════
H1("Step 05: Or, Nor — এর পরের Subject অনুযায়ী Verb হয়"),
pp([r("এই structures-এ দুটো Subject থাকে — একটি আগে, একটি পরে। Verb সবসময় "),rb("কাছের Subject"),r(", অর্থাৎ or / nor / but also-এর "),rb("পরের Subject"),r(" অনুযায়ী হয়।")]),
sp(70),
LT("Correlative Conjunctions That Follow This Rule",
"Or / Nor / But also-এর পরের Subject-টিই verb-কে নিয়ন্ত্রণ করে।",[
"Either … or … (subject)",
"Neither … nor … (subject)",
"Not only … but also … (subject)",
"Whether … or … (subject)",
"Or",
"Nor"
]),sp(90),
H3("Either … Or"),sp(50),
T3(["Sentence","Closer Subject","Verb"],[
["Either the boys or Korim is going to school.","Korim = singular","is"],
["Either the manager or the employees are responsible for the delay.","employees = plural","are"],
["Either the government or private companies are expected to fund the project.","companies = plural","are"],
["Either poor planning or a lack of resources is responsible for the failure.","a lack = singular","is"]
]),sp(90),
H3("Neither … Nor"),sp(50),
T3(["Sentence","Closer Subject","Verb"],[
["Neither the boys nor Korim is going to school.","Korim = singular","is"],
["Neither the report nor the findings were conclusive.","findings = plural","were"],
["Neither the councilmen nor the mayor takes responsibility.","the mayor = singular","takes"],
["Neither the policies nor the implementation was effective.","implementation = singular","was"]
]),sp(90),
H3("Not only … But also"),sp(50),
T3(["Sentence","Closer Subject","Verb"],[
["Not only the boys but also Korim is going to school.","Korim = singular","is"],
["Not only the government but also private organisations are responsible.","organisations = plural","are"],
["Not only poor infrastructure but also a lack of funding has hindered progress.","a lack = singular","has"],
["Not only the students but also the teacher was confused by the question.","the teacher = singular","was"]
]),sp(90),
H3("Whether … or / Or / Nor (alone)"),sp(50),
T3(["Sentence","Closer Subject","Verb"],[
["Whether the government or private firms are responsible is debatable.","private firms = plural","are"],
["Whether the students or the teacher is responsible depends on circumstances.","the teacher = singular","is"],
["The director or the managers are available for consultation.","managers = plural","are"],
["The initial policy failed. Nor did the revised legislation produce any improvement.","legislation = singular","did"]
]),sp(90),
NoteBox("Important: 'Both…and…' is ALWAYS plural and does NOT follow the closer-subject rule. Both the teacher and the student ARE present. — always plural, no exception."),
sp(120),
H2("Step 05 — Examples"),sp(50),
ET([
{lb:"Basic", s:"Either the teacher or the students are responsible for organising the annual event."},
{lb:"IELTS", s:"Not only the government but also private companies are expected to fund the new infrastructure project under the proposed public-private partnership framework."},
{lb:"✗ Error",s:"Neither the policies nor the implementation were effective in reducing carbon emissions over the past decade.",
n:[rb("✓ Corrected: "),r("Neither the policies nor the implementation "),rb("was"),r(" effective. [implementation = singular]")]}
]),sp(100),
TipBox("IELTS Strategy: In Task 2, 'Neither excessive regulation nor a complete lack of oversight is ideal' demonstrates Rule 5 mastery and adds considerable sophistication to your writing style."),
sp(180),
// ══ STEP 06 ══════════════════════════════════════════════════════
H1("Step 06: Inverted Sentences — There, Here, Never এবং অন্যান্য"),
pp([r("Inverted sentence-এ word order বদলায়, কিন্তু নিয়ম বদলায় না। "),rb("Verb সবসময় তার subject চেনে"),r(" এবং সেই অনুযায়ী রূপ নেয় — subject আগে থাকুক বা পরে।")]),
sp(80),
T4(["Category","Words / Phrases","",""],[
["Adverb of Place","There, Here, On the wall, In the room, Across the street","",""],
["Negative Adverbs","Never, Rarely, Seldom, Scarcely, Hardly, Barely","",""],
["Negative Phrases","Under no circumstances, By no means, On no account, In no way, Not until, No sooner","",""],
["Limiting Expressions","Only if, Only when, Only after, Only then, Not only, Nor, Neither","",""]
],[2200,7000,0,0]),
sp(90),
H3("There / Here — এর পরের Noun-ই প্রকৃত Subject"),sp(50),
T4(["Inverted Sentence","Real Subject","Verb","কারণ"],[
["There is a school in our village.","a school","is","singular noun"],
["There are schools in our village.","schools","are","plural noun"],
["There is considerable evidence supporting this claim.","evidence","is","uncountable"],
["There are several compelling reasons to support this argument.","reasons","are","plural noun"],
["Here is the report you requested.","the report","is","singular noun"],
["Here are the results of the survey.","the results","are","plural noun"]
]),sp(90),
H3("Adverb of Place — Prepositional Phrases"),sp(50),
T4(["Inverted Sentence","Real Subject","Verb","কারণ"],[
["On the wall hangs a painting.","a painting","hangs","singular"],
["In the room were several distinguished researchers.","researchers","were","plural"],
["Across the street stands an old abandoned factory.","an old factory","stands","singular"],
["Among the most significant findings was the sharp decline in biodiversity.","the sharp decline","was","singular"]
]),sp(90),
H3("Negative Adverb Inversion → Neg. Adverb + Auxiliary + Subject + Main Verb"),sp(50),
T4(["Inverted Sentence","Real Subject","Verb","কারণ"],[
["Scarcely were they able to hear the music.","they","were","plural"],
["Never have I seen such beauty.","I","have","singular"],
["Rarely does the government acknowledge the scale of urban poverty.","the government","does","singular"],
["Hardly had the policy been implemented when criticism emerged.","the policy","had","singular"],
["Seldom do developing nations benefit equally from globalisation.","nations","do","plural"],
["Never has such a drastic decline been recorded in modern history.","such a decline","has","singular"],
["Barely had the economy recovered when another crisis emerged.","the economy","had","singular"]
]),sp(90),
H3("Negative Phrase Inversion"),sp(50),
T4(["Inverted Sentence","Real Subject","Verb","কারণ"],[
["Under no circumstances should governments prioritise short-term gains.","governments","should","plural"],
["By no means is technological advancement a guaranteed solution.","technological advancement","is","singular"],
["Not until public pressure mounted did the government introduce legislation.","the government","did","singular"],
["In no way does the proposed policy address the root causes of poverty.","the proposed policy","does","singular"],
["No sooner had the reform been announced than critics challenged it.","the reform","had","singular"],
["On no account should researchers manipulate data.","researchers","should","plural"]
]),sp(90),
H2("Step 06 — Examples"),sp(50),
H3("Set A: There / Here"),sp(50),
ET([
{lb:"Basic", s:"There is a major problem with the current public education system."},
{lb:"IELTS", s:"There are several compelling reasons why governments across the developing world should invest more heavily in renewable energy infrastructure."},
{lb:"✗ Error",s:"There is many solutions available to address the issue of urban overcrowding effectively.",
n:[rb("✓ Corrected: "),r("There "),rb("are"),r(" many solutions available… [solutions = plural]")]}
]),sp(100),
H3("Set B: Negative Adverb Inversion"),sp(50),
ET([
{lb:"Basic", s:"Never have I encountered such a clear and comprehensive explanation of this phenomenon."},
{lb:"IELTS", s:"Rarely does the government acknowledge the full scale of urban poverty until independent research forces the issue into public discourse."},
{lb:"✗ Error",s:"Scarcely was they able to complete the research before the funding was withdrawn.",
n:[rb("✓ Corrected: "),r("Scarcely "),rb("were they"),r(" able to complete the research. [they = plural]")]}
]),sp(100),
H3("Set C: Negative Phrase Inversion"),sp(50),
ET([
{lb:"Basic", s:"Under no circumstances should students attempt to copy answers from their neighbours."},
{lb:"IELTS", s:"By no means is technological advancement alone a sufficient or guaranteed solution to the complex and multidimensional challenges of climate change."},
{lb:"✗ Error",s:"Not until public pressure became overwhelming did the governments introduces meaningful climate legislation.",
n:[rb("✓ Corrected: "),r("…did the government "),rb("introduce"),r(" meaningful legislation. [singular + bare infinitive after 'did']")]}
]),sp(100),
NoteBox("মনে রেখো — order বদলালেও নিয়ম বদলায় না। Verb-এর আগে যা আছে সব ignore করো। Verb-এর পরে প্রকৃত Subject খোঁজো। সেই Subject অনুযায়ী Verb ঠিক করো।"),
sp(180),
// ══ MIXED PRACTICE ════════════════════════════════════════════════
new Paragraph({children:[new PageBreak()]}),
H1("Mixed Practice Tasks"),
pp([r("These exercises combine all six steps. No labels indicate which rule is being tested — just as in real IELTS Writing conditions. Work through every task without referring back to the notes.")]),
sp(120),
H2("Task 1 — Choose the Correct Verb"),
pp([rb("Instructions: "),r("Circle or underline the correct verb form in brackets.")]),sp(70),
Q("1. The number of people using social media (has / have) increased dramatically over the past decade."),
Q("2. Both the teacher and the student (was / were) present at the disciplinary hearing."),
Q("3. Each of the graphs clearly (shows / show) a consistent downward trend in carbon emissions."),
Q("4. A number of problems (has / have) been identified in the current education system."),
Q("5. Neither the director nor the managers (was / were) informed about the sudden change in policy."),
Q("6. The researcher, along with her two assistants, (was / were) conducting fieldwork in rural areas."),
Q("7. There (is / are) several compelling reasons why governments should invest in public transport."),
Q("8. Not only the students but also the teacher (was / were) confused by the ambiguous question."),
Q("9. Half of the water supply in the affected region (is / are) contaminated with industrial pollutants."),
Q("10. Two thirds of the respondents (was / were) strongly in favour of the proposed new regulation."),
Q("11. Rarely (does / do) developing nations benefit equally from the effects of economic globalisation."),
Q("12. The data collected from all three sites clearly (suggests / suggest) a sharp rise in temperatures."),
Q("13. A couple of serious issues (has / have) emerged since the implementation of the revised policy."),
Q("14. The proposal, supported by extensive research, (has / have) been submitted to the committee."),
Q("15. Under no circumstances (should / would) governments prioritise short-term gains over long-term sustainability."),
sp(140),
H2("Task 2 — Identify and Correct the Error"),
pp([rb("Instructions: "),r("Each sentence contains exactly ONE subject–verb agreement error. Find it and write the correction.")]),sp(70),
Q("1. The proportion of elderly citizens are expected to rise sharply over the next thirty years."),
Q("2. The impact of climate change on coastal communities are becoming more severe each year."),
Q("3. Neither the policy nor the measures introduced by the government has produced any measurable improvement."),
Q("4. There is numerous advantages to learning a second language during early childhood."),
Q("5. The director, as well as the senior managers, were responsible for the final strategic decision."),
Q("6. A great deal of time and resources have been invested in developing the new curriculum framework."),
Q("7. The scientist working on the new vaccine have published three significant research papers this year."),
Q("8. Not only poor infrastructure but also a lack of skilled labour are responsible for the region's slow economic growth."),
Q("9. Scarcely was the delegates able to reach a consensus before the conference time limit expired."),
Q("10. The United States are one of the largest producers of greenhouse gas emissions in the world."),
sp(140),
H2("Task 3 — Complete the Sentence"),
pp([rb("Instructions: "),r("Fill in the blank with the correct form of the verb in brackets.")]),sp(70),
Q("1. The number of cars on city roads ____________ (increase) significantly over the past decade."),
Q("2. Both poverty and unemployment ____________ (be) major contributors to long-term social instability."),
Q("3. There ____________ (be) a growing body of evidence suggesting the current policy is fundamentally ineffective."),
Q("4. Not only the manager but also the employees ____________ (be) held responsible for the financial irregularities."),
Q("5. The rate of infection, along with related health complications, ____________ (have) risen sharply in recent months."),
Q("6. Never ____________ (have) such a dramatic decline in biodiversity been recorded in modern scientific history."),
Q("7. A majority of the evidence gathered during the study ____________ (point) to a strong causal link."),
Q("8. Neither the proposed solution nor the alternative measures ____________ (be) considered entirely satisfactory by independent reviewers."),
Q("9. Under no circumstances ____________ (should) researchers manipulate data to support a predetermined conclusion."),
Q("10. One third of the world's fresh water supply ____________ (be) located in the Amazon basin."),
sp(180),
// ══ ANSWER KEY ════════════════════════════════════════════════════
H1("Answer Key"),sp(70),
H2("Task 1 — Answers"),sp(50),
Ans("1.","has","Step 1 — 'The number of' is always singular."),
Ans("2.","were","Step 2 — 'Both…and…' joins two different subjects → plural."),
Ans("3.","shows","Step 1 — 'Each of the' is always singular."),
Ans("4.","have","Step 2 — 'A number of' is always plural."),
Ans("5.","were","Step 5 — Neither…nor: closer subject = 'the managers' → plural."),
Ans("6.","was","Step 4 — 'along with her assistants' is an interruption; true subject = 'the researcher' → singular."),
Ans("7.","are","Step 6 — There + verb: real subject = 'several compelling reasons' → plural."),
Ans("8.","was","Step 5 — 'Not only…but also': closer subject = 'the teacher' → singular."),
Ans("9.","is","Step 3 — 'water supply' is uncountable → singular."),
Ans("10.","were","Step 3 — 'respondents' is plural."),
Ans("11.","do","Step 6 — Negative adverb inversion: real subject = 'developing nations' → plural."),
Ans("12.","suggests","Step 4 — Participial phrase interruption; true subject = 'the data' → singular (uncountable)."),
Ans("13.","have","Step 2 — 'A couple of' always takes a plural verb."),
Ans("14.","has","Step 4 — Past participial phrase interruption; true subject = 'the proposal' → singular."),
Ans("15.","should","Step 6 — Negative phrase inversion: real subject = 'governments' → plural."),
sp(120),
H2("Task 2 — Answers"),sp(50),
Ans("1.","are → is","Step 1 — 'The proportion of…': subject = 'proportion' → singular."),
Ans("2.","are → is","Step 4 — Subject = 'the impact' → singular."),
Ans("3.","has → have","Step 5 — Neither…nor: closer subject = 'the measures' (plural) → plural verb."),
Ans("4.","is → are","Step 6 — 'There + verb': real subject = 'numerous advantages' (plural) → plural."),
Ans("5.","were → was","Step 4 — 'as well as the senior managers' is an interruption; true subject = 'the director' → singular."),
Ans("6.","have → has","Step 1 — 'A great deal of' always takes singular verb (uncountable concept)."),
Ans("7.","have → has","Step 4 — Present participial phrase interruption; true subject = 'the scientist' → singular."),
Ans("8.","are → is","Step 5 — 'Not only…but also': closer subject = 'a lack of skilled labour' → singular."),
Ans("9.","was → were","Step 6 — Negative adverb inversion; real subject = 'the delegates' (plural) → were."),
Ans("10.","are → is","Step 1 — Country names treated as one unit → singular. 'The United States is…'"),
sp(120),
H2("Task 3 — Answers"),sp(50),
Ans("1.","has increased","Step 1 — 'The number of' → singular."),
Ans("2.","are","Step 2 — 'Both…and…' → always plural."),
Ans("3.","is","Step 6 — There + verb; real subject = 'a growing body' → singular."),
Ans("4.","are","Step 5 — 'Not only…but also': closer subject = 'the employees' → plural."),
Ans("5.","has","Step 4 — 'along with…' is an interruption; true subject = 'the rate' → singular."),
Ans("6.","has","Step 6 — Inversion: 'Never has such a decline been recorded.' Real subject = 'such a decline' → singular."),
Ans("7.","points","Step 3 — 'A majority of the evidence': evidence = uncountable → singular."),
Ans("8.","were","Step 5 — Neither…nor: closer subject = 'the alternative measures' (plural) → plural."),
Ans("9.","should","Step 6 — Negative phrase inversion: real subject = 'researchers' → plural."),
Ans("10.","is","Step 3 — 'One third of the water supply': water supply = uncountable → singular."),
sp(140),
TipBox("Final Reminder: Subject–verb agreement is not simply a grammar rule — it is a signal to the IELTS examiner that you have genuine command over the English language. Master these six steps and apply them with precision in every sentence you write in Task 1 and Task 2.")
]
}]
});
Packer.toBuffer(doc).then(buf=>{
fs.writeFileSync('/mnt/user-data/outputs/SVA_Complete_6Steps.docx',buf);
console.log('Done - size: '+buf.length+' bytes');
});