Please prepare a PPT on topic " pronouns" show list of pronouns with their Russian translation in a table form for ESL student 3rd grade .Also prepare easy 20 interesting logical and not funny conversation questions along with answers under them .Use only present simple and present continuous tense.Don't use past tense or past verbs like (-ed ) form or second form of verbs.Also mention in a formula way where and how to place pronouns in your sentences.
ls -la /home/daytona/workspace/ 2>/dev/null || echo "workspace empty or missing"
mkdir -p /home/daytona/workspace/pronouns-esl-ppt
~/pronouns-esl-ppt/build.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Pronouns – ESL Grade 3";
// ─── PALETTE ───────────────────────────────────────────────────────────────
const C = {
navy: "1A237E", // deep blue – dominant bg on title/section slides
cobalt: "1565C0", // medium blue
sky: "E3F2FD", // very light blue – content bg
gold: "FFD600", // accent yellow
white: "FFFFFF",
dark: "0D1B4B",
teal: "00695C",
orange: "E65100",
green: "2E7D32",
rose: "AD1457",
};
// ─── helpers ───────────────────────────────────────────────────────────────
function bgRect(slide, color) {
slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color } });
}
function titleBanner(slide, text, bgColor, textColor) {
slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.1, fill: { color: bgColor } });
slide.addText(text, { x: 0.2, y: 0, w: 9.6, h: 1.1, fontSize: 32, bold: true, color: textColor, valign: "middle", align: "left" });
}
function footer(slide) {
slide.addText("Pronouns – ESL Grade 3 | Present Simple & Present Continuous", {
x: 0, y: 5.35, w: 10, h: 0.28, fontSize: 8, color: "AAAAAA", align: "center"
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 1 – TITLE
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bgRect(s, C.navy);
// decorative circles
s.addShape(pres.ShapeType.ellipse, { x: 7.8, y: -0.5, w: 3.2, h: 3.2, fill: { color: C.cobalt }, line: { color: C.cobalt } });
s.addShape(pres.ShapeType.ellipse, { x: 8.5, y: 3.5, w: 2, h: 2, fill: { color: "0D47A1" }, line: { color: "0D47A1" } });
s.addShape(pres.ShapeType.ellipse, { x: -0.8, y: 3.8, w: 2.2, h: 2.2, fill: { color: C.cobalt }, line: { color: C.cobalt } });
s.addText("📝 PRONOUNS", {
x: 0.5, y: 0.7, w: 9, h: 1.3, fontSize: 52, bold: true, color: C.gold, align: "center"
});
s.addText("An ESL Lesson for Grade 3", {
x: 0.5, y: 2.1, w: 9, h: 0.65, fontSize: 24, color: C.white, align: "center", italic: true
});
s.addText("Present Simple • Present Continuous", {
x: 0.5, y: 2.85, w: 9, h: 0.55, fontSize: 18, color: C.gold, align: "center"
});
s.addShape(pres.ShapeType.rect, { x: 2.5, y: 3.55, w: 5, h: 0.08, fill: { color: C.gold }, line: { color: C.gold } });
s.addText("Teacher: _______________ Date: ___________", {
x: 1, y: 3.8, w: 8, h: 0.4, fontSize: 13, color: "BBDEFB", align: "center"
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 2 – WHAT IS A PRONOUN?
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bgRect(s, C.sky);
titleBanner(s, "💡 What Is a Pronoun?", C.navy, C.gold);
s.addText("A pronoun is a word that replaces a noun (a person, place, or thing).", {
x: 0.4, y: 1.25, w: 9.2, h: 0.55, fontSize: 18, color: C.dark, bold: true
});
const examples = [
["Without pronoun", "Maria is happy. Maria likes school."],
["With pronoun", "Maria is happy. She likes school."],
];
examples.forEach(([label, text], i) => {
const bg = i === 0 ? "FFCDD2" : "C8E6C9";
s.addShape(pres.ShapeType.roundRect, { x: 0.4, y: 1.95 + i * 1.1, w: 9.2, h: 0.88, fill: { color: bg }, line: { color: bg }, rectRadius: 0.12 });
s.addText([{ text: label + ": ", options: { bold: true, color: C.dark } }, { text, options: { color: C.dark } }], {
x: 0.6, y: 1.98 + i * 1.1, w: 8.8, h: 0.82, fontSize: 17, valign: "middle"
});
});
s.addText('"She" is the pronoun. It replaces "Maria" so we do not repeat the name!', {
x: 0.4, y: 4.18, w: 9.2, h: 0.55, fontSize: 15, color: C.teal, italic: true, bold: true
});
footer(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 3 – PRONOUNS TABLE (English + Russian)
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bgRect(s, C.sky);
titleBanner(s, "📋 Pronouns – English & Russian", C.navy, C.gold);
const rows = [
["Pronoun", "Meaning (RU)", "Type", "Example"],
["I", "Я", "Subject", "I am a student."],
["You", "Ты / Вы", "Subject", "You are my friend."],
["He", "Он", "Subject", "He is reading now."],
["She", "Она", "Subject", "She likes cats."],
["It", "Оно / Это", "Subject", "It is raining."],
["We", "Мы", "Subject", "We are playing."],
["They", "Они", "Subject", "They are happy."],
["Me", "Меня / Мне", "Object", "Look at me!"],
["Him", "Его / Ему", "Object", "I see him."],
["Her", "Её / Ей", "Object", "She helps her."],
["Us", "Нас / Нам", "Object", "Join us!"],
["Them", "Их / Им", "Object", "We know them."],
["My", "Мой / Моя", "Possessive","My bag is red."],
["Your", "Твой / Ваш", "Possessive","Your book is here."],
["His", "Его", "Possessive","His dog is big."],
["Her", "Её", "Possessive","Her dress is blue."],
["Our", "Наш", "Possessive","Our class is fun."],
["Their", "Их", "Possessive","Their house is big."],
];
// header row
const hCols = [0.35, 1.25, 2.65, 4.05, 5.95];
const hW = [0.88, 1.38, 1.38, 1.88, 3.88];
const hLabels = rows[0];
hLabels.forEach((label, ci) => {
s.addShape(pres.ShapeType.rect, { x: hCols[ci], y: 1.15, w: hW[ci], h: 0.35, fill: { color: C.navy }, line: { color: C.navy } });
s.addText(label, { x: hCols[ci], y: 1.15, w: hW[ci], h: 0.35, fontSize: 11, bold: true, color: C.gold, align: "center", valign: "middle" });
});
// data rows
const dataRows = rows.slice(1);
dataRows.forEach((row, ri) => {
const yPos = 1.52 + ri * 0.23;
const rowBg = ri % 2 === 0 ? "FFFFFF" : "DBEAFE";
hCols.forEach((cx, ci) => {
s.addShape(pres.ShapeType.rect, { x: cx, y: yPos, w: hW[ci], h: 0.22, fill: { color: rowBg }, line: { color: "BBBBBB", pt: 0.5 } });
const isPronouns = ci === 0;
s.addText(row[ci], {
x: cx + 0.03, y: yPos, w: hW[ci] - 0.06, h: 0.22,
fontSize: isPronouns ? 10 : 9.5,
bold: isPronouns,
color: isPronouns ? C.cobalt : C.dark,
valign: "middle",
align: "left"
});
});
});
footer(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 4 – SUBJECT PRONOUNS FORMULA
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bgRect(s, C.navy);
titleBanner(s, "📐 Pronoun Formula – Present Simple", C.gold, C.navy);
s.addText("FORMULA", {
x: 0.5, y: 1.25, w: 9, h: 0.45, fontSize: 16, bold: true, color: C.gold, align: "center"
});
// Formula box
s.addShape(pres.ShapeType.roundRect, { x: 0.6, y: 1.75, w: 8.8, h: 0.85, fill: { color: C.cobalt }, line: { color: C.gold, pt: 2 }, rectRadius: 0.15 });
s.addText([
{ text: "SUBJECT PRONOUN", options: { bold: true, color: C.gold } },
{ text: " + ", options: { color: C.white } },
{ text: "VERB (base form)", options: { bold: true, color: "A5D6A7" } },
{ text: " + ", options: { color: C.white } },
{ text: "REST OF SENTENCE", options: { bold: true, color: "FFE082" } },
], { x: 0.8, y: 1.78, w: 8.4, h: 0.78, fontSize: 17, valign: "middle", align: "center" });
// Examples grid
const ex = [
{ pro: "I", verb: "eat", rest: "breakfast every day." },
{ pro: "She", verb: "reads", rest: "a book at night." },
{ pro: "They", verb: "play", rest: "football after school." },
{ pro: "He", verb: "studies",rest: "English now." },
{ pro: "We", verb: "love", rest: "our teacher." },
{ pro: "You", verb: "draw", rest: "very well." },
];
ex.forEach((e, i) => {
const col = i < 3 ? 0 : 1;
const row = i % 3;
const x = 0.4 + col * 4.9;
const y = 2.75 + row * 0.75;
s.addShape(pres.ShapeType.roundRect, { x, y, w: 4.65, h: 0.62, fill: { color: "0D47A1" }, line: { color: "5C8AFF", pt: 1 }, rectRadius: 0.1 });
s.addText([
{ text: e.pro + " ", options: { bold: true, color: C.gold, fontSize: 15 } },
{ text: e.verb + " ", options: { bold: true, color: "A5D6A7", fontSize: 15 } },
{ text: e.rest, options: { color: C.white, fontSize: 13 } },
], { x: x + 0.12, y, w: 4.42, h: 0.62, valign: "middle" });
});
footer(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 5 – PRESENT CONTINUOUS FORMULA
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bgRect(s, C.teal);
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.1, fill: { color: "004D40" }, line: { color: "004D40" } });
s.addText("📐 Pronoun Formula – Present Continuous", {
x: 0.2, y: 0, w: 9.6, h: 1.1, fontSize: 28, bold: true, color: C.gold, valign: "middle"
});
s.addText("FORMULA", {
x: 0.5, y: 1.2, w: 9, h: 0.4, fontSize: 15, bold: true, color: C.gold, align: "center"
});
s.addShape(pres.ShapeType.roundRect, { x: 0.5, y: 1.65, w: 9, h: 0.85, fill: { color: "00695C" }, line: { color: C.gold, pt: 2 }, rectRadius: 0.15 });
s.addText([
{ text: "SUBJECT PRONOUN", options: { bold: true, color: C.gold } },
{ text: " + ", options: { color: C.white } },
{ text: "am / is / are", options: { bold: true, color: "B2EBF2" } },
{ text: " + ", options: { color: C.white } },
{ text: "VERB + -ing", options: { bold: true, color: "FFE082" } },
{ text: " + ", options: { color: C.white } },
{ text: "REST", options: { bold: true, color: "F48FB1" } },
], { x: 0.7, y: 1.68, w: 8.6, h: 0.78, fontSize: 16, valign: "middle", align: "center" });
// am/is/are rule box
s.addShape(pres.ShapeType.roundRect, { x: 0.5, y: 2.62, w: 9, h: 0.55, fill: { color: "004D40" }, line: { color: "B2EBF2", pt: 1 }, rectRadius: 0.1 });
s.addText('I → am | He / She / It → is | You / We / They → are', {
x: 0.7, y: 2.62, w: 8.6, h: 0.55, fontSize: 14, bold: true, color: "B2EBF2", align: "center", valign: "middle"
});
const ex = [
{ sub: "I", be: "am", verb: "eating", rest: "my lunch." },
{ sub: "She", be: "is", verb: "singing", rest: "a song." },
{ sub: "They", be: "are", verb: "running", rest: "in the park." },
{ sub: "He", be: "is", verb: "watching",rest: "TV right now." },
{ sub: "We", be: "are", verb: "learning",rest: "English." },
{ sub: "You", be: "are", verb: "doing", rest: "great!" },
];
ex.forEach((e, i) => {
const col = i < 3 ? 0 : 1;
const row = i % 3;
const x = 0.4 + col * 4.9;
const y = 3.3 + row * 0.7;
s.addShape(pres.ShapeType.roundRect, { x, y, w: 4.65, h: 0.58, fill: { color: "00796B" }, line: { color: "4DB6AC", pt: 1 }, rectRadius: 0.1 });
s.addText([
{ text: e.sub + " ", options: { bold: true, color: C.gold, fontSize: 14 } },
{ text: e.be + " ", options: { bold: true, color: "B2EBF2", fontSize: 14 } },
{ text: e.verb + " ", options: { bold: true, color: "FFE082", fontSize: 14 } },
{ text: e.rest, options: { color: C.white, fontSize: 12 } },
], { x: x + 0.1, y, w: 4.45, h: 0.58, valign: "middle" });
});
footer(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 6 – OBJECT PRONOUN FORMULA
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bgRect(s, "FFF8E1");
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.1, fill: { color: C.orange }, line: { color: C.orange } });
s.addText("📐 Object Pronoun Formula", { x: 0.2, y: 0, w: 9.6, h: 1.1, fontSize: 30, bold: true, color: C.white, valign: "middle" });
s.addShape(pres.ShapeType.roundRect, { x: 0.5, y: 1.2, w: 9, h: 0.82, fill: { color: C.orange }, line: { color: C.gold, pt: 2 }, rectRadius: 0.15 });
s.addText([
{ text: "SUBJECT + VERB + ", options: { bold: true, color: C.white } },
{ text: "OBJECT PRONOUN", options: { bold: true, color: C.gold } },
], { x: 0.7, y: 1.22, w: 8.6, h: 0.78, fontSize: 18, valign: "middle", align: "center" });
s.addText("Object pronouns come AFTER the verb.", {
x: 0.5, y: 2.12, w: 9, h: 0.38, fontSize: 15, italic: true, color: C.dark, align: "center", bold: true
});
const rows2 = [
["I see her.", "She sees me.", "We know them.", "He helps us."],
["She loves him.", "They hear you.", "I watch it.", "Do you like her?"],
];
rows2.forEach((row, ri) => {
row.forEach((cell, ci) => {
const x = 0.35 + ci * 2.32;
const y = 2.62 + ri * 1.0;
s.addShape(pres.ShapeType.roundRect, { x, y, w: 2.2, h: 0.78, fill: { color: "FFE0B2" }, line: { color: C.orange, pt: 1 }, rectRadius: 0.1 });
s.addText(cell, { x: x + 0.05, y, w: 2.1, h: 0.78, fontSize: 14, bold: true, color: C.dark, align: "center", valign: "middle" });
});
});
footer(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 7 – POSSESSIVE PRONOUN FORMULA
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bgRect(s, "F3E5F5");
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.1, fill: { color: C.rose }, line: { color: C.rose } });
s.addText("📐 Possessive Pronoun Formula", { x: 0.2, y: 0, w: 9.6, h: 1.1, fontSize: 28, bold: true, color: C.white, valign: "middle" });
s.addShape(pres.ShapeType.roundRect, { x: 0.5, y: 1.2, w: 9, h: 0.82, fill: { color: C.rose }, line: { color: C.gold, pt: 2 }, rectRadius: 0.15 });
s.addText([
{ text: "POSSESSIVE PRONOUN", options: { bold: true, color: C.gold } },
{ text: " + NOUN + VERB …", options: { bold: true, color: C.white } },
], { x: 0.7, y: 1.22, w: 8.6, h: 0.78, fontSize: 18, valign: "middle", align: "center" });
s.addText("Possessive pronouns show who something BELONGS TO. They come BEFORE the noun.", {
x: 0.5, y: 2.12, w: 9, h: 0.42, fontSize: 14, italic: true, color: C.dark, align: "center", bold: true
});
const pex = [
["My bag is blue.", "Your book is here.", "His dog runs fast."],
["Her dress is pretty.", "Our school is big.", "Their cat is sleeping."],
];
pex.forEach((row, ri) => {
row.forEach((cell, ci) => {
const x = 0.45 + ci * 3.05;
const y = 2.7 + ri * 1.1;
s.addShape(pres.ShapeType.roundRect, { x, y, w: 2.9, h: 0.85, fill: { color: "F8BBD9" }, line: { color: C.rose, pt: 1 }, rectRadius: 0.1 });
s.addText(cell, { x: x + 0.08, y, w: 2.75, h: 0.85, fontSize: 14, bold: true, color: C.dark, align: "center", valign: "middle" });
});
});
footer(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 8 – CONVERSATION QUESTIONS 1–5
// ═══════════════════════════════════════════════════════════════════════════
function qSlide(num, pairs) {
const colors = [
{ bg: "E8F5E9", banner: C.green },
{ bg: "E3F2FD", banner: C.cobalt },
{ bg: "FFF8E1", banner: C.orange },
{ bg: "FCE4EC", banner: C.rose },
];
const palette = colors[(num - 1) % colors.length];
const s = pres.addSlide();
bgRect(s, palette.bg);
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.0, fill: { color: palette.banner }, line: { color: palette.banner } });
s.addText(`💬 Conversation Questions (Q${pairs[0].n}–Q${pairs[pairs.length-1].n})`, {
x: 0.2, y: 0, w: 9.6, h: 1.0, fontSize: 26, bold: true, color: C.white, valign: "middle"
});
pairs.forEach((p, i) => {
const y = 1.1 + i * 0.87;
// question
s.addShape(pres.ShapeType.roundRect, { x: 0.3, y, w: 9.4, h: 0.38, fill: { color: palette.banner }, line: { color: palette.banner }, rectRadius: 0.08 });
s.addText(`Q${p.n}: ${p.q}`, { x: 0.45, y, w: 9.1, h: 0.38, fontSize: 14, bold: true, color: C.white, valign: "middle" });
// answer
s.addShape(pres.ShapeType.roundRect, { x: 0.3, y: y + 0.4, w: 9.4, h: 0.36, fill: { color: "FFFFFF" }, line: { color: palette.banner, pt: 1 }, rectRadius: 0.08 });
s.addText(`➤ ${p.a}`, { x: 0.45, y: y + 0.4, w: 9.1, h: 0.36, fontSize: 13, color: C.dark, valign: "middle" });
});
footer(s);
}
// Questions 1–5
qSlide(1, [
{ n:1, q:"What is your name?", a:"My name is Alex. I am a student in Grade 3." },
{ n:2, q:"Where are you sitting right now?", a:"I am sitting at my desk near the window." },
{ n:3, q:"What does she have in her bag?", a:"She has a pencil, a ruler, and her book in her bag." },
{ n:4, q:"Is he your classmate?", a:"Yes, he is my classmate. He sits next to me every day." },
{ n:5, q:"What are they doing in the classroom?", a:"They are reading their books and listening to the teacher." },
]);
// Questions 6–10
qSlide(2, [
{ n:6, q:"What do you like to eat for breakfast?", a:"I like to eat bread and eggs. It is my favourite breakfast." },
{ n:7, q:"Where is she going right now?", a:"She is going to the library. She wants to find a book." },
{ n:8, q:"What sport does he play every week?", a:"He plays football every weekend. It is his favourite sport." },
{ n:9, q:"Are we in the same class this year?", a:"Yes, we are in the same class. Our teacher is very kind." },
{ n:10, q:"What are you wearing today?", a:"I am wearing a blue shirt and black shoes today." },
]);
// Questions 11–15
qSlide(3, [
{ n:11, q:"Does she speak English at home?", a:"Yes, she speaks a little English at home with her family." },
{ n:12, q:"What is it on the table?", a:"It is a red apple. It looks fresh and tasty." },
{ n:13, q:"Are they playing outside now?", a:"No, they are not playing outside. They are eating lunch." },
{ n:14, q:"What does your teacher look like?", a:"My teacher is tall. She has short hair and a warm smile." },
{ n:15, q:"What do we need for this lesson?", a:"We need our notebooks, pens, and our thinking brains!" },
]);
// Questions 16–20
qSlide(4, [
{ n:16, q:"Is he reading or is he writing now?", a:"He is writing a sentence in his notebook right now." },
{ n:17, q:"What colour is her favourite dress?", a:"Her favourite dress is pink. She wears it on Sundays." },
{ n:18, q:"Do they always listen in class?", a:"Yes, they always listen carefully. They are good students." },
{ n:19, q:"What is your favourite subject and why?", a:"My favourite subject is English because it is very useful." },
{ n:20, q:"What are you learning about today in school?", a:"We are learning about pronouns. They help us speak better." },
]);
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 13 – QUICK REVIEW SUMMARY
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bgRect(s, C.navy);
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.05, fill: { color: C.gold }, line: { color: C.gold } });
s.addText("⭐ Quick Review", { x: 0.2, y: 0, w: 9.6, h: 1.05, fontSize: 34, bold: true, color: C.navy, valign: "middle" });
const rows = [
{ type: "Subject Pronouns", list: "I, You, He, She, It, We, They", formula: "Pronoun + Verb + …", ru: "Я, Ты, Он, Она, Оно, Мы, Они" },
{ type: "Object Pronouns", list: "Me, You, Him, Her, It, Us, Them", formula: "Subj + Verb + Pronoun", ru: "Меня, Его, Её, Нас, Их" },
{ type: "Possessive Pronouns", list: "My, Your, His, Her, Its, Our, Their", formula: "Pronoun + Noun + Verb", ru: "Мой, Твой, Его, Её, Наш, Их" },
];
rows.forEach((r, i) => {
const y = 1.18 + i * 1.35;
s.addShape(pres.ShapeType.roundRect, { x: 0.3, y, w: 9.4, h: 1.22, fill: { color: "0D47A1" }, line: { color: "5C8AFF", pt: 1 }, rectRadius: 0.12 });
s.addText(r.type, { x: 0.5, y: y + 0.05, w: 9, h: 0.35, fontSize: 15, bold: true, color: C.gold });
s.addText(`Words: ${r.list}`, { x: 0.5, y: y + 0.38, w: 9, h: 0.28, fontSize: 12, color: "A5D6A7" });
s.addText(`Formula: ${r.formula} | Russian: ${r.ru}`, { x: 0.5, y: y + 0.68, w: 9, h: 0.28, fontSize: 11, color: "B0BEC5" });
});
footer(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 14 – END / WELL DONE
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bgRect(s, C.navy);
s.addShape(pres.ShapeType.ellipse, { x: 3.5, y: 0.3, w: 3, h: 3, fill: { color: C.cobalt }, line: { color: C.cobalt } });
s.addText("🏆", { x: 3.5, y: 0.35, w: 3, h: 3, fontSize: 68, align: "center", valign: "middle" });
s.addText("Well Done!", { x: 1, y: 3.4, w: 8, h: 0.75, fontSize: 40, bold: true, color: C.gold, align: "center" });
s.addText("You know your pronouns now!", { x: 1, y: 4.18, w: 8, h: 0.45, fontSize: 20, color: C.white, align: "center", italic: true });
s.addText("I • You • He • She • It • We • They", {
x: 1, y: 4.7, w: 8, h: 0.35, fontSize: 14, color: C.gold, align: "center"
});
}
// ─── WRITE FILE ────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/pronouns-esl-ppt/Pronouns_ESL_Grade3.pptx" })
.then(() => console.log("✅ DONE"))
.catch(e => console.error("❌", e));
cd /home/daytona/workspace/pronouns-esl-ppt && node build.js 2>&1
ls -lh /home/daytona/workspace/pronouns-esl-ppt/
Pronouns ESL Grade3
Presentation · PPTX
| # | Slide | What it covers |
|---|---|---|
| 1 | Title | "Pronouns – ESL Grade 3" with teacher/date fields |
| 2 | What is a Pronoun? | Definition with before/after example (with vs. without pronoun) |
| 3 | Pronouns Table | Full table of 18 pronouns with Russian translation (Я, Ты, Он, Она…), type, and example sentence |
| 4 | Present Simple Formula | SUBJECT PRONOUN + VERB + REST with 6 colour-coded examples |
| 5 | Present Continuous Formula | PRONOUN + am/is/are + VERB-ing + REST with am/is/are rules and 6 examples |
| 6 | Object Pronoun Formula | SUBJECT + VERB + OBJECT PRONOUN - pronoun comes after the verb |
| 7 | Possessive Pronoun Formula | POSSESSIVE PRONOUN + NOUN + VERB - pronoun comes before the noun |
| 8-11 | Conversation Questions Q1-Q20 | 4 slides, 5 questions each, every question has its answer below it |
| 12 | Quick Review | Summary table of all 3 pronoun types, their lists, formula, and Russian equivalents |
| 13 | Well Done! | Closing celebration slide |
I am unable to download it.Please show individual photos in .jpg format from slide or pdf form file.
cd /home/daytona/workspace/pronouns-esl-ppt && mkdir -p slides_jpg && libreoffice --headless --convert-to pdf Pronouns_ESL_Grade3.pptx --outdir /home/daytona/workspace/pronouns-esl-ppt/ 2>&1
cp /home/daytona/workspace/pronouns-esl-ppt/Pronouns_ESL_Grade3.pptx /tmp/pronouns.pptx && libreoffice --headless --convert-to pdf /tmp/pronouns.pptx --outdir /tmp/ 2>&1
pdftoppm -r 150 -jpeg /tmp/pronouns.pdf /tmp/slide && ls /tmp/slide*.jpg 2>&1
cp /tmp/slide-*.jpg /home/daytona/workspace/pronouns-esl-ppt/slides_jpg/ && ls -lh /home/daytona/workspace/pronouns-esl-ppt/slides_jpg/













slide 01
Image · JPG
slide 02
Image · JPG
slide 03
Image · JPG
slide 04
Image · JPG
slide 05
Image · JPG
slide 06
Image · JPG
slide 07
Image · JPG
slide 08
Image · JPG
slide 09
Image · JPG
slide 10
Image · JPG
slide 11
Image · JPG
slide 12
Image · JPG
slide 13
Image · JPG
I am unable to download and open the files.
| Slide | Title |
|---|---|
| 1 | Title - Pronouns, ESL Grade 3 |
| 2 | What Is a Pronoun? (definition + examples) |
| 3 | Full Pronouns Table with Russian translations |
| 4 | Present Simple Formula |
| 5 | Present Continuous Formula |
| 6 | Object Pronoun Formula |
| 7 | Possessive Pronoun Formula |
| 8 | Conversation Q1-Q5 with answers |
| 9 | Conversation Q6-Q10 with answers |
| 10 | Conversation Q11-Q15 with answers |
| 11 | Conversation Q16-Q20 with answers |
| 12 | Quick Review Summary |
| 13 | Well Done! (closing slide) |
I can't see anything, please once again make ready my file in PPT form and pdf form and .jpg format photos which are easy to download.
ls -lh /home/daytona/workspace/pronouns-esl-ppt/ && ls -lh /home/daytona/workspace/pronouns-esl-ppt/slides_jpg/
# Copy PDF to workspace folder cp /tmp/pronouns.pdf /home/daytona/workspace/pronouns-esl-ppt/Pronouns_ESL_Grade3.pdf # Create a ZIP of all JPG slides cd /home/daytona/workspace/pronouns-esl-ppt/slides_jpg && zip -j /home/daytona/workspace/pronouns-esl-ppt/Pronouns_Slides_JPG.zip *.jpg echo "--- All files ready ---" ls -lh /home/daytona/workspace/pronouns-esl-ppt/
# Copy JPGs to workspace root-level folder for direct access cp /home/daytona/workspace/pronouns-esl-ppt/slides_jpg/*.jpg /home/daytona/workspace/pronouns-esl-ppt/ ls -lh /home/daytona/workspace/pronouns-esl-ppt/*.jpg
Pronouns ESL Grade3
Presentation · PPTX
Pronouns ESL Grade3
PDF Document · PDF
| Slide | Topic | Download |
|---|---|---|
| Slide 1 | Title Page | slide 01 Image · JPG |
| Slide 2 | What Is a Pronoun? | slide 02 Image · JPG |
| Slide 3 | Pronouns Table (English + Russian) | slide 03 Image · JPG |
| Slide 4 | Present Simple Formula | slide 04 Image · JPG |
| Slide 5 | Present Continuous Formula | slide 05 Image · JPG |
| Slide 6 | Object Pronoun Formula | slide 06 Image · JPG |
| Slide 7 | Possessive Pronoun Formula | slide 07 Image · JPG |
| Slide 8 | Questions Q1–Q5 + Answers | slide 08 Image · JPG |
| Slide 9 | Questions Q6–Q10 + Answers | slide 09 Image · JPG |
| Slide 10 | Questions Q11–Q15 + Answers | slide 10 Image · JPG |
| Slide 11 | Questions Q16–Q20 + Answers | slide 11 Image · JPG |
| Slide 12 | Quick Review Summary | slide 12 Image · JPG |
| Slide 13 | Well Done! (Closing) | slide 13 Image · JPG |
I am unable to open these files.I am really disappointed from your work ,I need it fast .Show all information on screen if I can't down the files
| ❌ Without Pronoun | ✅ With Pronoun |
|---|---|
| Maria is happy. Maria likes school. | Maria is happy. She likes school. |
"She" is the pronoun. It replaces "Maria" so we do not repeat the name!
| Pronoun | Russian (RU) | Type | Example Sentence |
|---|---|---|---|
| I | Я | Subject | I am a student. |
| You | Ты / Вы | Subject | You are my friend. |
| He | Он | Subject | He is reading now. |
| She | Она | Subject | She likes cats. |
| It | Оно / Это | Subject | It is raining. |
| We | Мы | Subject | We are playing. |
| They | Они | Subject | They are happy. |
| Me | Меня / Мне | Object | Look at me! |
| Him | Его / Ему | Object | I see him. |
| Her | Её / Ей | Object | She helps her. |
| Us | Нас / Нам | Object | Join us! |
| Them | Их / Им | Object | We know them. |
| My | Мой / Моя | Possessive | My bag is red. |
| Your | Твой / Ваш | Possessive | Your book is here. |
| His | Его | Possessive | His dog is big. |
| Her | Её | Possessive | Her dress is blue. |
| Our | Наш | Possessive | Our class is fun. |
| Their | Их | Possessive | Their house is big. |
SUBJECT PRONOUN + VERB (base form) + REST OF SENTENCE
| Pronoun | Verb | Rest |
|---|---|---|
| I | eat | breakfast every day. |
| She | reads | a book at night. |
| They | play | football after school. |
| He | studies | English now. |
| We | love | our teacher. |
| You | draw | very well. |
SUBJECT PRONOUN + am/is/are + VERB + -ing + REST
| Pronoun | am/is/are | Verb+ing | Rest |
|---|---|---|---|
| I | am | eating | my lunch. |
| She | is | singing | a song. |
| They | are | running | in the park. |
| He | is | watching | TV right now. |
| We | are | learning | English. |
| You | are | doing | great! |
SUBJECT + VERB + OBJECT PRONOUN
Object pronouns come AFTER the verb.
| Sentence | Sentence |
|---|---|
| I see her. | She sees me. |
| We know them. | He helps us. |
| She loves him. | They hear you. |
| I watch it. | Do you like her? |
POSSESSIVE PRONOUN + NOUN + VERB ...
Possessive pronouns come BEFORE the noun. They show who something belongs to.
| Sentence | Sentence | Sentence |
|---|---|---|
| My bag is blue. | Your book is here. | His dog runs fast. |
| Her dress is pretty. | Our school is big. | Their cat is sleeping. |
| Type | Pronouns | Formula | Russian |
|---|---|---|---|
| Subject | I, You, He, She, It, We, They | Pronoun + Verb + … | Я, Ты, Он, Она, Оно, Мы, Они |
| Object | Me, You, Him, Her, It, Us, Them | Subject + Verb + Pronoun | Меня, Его, Её, Нас, Их |
| Possessive | My, Your, His, Her, Its, Our, Their | Pronoun + Noun + Verb | Мой, Твой, Его, Её, Наш, Их |
Create an attractive colorful ppt using above mentioned pdf and mentioned all information.
python3 -c " import pdfplumber with pdfplumber.open('/home/daytona/workspace/attachments/0a2006a6-0ef6-423e-a696-61dacdc3c9a6/DOC-20260628-WA0016..pdf') as pdf: print(f'Total pages: {len(pdf.pages)}') for i, page in enumerate(pdf.pages): print(f'\\n=== PAGE {i+1} ===') print(page.extract_text()) "
~/pronouns-esl-ppt/build2.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Pronouns – ESL Grade 3";
// ── COLOUR PALETTE ──────────────────────────────────────────────────────────
const C = {
navy: "1A237E", cobalt: "1565C0", sky: "E3F2FD",
gold: "FFD600", white: "FFFFFF", dark: "0D1B4B",
teal: "00695C", orange: "E65100", green:"2E7D32",
rose: "AD1457", purple: "6A1B9A", lime: "558B2F",
amber: "FF6F00", cyan: "00838F",
};
// ── HELPERS ─────────────────────────────────────────────────────────────────
const bg = (s,col) => s.addShape(pres.ShapeType.rect,{x:0,y:0,w:10,h:5.625,fill:{color:col}});
const hdr = (s,txt,bg_,tc) => {
s.addShape(pres.ShapeType.rect,{x:0,y:0,w:10,h:1.05,fill:{color:bg_},line:{color:bg_}});
s.addText(txt,{x:0.25,y:0,w:9.5,h:1.05,fontSize:28,bold:true,color:tc,valign:"middle"});
};
const foot = s => s.addText("Pronouns – ESL Grade 3 | Present Simple & Present Continuous",
{x:0,y:5.38,w:10,h:0.24,fontSize:7.5,color:"AAAAAA",align:"center"});
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 1 – TITLE
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bg(s, C.navy);
// big decorative circles
[[7.6,-0.6,3.5,3.5,C.cobalt],[8.6,3.8,2,2,"0D47A1"],[-0.9,3.5,2.5,2.5,C.cobalt]].forEach(
([x,y,w,h,c])=>s.addShape(pres.ShapeType.ellipse,{x,y,w,h,fill:{color:c},line:{color:c}}));
s.addText("📝 PRONOUNS",{x:0.5,y:0.55,w:9,h:1.4,fontSize:58,bold:true,color:C.gold,align:"center"});
s.addText("An ESL Lesson for Grade 3",{x:0.5,y:2.05,w:9,h:0.65,fontSize:26,color:C.white,align:"center",italic:true});
s.addText("Present Simple • Present Continuous",{x:0.5,y:2.78,w:9,h:0.52,fontSize:19,color:C.gold,align:"center"});
s.addShape(pres.ShapeType.rect,{x:2.2,y:3.42,w:5.6,h:0.07,fill:{color:C.gold},line:{color:C.gold}});
s.addText("Grade 3 • ESL English",{x:1,y:3.62,w:8,h:0.38,fontSize:14,color:"BBDEFB",align:"center"});
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 2 – WHAT IS A PRONOUN?
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bg(s,"EDE7F6");
hdr(s,"💡 What Is a Pronoun?",C.purple,C.white);
s.addText("A pronoun is a word that replaces a noun (a person, place, or thing).",
{x:0.4,y:1.12,w:9.2,h:0.5,fontSize:17,bold:true,color:C.dark});
// without pronoun – red box
s.addShape(pres.ShapeType.roundRect,{x:0.35,y:1.72,w:9.3,h:0.82,fill:{color:"FFCDD2"},line:{color:"E57373",pt:2},rectRadius:0.12});
s.addText([
{text:"❌ Without pronoun: ",options:{bold:true,color:"C62828",fontSize:15}},
{text:"Maria is happy. Maria likes school.",options:{color:"B71C1C",fontSize:15}},
],{x:0.55,y:1.75,w:9,h:0.76,valign:"middle"});
// with pronoun – green box
s.addShape(pres.ShapeType.roundRect,{x:0.35,y:2.65,w:9.3,h:0.82,fill:{color:"C8E6C9"},line:{color:"66BB6A",pt:2},rectRadius:0.12});
s.addText([
{text:"✅ With pronoun: ",options:{bold:true,color:C.green,fontSize:15}},
{text:"Maria is happy. ",options:{color:C.dark,fontSize:15}},
{text:"She",options:{bold:true,color:C.green,fontSize:15}},
{text:" likes school.",options:{color:C.dark,fontSize:15}},
],{x:0.55,y:2.68,w:9,h:0.76,valign:"middle"});
s.addShape(pres.ShapeType.roundRect,{x:0.35,y:3.58,w:9.3,h:0.68,fill:{color:"F3E5F5"},line:{color:C.purple,pt:1.5},rectRadius:0.1});
s.addText('💬 "She" replaces "Maria" — so we do NOT repeat the name!',
{x:0.55,y:3.6,w:9,h:0.64,fontSize:15,italic:true,bold:true,color:C.purple,valign:"middle"});
foot(s);
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 3 – PRONOUNS TABLE (Subject + Object)
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bg(s,C.sky);
hdr(s,"📋 Pronouns – English & Russian (Part 1)",C.navy,C.gold);
const cols = {x:[0.3,1.28,2.55,4.0,5.85], w:[0.95,1.25,1.43,1.83,4.0]};
const headers = ["Pronoun","Russian","Type","Example Sentence"];
// header bar
[0,1,2,3].forEach(ci=>{
const xi = cols.x[ci+1], wi = cols.w[ci+1];
s.addShape(pres.ShapeType.rect,{x:xi,y:1.12,w:wi,h:0.32,fill:{color:C.navy},line:{color:C.navy}});
s.addText(headers[ci],{x:xi,y:1.12,w:wi,h:0.32,fontSize:10.5,bold:true,color:C.gold,align:"center",valign:"middle"});
});
// pronoun column header
s.addShape(pres.ShapeType.rect,{x:cols.x[0],y:1.12,w:cols.w[0],h:0.32,fill:{color:C.gold},line:{color:C.gold}});
s.addText("Word",{x:cols.x[0],y:1.12,w:cols.w[0],h:0.32,fontSize:10.5,bold:true,color:C.navy,align:"center",valign:"middle"});
const rows=[
["I","Я","Subject","I am a student."],
["You","Ты / Вы","Subject","You are my friend."],
["He","Он","Subject","He is reading now."],
["She","Она","Subject","She likes cats."],
["It","Оно / Это","Subject","It is raining."],
["We","Мы","Subject","We are playing."],
["They","Они","Subject","They are happy."],
["Me","Меня / Мне","Object","Look at me!"],
["Him","Его / Ему","Object","I see him."],
["Her","Её / Ей","Object","She helps her."],
["Us","Нас / Нам","Object","Join us!"],
["Them","Их / Им","Object","We know them."],
];
const typeColor = {"Subject":"DBEAFE","Object":"FEF9C3"};
rows.forEach((row,ri)=>{
const y = 1.46 + ri*0.31;
const rowBg = ri%2===0 ? "FFFFFF" : "F0F4FF";
cols.x.forEach((cx,ci)=>{
s.addShape(pres.ShapeType.rect,{x:cx,y,w:cols.w[ci],h:0.29,fill:{color:rowBg},line:{color:"CCCCCC",pt:0.5}});
});
const tcol = typeColor[row[2]]||rowBg;
s.addShape(pres.ShapeType.rect,{x:cols.x[2],y,w:cols.w[2],h:0.29,fill:{color:tcol},line:{color:"CCCCCC",pt:0.5}});
s.addText(row[0],{x:cols.x[0]+0.03,y,w:cols.w[0]-0.06,h:0.29,fontSize:11,bold:true,color:C.cobalt,valign:"middle",align:"center"});
s.addText(row[1],{x:cols.x[1]+0.03,y,w:cols.w[1]-0.06,h:0.29,fontSize:9.5,color:C.dark,valign:"middle"});
s.addText(row[2],{x:cols.x[2]+0.03,y,w:cols.w[2]-0.06,h:0.29,fontSize:9.5,bold:true,color:C.dark,valign:"middle",align:"center"});
s.addText(row[3],{x:cols.x[3]+0.03,y,w:cols.w[3]+cols.w[4]-0.06,h:0.29,fontSize:9.5,color:C.dark,valign:"middle"});
});
foot(s);
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 4 – PRONOUNS TABLE (Possessive)
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bg(s,"FFF8E1");
hdr(s,"📋 Pronouns – English & Russian (Part 2: Possessive)",C.amber,C.white);
const cols = {x:[0.3,1.28,2.55,4.0,5.85], w:[0.95,1.25,1.43,1.83,4.0]};
const headers = ["Pronoun","Russian","Type","Example Sentence"];
[0,1,2,3].forEach(ci=>{
const xi = cols.x[ci+1], wi = cols.w[ci+1];
s.addShape(pres.ShapeType.rect,{x:xi,y:1.12,w:wi,h:0.32,fill:{color:C.amber},line:{color:C.amber}});
s.addText(headers[ci],{x:xi,y:1.12,w:wi,h:0.32,fontSize:10.5,bold:true,color:C.white,align:"center",valign:"middle"});
});
s.addShape(pres.ShapeType.rect,{x:cols.x[0],y:1.12,w:cols.w[0],h:0.32,fill:{color:C.gold},line:{color:C.gold}});
s.addText("Word",{x:cols.x[0],y:1.12,w:cols.w[0],h:0.32,fontSize:10.5,bold:true,color:C.dark,align:"center",valign:"middle"});
const rows=[
["My","Мой / Моя","Possessive","My bag is red."],
["Your","Твой / Ваш","Possessive","Your book is here."],
["His","Его","Possessive","His dog is big."],
["Her","Её","Possessive","Her dress is blue."],
["Its","Его / Её","Possessive","Its tail is long."],
["Our","Наш","Possessive","Our class is fun."],
["Their","Их","Possessive","Their house is big."],
];
rows.forEach((row,ri)=>{
const y = 1.46 + ri*0.36;
const rowBg = ri%2===0 ? "FFFFFF" : "FFFDE7";
cols.x.forEach((cx,ci)=>{
s.addShape(pres.ShapeType.rect,{x:cx,y,w:cols.w[ci],h:0.34,fill:{color:rowBg},line:{color:"CCCCCC",pt:0.5}});
});
s.addShape(pres.ShapeType.rect,{x:cols.x[2],y,w:cols.w[2],h:0.34,fill:{color:"FFE082"},line:{color:"CCCCCC",pt:0.5}});
s.addText(row[0],{x:cols.x[0]+0.03,y,w:cols.w[0]-0.06,h:0.34,fontSize:12,bold:true,color:C.orange,valign:"middle",align:"center"});
s.addText(row[1],{x:cols.x[1]+0.03,y,w:cols.w[1]-0.06,h:0.34,fontSize:10,color:C.dark,valign:"middle"});
s.addText(row[2],{x:cols.x[2]+0.03,y,w:cols.w[2]-0.06,h:0.34,fontSize:10,bold:true,color:C.amber,valign:"middle",align:"center"});
s.addText(row[3],{x:cols.x[3]+0.03,y,w:cols.w[3]+cols.w[4]-0.06,h:0.34,fontSize:10,color:C.dark,valign:"middle"});
});
s.addShape(pres.ShapeType.roundRect,{x:0.3,y:4.05,w:9.4,h:0.52,fill:{color:"FFF3CD"},line:{color:C.amber,pt:1.5},rectRadius:0.1});
s.addText("💡 Formula: POSSESSIVE PRONOUN + NOUN + VERB (My bag IS red.)",
{x:0.5,y:4.06,w:9.1,h:0.5,fontSize:13,bold:true,color:C.amber,valign:"middle",align:"center"});
foot(s);
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 5 – PRESENT SIMPLE FORMULA
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bg(s,C.navy);
hdr(s,"📐 Formula 1 – Present Simple",C.gold,C.navy);
s.addShape(pres.ShapeType.roundRect,{x:0.5,y:1.15,w:9,h:0.85,fill:{color:C.cobalt},line:{color:C.gold,pt:2.5},rectRadius:0.15});
s.addText([
{text:"SUBJECT PRONOUN",options:{bold:true,color:C.gold,fontSize:17}},
{text:" + ",options:{color:C.white,fontSize:17}},
{text:"VERB (base form)",options:{bold:true,color:"A5D6A7",fontSize:17}},
{text:" + ",options:{color:C.white,fontSize:17}},
{text:"REST OF SENTENCE",options:{bold:true,color:"FFE082",fontSize:17}},
],{x:0.7,y:1.18,w:8.6,h:0.78,valign:"middle",align:"center"});
const ex=[
{pro:"I", v:"eat", r:"breakfast every day."},
{pro:"She", v:"reads", r:"a book at night."},
{pro:"They", v:"play", r:"football after school."},
{pro:"He", v:"studies",r:"English every day."},
{pro:"We", v:"love", r:"our teacher."},
{pro:"You", v:"draw", r:"very well."},
];
ex.forEach((e,i)=>{
const col=i<3?0:1, row=i%3;
const x=0.4+col*4.9, y=2.12+row*1.05;
s.addShape(pres.ShapeType.roundRect,{x,y,w:4.65,h:0.88,fill:{color:"0D47A1"},line:{color:"5C8AFF",pt:1},rectRadius:0.12});
s.addText([
{text:e.pro+" ",options:{bold:true,color:C.gold,fontSize:17}},
{text:e.v+" ",options:{bold:true,color:"A5D6A7",fontSize:17}},
{text:e.r,options:{color:C.white,fontSize:14}},
],{x:x+0.15,y,w:4.35,h:0.88,valign:"middle"});
});
foot(s);
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 6 – PRESENT CONTINUOUS FORMULA
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bg(s,"004D40");
hdr(s,"📐 Formula 2 – Present Continuous","00695C",C.gold);
s.addShape(pres.ShapeType.roundRect,{x:0.5,y:1.15,w:9,h:0.85,fill:{color:"00897B"},line:{color:C.gold,pt:2.5},rectRadius:0.15});
s.addText([
{text:"PRONOUN",options:{bold:true,color:C.gold,fontSize:16}},
{text:" + ",options:{color:C.white,fontSize:16}},
{text:"am/is/are",options:{bold:true,color:"B2EBF2",fontSize:16}},
{text:" + ",options:{color:C.white,fontSize:16}},
{text:"VERB + -ing",options:{bold:true,color:"FFE082",fontSize:16}},
{text:" + ",options:{color:C.white,fontSize:16}},
{text:"REST",options:{bold:true,color:"F48FB1",fontSize:16}},
],{x:0.7,y:1.18,w:8.6,h:0.78,valign:"middle",align:"center"});
s.addShape(pres.ShapeType.roundRect,{x:0.5,y:2.1,w:9,h:0.5,fill:{color:"00695C"},line:{color:"80CBC4",pt:1},rectRadius:0.1});
s.addText("I → am | He / She / It → is | You / We / They → are",
{x:0.7,y:2.12,w:8.6,h:0.46,fontSize:14,bold:true,color:"B2EBF2",align:"center",valign:"middle"});
const ex=[
{pro:"I", be:"am", v:"eating", r:"my lunch."},
{pro:"She", be:"is", v:"singing", r:"a song."},
{pro:"They", be:"are", v:"running", r:"in the park."},
{pro:"He", be:"is", v:"watching",r:"TV right now."},
{pro:"We", be:"are", v:"learning",r:"English."},
{pro:"You", be:"are", v:"doing", r:"great!"},
];
ex.forEach((e,i)=>{
const col=i<3?0:1, row=i%3;
const x=0.35+col*4.9, y=2.72+row*0.88;
s.addShape(pres.ShapeType.roundRect,{x,y,w:4.68,h:0.76,fill:{color:"00796B"},line:{color:"4DB6AC",pt:1},rectRadius:0.1});
s.addText([
{text:e.pro+" ",options:{bold:true,color:C.gold,fontSize:15}},
{text:e.be+" ",options:{bold:true,color:"B2EBF2",fontSize:15}},
{text:e.v+" ",options:{bold:true,color:"FFE082",fontSize:15}},
{text:e.r,options:{color:C.white,fontSize:13}},
],{x:x+0.12,y,w:4.44,h:0.76,valign:"middle"});
});
foot(s);
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 7 – OBJECT PRONOUN FORMULA
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bg(s,"FFF3E0");
hdr(s,"📐 Formula 3 – Object Pronouns",C.orange,C.white);
s.addShape(pres.ShapeType.roundRect,{x:0.5,y:1.15,w:9,h:0.78,fill:{color:C.orange},line:{color:C.gold,pt:2},rectRadius:0.15});
s.addText([
{text:"SUBJECT + VERB + ",options:{bold:true,color:C.white,fontSize:18}},
{text:"OBJECT PRONOUN",options:{bold:true,color:C.gold,fontSize:18}},
],{x:0.7,y:1.18,w:8.6,h:0.72,valign:"middle",align:"center"});
s.addText("Object pronouns come AFTER the verb.",
{x:0.5,y:2.02,w:9,h:0.35,fontSize:14,bold:true,italic:true,color:C.dark,align:"center"});
const pairs=[
["I see her.","She sees me.","We know them.","He helps us."],
["She loves him.","They hear you.","I watch it.","Do you like her?"],
];
pairs.forEach((row,ri)=>{
row.forEach((cell,ci)=>{
const x=0.3+ci*2.37, y=2.47+ri*1.22;
s.addShape(pres.ShapeType.roundRect,{x,y,w:2.25,h:1.0,fill:{color:"FFE0B2"},line:{color:C.orange,pt:1.5},rectRadius:0.12});
s.addText(cell,{x:x+0.08,y,w:2.1,h:1.0,fontSize:14,bold:true,color:C.dark,align:"center",valign:"middle"});
});
});
foot(s);
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 8 – POSSESSIVE PRONOUN FORMULA
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bg(s,"FCE4EC");
hdr(s,"📐 Formula 4 – Possessive Pronouns",C.rose,C.white);
s.addShape(pres.ShapeType.roundRect,{x:0.5,y:1.15,w:9,h:0.78,fill:{color:C.rose},line:{color:C.gold,pt:2},rectRadius:0.15});
s.addText([
{text:"POSSESSIVE PRONOUN",options:{bold:true,color:C.gold,fontSize:18}},
{text:" + NOUN + VERB …",options:{bold:true,color:C.white,fontSize:18}},
],{x:0.7,y:1.18,w:8.6,h:0.72,valign:"middle",align:"center"});
s.addText("Possessive pronouns show who something BELONGS TO. They come BEFORE the noun.",
{x:0.5,y:2.02,w:9,h:0.38,fontSize:13,bold:true,italic:true,color:C.dark,align:"center"});
const pex=[
["My bag is blue.","Your book is here.","His dog runs fast."],
["Her dress is pretty.","Our school is big.","Their cat is sleeping."],
];
pex.forEach((row,ri)=>{
row.forEach((cell,ci)=>{
const x=0.38+ci*3.12, y=2.52+ri*1.3;
s.addShape(pres.ShapeType.roundRect,{x,y,w:3.0,h:1.1,fill:{color:"F8BBD9"},line:{color:C.rose,pt:1.5},rectRadius:0.12});
s.addText(cell,{x:x+0.08,y,w:2.85,h:1.1,fontSize:14,bold:true,color:C.dark,align:"center",valign:"middle"});
});
});
foot(s);
}
// ════════════════════════════════════════════════════════════════════════════
// helper: conversation slides
// ════════════════════════════════════════════════════════════════════════════
const palettes=[
{bg:"E8F5E9",banner:C.green},
{bg:"E3F2FD",banner:C.cobalt},
{bg:"FFF8E1",banner:C.amber},
{bg:"F3E5F5",banner:C.purple},
];
function qSlide(idx,pairs){
const p=palettes[idx%palettes.length];
const s=pres.addSlide();
bg(s,p.bg);
s.addShape(pres.ShapeType.rect,{x:0,y:0,w:10,h:0.95,fill:{color:p.banner},line:{color:p.banner}});
s.addText(`💬 Conversation Questions (Q${pairs[0].n} – Q${pairs[pairs.length-1].n})`,
{x:0.25,y:0,w:9.5,h:0.95,fontSize:24,bold:true,color:C.white,valign:"middle"});
pairs.forEach((p2,i)=>{
const y=1.05+i*0.87;
s.addShape(pres.ShapeType.roundRect,{x:0.3,y,w:9.4,h:0.36,fill:{color:p.banner},line:{color:p.banner},rectRadius:0.08});
s.addText(`Q${p2.n}: ${p2.q}`,{x:0.45,y,w:9.1,h:0.36,fontSize:13,bold:true,color:C.white,valign:"middle"});
s.addShape(pres.ShapeType.roundRect,{x:0.3,y:y+0.38,w:9.4,h:0.36,fill:{color:"FFFFFF"},line:{color:p.banner,pt:1},rectRadius:0.08});
s.addText(`➤ ${p2.a}`,{x:0.45,y:y+0.38,w:9.1,h:0.36,fontSize:12,color:C.dark,valign:"middle"});
});
foot(s);
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDES 9–12 CONVERSATION Q1–Q20
// ════════════════════════════════════════════════════════════════════════════
qSlide(0,[
{n:1,q:"What is your name?",a:"My name is Alex. I am a student in Grade 3."},
{n:2,q:"Where are you sitting right now?",a:"I am sitting at my desk near the window."},
{n:3,q:"What does she have in her bag?",a:"She has a pencil, a ruler, and her book in her bag."},
{n:4,q:"Is he your classmate?",a:"Yes, he is my classmate. He sits next to me every day."},
{n:5,q:"What are they doing in the classroom?",a:"They are reading their books and listening to the teacher."},
]);
qSlide(1,[
{n:6,q:"What do you like to eat for breakfast?",a:"I like to eat bread and eggs. It is my favourite breakfast."},
{n:7,q:"Where is she going right now?",a:"She is going to the library. She wants to find a book."},
{n:8,q:"What sport does he play every week?",a:"He plays football every weekend. It is his favourite sport."},
{n:9,q:"Are we in the same class this year?",a:"Yes, we are in the same class. Our teacher is very kind."},
{n:10,q:"What are you wearing today?",a:"I am wearing a blue shirt and black shoes today."},
]);
qSlide(2,[
{n:11,q:"Does she speak English at home?",a:"Yes, she speaks a little English at home with her family."},
{n:12,q:"What is it on the table?",a:"It is a red apple. It looks fresh and tasty."},
{n:13,q:"Are they playing outside now?",a:"No, they are not playing outside. They are eating lunch."},
{n:14,q:"What does your teacher look like?",a:"My teacher is tall. She has short hair and a warm smile."},
{n:15,q:"What do we need for this lesson?",a:"We need our notebooks, pens, and our thinking brains!"},
]);
qSlide(3,[
{n:16,q:"Is he reading or is he writing now?",a:"He is writing a sentence in his notebook right now."},
{n:17,q:"What colour is her favourite dress?",a:"Her favourite dress is pink. She wears it on Sundays."},
{n:18,q:"Do they always listen in class?",a:"Yes, they always listen carefully. They are good students."},
{n:19,q:"What is your favourite subject and why?",a:"My favourite subject is English because it is very useful."},
{n:20,q:"What are you learning about today in school?",a:"We are learning about pronouns. They help us speak better."},
]);
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 13 – QUICK REVIEW SUMMARY
// ════════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
bg(s,C.navy);
s.addShape(pres.ShapeType.rect,{x:0,y:0,w:10,h:1.0,fill:{color:C.gold},line:{color:C.gold}});
s.addText("⭐ Quick Review – All Pronoun Types",{x:0.25,y:0,w:9.5,h:1.0,fontSize:30,bold:true,color:C.navy,valign:"middle"});
const rows=[
{type:"Subject Pronouns", words:"I, You, He, She, It, We, They", formula:"Pronoun + Verb + …", ru:"Я, Ты, Он, Она, Оно, Мы, Они"},
{type:"Object Pronouns", words:"Me, You, Him, Her, It, Us, Them", formula:"Subject + Verb + Pronoun", ru:"Меня, Его, Её, Нас, Их"},
{type:"Possessive Pronouns",words:"My, Your, His, Her, Its, Our, Their",formula:"Pronoun + Noun + Verb", ru:"Мой, Твой, Его, Её, Наш, Их"},
];
rows.forEach((r,i)=>{
const y=1.1+i*1.45;
s.addShape(pres.ShapeType.roundRect,{x:0.3,y,w:9.4,h:1.3,fill:{color:"0D47A1"},line:{color:"5C8AFF",pt:1},rectRadius:0.14});
s.addText(r.type,{x:0.5,y:y+0.06,w:9,h:0.38,fontSize:16,bold:true,color:C.gold});
s.addText(`Words: ${r.words}`,{x:0.5,y:y+0.44,w:9,h:0.3,fontSize:12,color:"A5D6A7"});
s.addText(`Formula: ${r.formula} | Russian: ${r.ru}`,{x:0.5,y:y+0.76,w:9,h:0.3,fontSize:11,color:"B0BEC5"});
});
foot(s);
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 14 – WELL DONE
// ════════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
bg(s,C.navy);
[[3.2,0.1,3.6,3.6,C.cobalt],[1,3.8,2,2,"0D47A1"],[7,3.5,2.5,2.5,C.cobalt]].forEach(
([x,y,w,h,c])=>s.addShape(pres.ShapeType.ellipse,{x,y,w,h,fill:{color:c},line:{color:c}}));
s.addText("🏆",{x:3.2,y:0.2,w:3.6,h:3.6,fontSize:80,align:"center",valign:"middle"});
s.addText("Well Done!",{x:1,y:3.6,w:8,h:0.9,fontSize:46,bold:true,color:C.gold,align:"center"});
s.addText("You know your pronouns now!",{x:1,y:4.52,w:8,h:0.42,fontSize:20,color:C.white,align:"center",italic:true});
}
// ── WRITE FILE ───────────────────────────────────────────────────────────────
pres.writeFile({fileName:"/home/daytona/workspace/pronouns-esl-ppt/Pronouns_ESL_v2.pptx"})
.then(()=>console.log("✅ DONE"))
.catch(e=>console.error("❌",e));
cd /home/daytona/workspace/pronouns-esl-ppt && node build2.js 2>&1
# Convert to PDF and then to JPG slides cp /home/daytona/workspace/pronouns-esl-ppt/Pronouns_ESL_v2.pptx /tmp/pv2.pptx && \ libreoffice --headless --convert-to pdf /tmp/pv2.pptx --outdir /tmp/ 2>&1 && \ mkdir -p /home/daytona/workspace/pronouns-esl-ppt/v2_jpg && \ pdftoppm -r 160 -jpeg /tmp/pv2.pdf /tmp/v2slide && \ cp /tmp/v2slide*.jpg /home/daytona/workspace/pronouns-esl-ppt/v2_jpg/ && \ cp /tmp/pv2.pdf /home/daytona/workspace/pronouns-esl-ppt/Pronouns_ESL_v2.pdf && \ echo "ALL DONE" && ls -lh /home/daytona/workspace/pronouns-esl-ppt/v2_jpg/
Try again
| # | Slide Title | Colour Theme |
|---|---|---|
| 1 | 📝 PRONOUNS – Title Page | Deep Blue + Gold |
| 2 | 💡 What Is a Pronoun? | Purple + Red/Green boxes |
| 3 | 📋 Pronouns Table Part 1 – Subject & Object (with Russian) | Navy Blue |
| 4 | 📋 Pronouns Table Part 2 – Possessive (with Russian) | Orange |
| 5 | 📐 Formula 1 – Present Simple | Gold + Dark Blue |
| 6 | 📐 Formula 2 – Present Continuous | Dark Green |
| 7 | 📐 Formula 3 – Object Pronouns | Orange |
| 8 | 📐 Formula 4 – Possessive Pronouns | Rose/Pink |
| 9 | 💬 Conversation Q1–Q5 + Answers | Green |
| 10 | 💬 Conversation Q6–Q10 + Answers | Blue |
| 11 | 💬 Conversation Q11–Q15 + Answers | Orange |
| 12 | 💬 Conversation Q16–Q20 + Answers | Purple |
| 13 | ⭐ Quick Review – All Pronoun Types | Yellow + Navy |
| 14 | 🏆 Well Done! Closing slide | Deep Blue + Gold |
Pdf format please.I am unable to download above mentioned.
ls -lh /home/daytona/workspace/pronouns-esl-ppt/Pronouns_ESL_v2.pdf
Please prepare a PPT presentation on topic " possessive pronouns" show list of pronouns with their Russian translation in a table form for ESL student 3rd grade .Also prepare easy 15 interesting logical and not funny conversation questions along with answers under them .Use only present simple and present continuous tense.Don't use past tense or past verbs like (-ed ) form or second form of verbs.Also mention in a formula way where and how to place pronouns in your sentences. Make it colorful .
~/possessive-ppt/build.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Possessive Pronouns – ESL Grade 3";
// ── PALETTE ─────────────────────────────────────────────────────────────────
const C = {
navy:"1A237E", cobalt:"1565C0", sky:"E3F2FD",
gold:"FFD600", white:"FFFFFF", dark:"0D1B4B",
teal:"00695C", orange:"E65100", green:"2E7D32",
rose:"AD1457", purple:"6A1B9A", lime:"558B2F",
amber:"FF6F00", cyan:"00838F", pink:"E91E8C",
red:"C62828", lgreen:"1B5E20",
};
// ── HELPERS ─────────────────────────────────────────────────────────────────
const BG = (s,c) => s.addShape(pres.ShapeType.rect,{x:0,y:0,w:10,h:5.625,fill:{color:c}});
const HDR = (s,t,bg,tc) => {
s.addShape(pres.ShapeType.rect,{x:0,y:0,w:10,h:1.05,fill:{color:bg},line:{color:bg}});
s.addText(t,{x:0.25,y:0,w:9.5,h:1.05,fontSize:27,bold:true,color:tc,valign:"middle"});
};
const FOOT = s => s.addText("Possessive Pronouns – ESL Grade 3 | Present Simple & Present Continuous",
{x:0,y:5.38,w:10,h:0.24,fontSize:7.5,color:"AAAAAA",align:"center"});
const BOX = (s,x,y,w,h,fill,line,r,txt,fs,tc,bold=false) => {
s.addShape(pres.ShapeType.roundRect,{x,y,w,h,fill:{color:fill},line:{color:line,pt:1.5},rectRadius:r||0.1});
if(txt!==undefined) s.addText(txt,{x:x+0.08,y,w:w-0.16,h,fontSize:fs||13,color:tc||C.dark,bold,valign:"middle",align:"center"});
};
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 1 – TITLE
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
BG(s, C.navy);
// decorative circles
[[7.5,-0.6,3.8,3.8,"1565C0"],[8.5,3.9,2.2,2.2,"0D47A1"],[-1,3.6,2.8,2.8,"1565C0"],
[0.2,-0.5,1.8,1.8,"0D47A1"]].forEach(([x,y,w,h,c])=>
s.addShape(pres.ShapeType.ellipse,{x,y,w,h,fill:{color:c},line:{color:c}}));
s.addText("✋ POSSESSIVE",{x:0.4,y:0.4,w:9.2,h:1.1,fontSize:52,bold:true,color:C.gold,align:"center"});
s.addText("PRONOUNS",{x:0.4,y:1.45,w:9.2,h:1.1,fontSize:52,bold:true,color:C.white,align:"center"});
s.addText("An ESL Lesson for Grade 3",{x:0.4,y:2.68,w:9.2,h:0.55,fontSize:22,color:"BBDEFB",align:"center",italic:true});
s.addText("Present Simple • Present Continuous",{x:0.4,y:3.28,w:9.2,h:0.45,fontSize:17,color:C.gold,align:"center"});
s.addShape(pres.ShapeType.rect,{x:2,y:3.82,w:6,h:0.07,fill:{color:C.gold},line:{color:C.gold}});
s.addText("Grade 3 • ESL English",{x:1,y:4.0,w:8,h:0.36,fontSize:14,color:"90CAF9",align:"center"});
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 2 – WHAT ARE POSSESSIVE PRONOUNS?
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
BG(s,"EDE7F6");
HDR(s,"💡 What Are Possessive Pronouns?",C.purple,C.white);
s.addText("A possessive pronoun shows who OWNS or BELONGS TO something.",
{x:0.4,y:1.12,w:9.2,h:0.48,fontSize:17,bold:true,color:C.dark});
// 3 coloured concept boxes
const boxes=[
{bg:"E8F5E9",border:"66BB6A",icon:"📚",txt:"They replace a noun + owner\n\"It is Maria's book\" → \"It is HER book\""},
{bg:"E3F2FD",border:"42A5F5",icon:"🏠",txt:"They tell us WHO owns something\n\"This is our house.\" (not \"your\" or \"his\")"},
{bg:"FFF3E0",border:"FFA726",icon:"🎯",txt:"They come BEFORE the noun they describe\n\"My bag is blue.\" \"Their cat is sleeping.\""},
];
boxes.forEach((b,i)=>{
const y = 1.72 + i*1.1;
s.addShape(pres.ShapeType.roundRect,{x:0.35,y,w:9.3,h:0.92,fill:{color:b.bg},line:{color:b.border,pt:1.5},rectRadius:0.12});
s.addText(b.icon+" "+b.txt,{x:0.55,y:y+0.04,w:9,h:0.84,fontSize:13.5,color:C.dark,valign:"middle"});
});
FOOT(s);
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 3 – POSSESSIVE PRONOUNS TABLE (English + Russian)
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
BG(s,C.sky);
HDR(s,"📋 Possessive Pronouns – English & Russian",C.navy,C.gold);
// column setup
const cx=[0.28,1.12,2.32,3.72,5.52];
const cw=[0.82,1.18,1.38,1.78,4.22];
const hLabels=["Word","Russian","Person","Formula","Example Sentence"];
const hBgs=["FFD600","1565C0","1565C0","1565C0","1565C0"];
const hTc=["0D1B4B","FFD600","FFD600","FFD600","FFD600"];
hLabels.forEach((lbl,ci)=>{
s.addShape(pres.ShapeType.rect,{x:cx[ci],y:1.1,w:cw[ci],h:0.34,fill:{color:hBgs[ci]},line:{color:hBgs[ci]}});
s.addText(lbl,{x:cx[ci],y:1.1,w:cw[ci],h:0.34,fontSize:10.5,bold:true,color:hTc[ci],align:"center",valign:"middle"});
});
const rows=[
{w:"My", ru:"Мой / Моя / Моё", p:"I (1st sing.)", f:"MY + noun","ex":"My bag is red."},
{w:"Your", ru:"Твой / Ваш", p:"You (2nd)", f:"YOUR + noun","ex":"Your book is here."},
{w:"His", ru:"Его", p:"He (3rd m.)", f:"HIS + noun","ex":"His dog is big."},
{w:"Her", ru:"Её", p:"She (3rd f.)", f:"HER + noun","ex":"Her dress is blue."},
{w:"Its", ru:"Его / Её (вещи)", p:"It (3rd n.)", f:"ITS + noun","ex":"Its tail is long."},
{w:"Our", ru:"Наш / Наша", p:"We (1st pl.)", f:"OUR + noun","ex":"Our class is fun."},
{w:"Their",ru:"Их", p:"They (3rd pl.)", f:"THEIR + noun","ex":"Their house is big."},
];
const wordColors=["C62828","1565C0","2E7D32","AD1457","6A1B9A","00695C","E65100"];
rows.forEach((r,ri)=>{
const y=1.46+ri*0.52;
const rowBg=ri%2===0?"FFFFFF":"F0F4FF";
cx.forEach((x,ci)=>s.addShape(pres.ShapeType.rect,{x,y,w:cw[ci],h:0.5,fill:{color:rowBg},line:{color:"CCCCCC",pt:0.5}}));
s.addText(r.w,{x:cx[0]+0.03,y,w:cw[0]-0.06,h:0.5,fontSize:14,bold:true,color:wordColors[ri],valign:"middle",align:"center"});
s.addText(r.ru,{x:cx[1]+0.03,y,w:cw[1]-0.06,h:0.5,fontSize:9,color:C.dark,valign:"middle"});
s.addText(r.p, {x:cx[2]+0.03,y,w:cw[2]-0.06,h:0.5,fontSize:8.5,color:"555555",valign:"middle"});
s.addText(r.f, {x:cx[3]+0.03,y,w:cw[3]-0.06,h:0.5,fontSize:9,bold:true,color:C.cobalt,valign:"middle"});
s.addText(r.ex,{x:cx[4]+0.03,y,w:cw[4]-0.06,h:0.5,fontSize:10,color:C.dark,valign:"middle"});
});
FOOT(s);
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 4 – FORMULA 1: PRESENT SIMPLE
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
BG(s,C.navy);
HDR(s,"📐 Formula 1 – Present Simple with Possessive Pronouns","FFB300",C.navy);
// Big formula box
s.addShape(pres.ShapeType.roundRect,{x:0.4,y:1.12,w:9.2,h:0.82,fill:{color:"1565C0"},line:{color:C.gold,pt:2.5},rectRadius:0.15});
s.addText([
{text:"POSSESSIVE PRONOUN",options:{bold:true,color:C.gold,fontSize:16}},
{text:" + ",options:{color:C.white,fontSize:16}},
{text:"NOUN",options:{bold:true,color:"A5D6A7",fontSize:16}},
{text:" + ",options:{color:C.white,fontSize:16}},
{text:"VERB",options:{bold:true,color:"FFE082",fontSize:16}},
{text:" + ",options:{color:C.white,fontSize:16}},
{text:"REST",options:{bold:true,color:"F48FB1",fontSize:16}},
],{x:0.6,y:1.15,w:8.8,h:0.76,valign:"middle",align:"center"});
const ex=[
{pp:"My", noun:"bag", v:"is", r:"red and small.", bg:"B71C1C"},
{pp:"Your", noun:"book", v:"is", r:"on the desk.", bg:"1A237E"},
{pp:"His", noun:"dog", v:"runs", r:"very fast.", bg:"1B5E20"},
{pp:"Her", noun:"dress", v:"is", r:"beautiful.", bg:"880E4F"},
{pp:"Our", noun:"school", v:"has", r:"a big playground.",bg:"004D40"},
{pp:"Their", noun:"cat", v:"sleeps", r:"on the sofa.", bg:"E65100"},
];
ex.forEach((e,i)=>{
const col=i<3?0:1, row=i%3;
const x=0.35+col*4.88, y=2.08+row*1.1;
s.addShape(pres.ShapeType.roundRect,{x,y,w:4.72,h:0.9,fill:{color:e.bg},line:{color:"FFFFFF",pt:0.5},rectRadius:0.12});
s.addText([
{text:e.pp+" ",options:{bold:true,color:C.gold,fontSize:16}},
{text:e.noun+" ",options:{bold:true,color:"A5D6A7",fontSize:16}},
{text:e.v+" ",options:{bold:true,color:"FFE082",fontSize:16}},
{text:e.r,options:{color:C.white,fontSize:13}},
],{x:x+0.14,y,w:4.44,h:0.9,valign:"middle"});
});
FOOT(s);
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 5 – FORMULA 2: PRESENT CONTINUOUS
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
BG(s,"004D40");
HDR(s,"📐 Formula 2 – Present Continuous with Possessive Pronouns","00897B",C.gold);
s.addShape(pres.ShapeType.roundRect,{x:0.4,y:1.12,w:9.2,h:0.82,fill:{color:"00796B"},line:{color:C.gold,pt:2.5},rectRadius:0.15});
s.addText([
{text:"SUBJECT",options:{bold:true,color:"B2EBF2",fontSize:14}},
{text:" + ",options:{color:C.white,fontSize:14}},
{text:"am/is/are",options:{bold:true,color:C.gold,fontSize:14}},
{text:" + ",options:{color:C.white,fontSize:14}},
{text:"VERB-ing",options:{bold:true,color:"FFE082",fontSize:14}},
{text:" + ",options:{color:C.white,fontSize:14}},
{text:"POSSESSIVE PRONOUN",options:{bold:true,color:"F48FB1",fontSize:14}},
{text:" + ",options:{color:C.white,fontSize:14}},
{text:"NOUN",options:{bold:true,color:"A5D6A7",fontSize:14}},
],{x:0.6,y:1.15,w:8.8,h:0.76,valign:"middle",align:"center"});
// am/is/are rule
s.addShape(pres.ShapeType.roundRect,{x:0.4,y:2.05,w:9.2,h:0.42,fill:{color:"00695C"},line:{color:"80CBC4",pt:1},rectRadius:0.08});
s.addText("I → am | He/She/It → is | You/We/They → are",
{x:0.6,y:2.07,w:8.8,h:0.38,fontSize:13,bold:true,color:"B2EBF2",align:"center",valign:"middle"});
const ex=[
{sub:"I", be:"am", v:"reading", pp:"my", noun:"book.", bg:"00695C"},
{sub:"She", be:"is", v:"wearing", pp:"her", noun:"coat.", bg:"880E4F"},
{sub:"They", be:"are", v:"cleaning", pp:"their", noun:"room.", bg:"1A237E"},
{sub:"He", be:"is", v:"walking", pp:"his", noun:"dog.", bg:"1B5E20"},
{sub:"We", be:"are", v:"doing", pp:"our", noun:"homework.",bg:"4A148C"},
{sub:"You", be:"are", v:"holding", pp:"your", noun:"pencil.", bg:"B71C1C"},
];
ex.forEach((e,i)=>{
const col=i<3?0:1, row=i%3;
const x=0.32+col*4.92, y=2.58+row*0.96;
s.addShape(pres.ShapeType.roundRect,{x,y,w:4.72,h:0.82,fill:{color:e.bg},line:{color:"FFFFFF",pt:0.5},rectRadius:0.1});
s.addText([
{text:e.sub+" ",options:{bold:true,color:"B2EBF2",fontSize:14}},
{text:e.be+" ",options:{bold:true,color:C.gold,fontSize:14}},
{text:e.v+" ",options:{bold:true,color:"FFE082",fontSize:14}},
{text:e.pp+" ",options:{bold:true,color:"F48FB1",fontSize:14}},
{text:e.noun,options:{color:C.white,fontSize:13}},
],{x:x+0.12,y,w:4.48,h:0.82,valign:"middle"});
});
FOOT(s);
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 6 – FORMULA 3: QUESTIONS
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
BG(s,"FFF8E1");
HDR(s,"📐 Formula 3 – Questions with Possessive Pronouns","FF6F00",C.white);
// Positive formula
s.addShape(pres.ShapeType.roundRect,{x:0.4,y:1.12,w:9.2,h:0.68,fill:{color:C.amber},line:{color:"FFF176",pt:2},rectRadius:0.12});
s.addText("✅ POSITIVE: SUBJECT + VERB + POSSESSIVE PRONOUN + NOUN",
{x:0.6,y:1.14,w:8.8,h:0.64,fontSize:13.5,bold:true,color:C.white,valign:"middle",align:"center"});
// Negative formula
s.addShape(pres.ShapeType.roundRect,{x:0.4,y:1.9,w:9.2,h:0.68,fill:{color:"E65100"},line:{color:"FFAB40",pt:2},rectRadius:0.12});
s.addText("❌ NEGATIVE: SUBJECT + do not/does not + VERB + POSSESSIVE PRONOUN + NOUN",
{x:0.6,y:1.92,w:8.8,h:0.64,fontSize:12,bold:true,color:C.white,valign:"middle",align:"center"});
// Question formula
s.addShape(pres.ShapeType.roundRect,{x:0.4,y:2.68,w:9.2,h:0.68,fill:{color:C.teal},line:{color:"80CBC4",pt:2},rectRadius:0.12});
s.addText("❓ QUESTION: WHOSE + NOUN + is / are + (this/that) ?",
{x:0.6,y:2.70,w:8.8,h:0.64,fontSize:13.5,bold:true,color:C.white,valign:"middle",align:"center"});
const exs=[
["I like my teacher.", "FFE082","1A237E"],
["She does not like her bag.", "FFE082","880E4F"],
["Whose book is this? → It is his book.","FFE082","1B5E20"],
["We love our school.", "FFE082","4A148C"],
];
exs.forEach(([txt,tc,bg],i)=>{
const x=i<2?0.35:5.05, y=i<2?3.5+(i%2)*0.92:3.5+(i-2)*0.92;
s.addShape(pres.ShapeType.roundRect,{x,y,w:4.5,h:0.8,fill:{color:bg},line:{color:"FFFFFF",pt:0.5},rectRadius:0.1});
s.addText(txt,{x:x+0.1,y,w:4.3,h:0.8,fontSize:12.5,color:tc,bold:true,valign:"middle",align:"center"});
});
FOOT(s);
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 7 – MY vs MINE (bonus)
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
BG(s,"FCE4EC");
HDR(s,"💎 My / Mine – Her / Hers – Their / Theirs (Bonus!)",C.rose,C.white);
s.addText("Adjective form (before noun) vs. Pronoun form (alone, after verb):",
{x:0.4,y:1.12,w:9.2,h:0.4,fontSize:14,bold:true,color:C.dark});
const rows=[
{adj:"My", pro:"Mine", ex1:"My bag is blue.", ex2:"That bag is mine."},
{adj:"Your", pro:"Yours", ex1:"Your pen is here.", ex2:"This pen is yours."},
{adj:"His", pro:"His", ex1:"His dog is big.", ex2:"That dog is his."},
{adj:"Her", pro:"Hers", ex1:"Her book is new.", ex2:"This book is hers."},
{adj:"Our", pro:"Ours", ex1:"Our class is fun.", ex2:"This class is ours."},
{adj:"Their",pro:"Theirs", ex1:"Their cat is orange.", ex2:"That cat is theirs."},
];
const aBg=["FFCDD2","F8BBD9","E1BEE7","BBDEFB","C8E6C9","FFF9C4"];
rows.forEach((r,ri)=>{
const y=1.6+ri*0.64;
s.addShape(pres.ShapeType.roundRect,{x:0.3,y,w:1.5,h:0.56,fill:{color:aBg[ri]},line:{color:C.rose,pt:1},rectRadius:0.08});
s.addText(r.adj,{x:0.3,y,w:1.5,h:0.56,fontSize:15,bold:true,color:C.rose,align:"center",valign:"middle"});
s.addShape(pres.ShapeType.roundRect,{x:1.92,y,w:1.5,h:0.56,fill:{color:"F3E5F5"},line:{color:C.purple,pt:1},rectRadius:0.08});
s.addText(r.pro,{x:1.92,y,w:1.5,h:0.56,fontSize:15,bold:true,color:C.purple,align:"center",valign:"middle"});
s.addShape(pres.ShapeType.roundRect,{x:3.55,y,w:3.0,h:0.56,fill:{color:"FFF8E1"},line:{color:"FFA000",pt:1},rectRadius:0.08});
s.addText(r.ex1,{x:3.65,y,w:2.8,h:0.56,fontSize:12,color:C.dark,valign:"middle"});
s.addShape(pres.ShapeType.roundRect,{x:6.65,y,w:3.15,h:0.56,fill:{color:"E8F5E9"},line:{color:C.green,pt:1},rectRadius:0.08});
s.addText(r.ex2,{x:6.75,y,w:2.95,h:0.56,fontSize:12,color:C.dark,valign:"middle"});
});
FOOT(s);
}
// ════════════════════════════════════════════════════════════════════════════
// helper: conversation slides
// ════════════════════════════════════════════════════════════════════════════
const palettes=[
{bg:"E8F5E9",ban:C.green},
{bg:"E3F2FD",ban:C.cobalt},
{bg:"FFF8E1",ban:C.amber},
];
function qSlide(pidx,pairs){
const p=palettes[pidx%palettes.length];
const s=pres.addSlide();
BG(s,p.bg);
s.addShape(pres.ShapeType.rect,{x:0,y:0,w:10,h:0.95,fill:{color:p.ban},line:{color:p.ban}});
s.addText(`💬 Conversation Questions (Q${pairs[0].n}–Q${pairs[pairs.length-1].n})`,
{x:0.25,y:0,w:9.5,h:0.95,fontSize:23,bold:true,color:C.white,valign:"middle"});
pairs.forEach((p2,i)=>{
const y=1.02+i*0.87;
s.addShape(pres.ShapeType.roundRect,{x:0.3,y,w:9.4,h:0.35,fill:{color:p.ban},line:{color:p.ban},rectRadius:0.08});
s.addText(`Q${p2.n}: ${p2.q}`,{x:0.45,y,w:9.1,h:0.35,fontSize:13,bold:true,color:C.white,valign:"middle"});
s.addShape(pres.ShapeType.roundRect,{x:0.3,y:y+0.37,w:9.4,h:0.37,fill:{color:"FFFFFF"},line:{color:p.ban,pt:1},rectRadius:0.08});
s.addText(`➤ ${p2.a}`,{x:0.45,y:y+0.37,w:9.1,h:0.37,fontSize:12,color:C.dark,valign:"middle"});
});
FOOT(s);
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDES 8–10 – CONVERSATION QUESTIONS Q1–Q15
// ════════════════════════════════════════════════════════════════════════════
qSlide(0,[
{n:1, q:"What colour is your favourite bag?",
a:"My favourite bag is dark blue. I carry it to school every day."},
{n:2, q:"Does she always bring her lunch to school?",
a:"Yes, she always brings her lunch. Her mother makes it every morning."},
{n:3, q:"Is this his pencil or your pencil?",
a:"That pencil is his. My pencil is the red one on the desk."},
{n:4, q:"What is their teacher doing right now?",
a:"Their teacher is writing on the board. She is explaining a new lesson."},
{n:5, q:"Are you wearing your school uniform today?",
a:"Yes, I am wearing my school uniform. It is clean and pressed."},
]);
qSlide(1,[
{n:6, q:"Where is our classroom?",
a:"Our classroom is on the second floor. It is next to the library."},
{n:7, q:"What colour is her favourite dress?",
a:"Her favourite dress is pink with white flowers on it."},
{n:8, q:"Is the cat drinking its milk right now?",
a:"Yes, the cat is drinking its milk. It looks very happy."},
{n:9, q:"What do you keep in your school bag?",
a:"I keep my books, my pencil box, and my water bottle in my bag."},
{n:10,q:"Are they playing with their toys at home?",
a:"No, they are not playing. They are doing their homework right now."},
]);
qSlide(2,[
{n:11,q:"Whose book is on the teacher's table?",
a:"That book is mine. I leave my book there every morning."},
{n:12,q:"What sport does he play with his friends?",
a:"He plays football with his friends every afternoon in the park."},
{n:13,q:"Is she reading her favourite story book now?",
a:"Yes, she is reading her favourite story book. It is very interesting."},
{n:14,q:"What is our homework for today?",
a:"Our homework is to write five sentences using possessive pronouns."},
{n:15,q:"What are you learning in your English class today?",
a:"We are learning about possessive pronouns in our English class today."},
]);
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 11 – QUICK REVIEW TABLE
// ════════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
BG(s,C.navy);
s.addShape(pres.ShapeType.rect,{x:0,y:0,w:10,h:1.0,fill:{color:C.gold},line:{color:C.gold}});
s.addText("⭐ Quick Review – Possessive Pronouns",
{x:0.25,y:0,w:9.5,h:1.0,fontSize:28,bold:true,color:C.navy,valign:"middle"});
const rows=[
{pp:"MY", ru:"Мой/Моя", use:"I own it", f:"My + noun + verb", ex:"My cat is cute."},
{pp:"YOUR", ru:"Твой/Ваш", use:"You own it", f:"Your + noun + verb", ex:"Your turn is next."},
{pp:"HIS", ru:"Его", use:"He owns it", f:"His + noun + verb", ex:"His bike is fast."},
{pp:"HER", ru:"Её", use:"She owns it", f:"Her + noun + verb", ex:"Her hat is big."},
{pp:"ITS", ru:"Его/Её", use:"It owns it", f:"Its + noun + verb", ex:"Its fur is soft."},
{pp:"OUR", ru:"Наш/Наша", use:"We own it", f:"Our + noun + verb", ex:"Our team wins."},
{pp:"THEIR", ru:"Их", use:"They own it", f:"Their + noun + verb",ex:"Their home is warm."},
];
const ppBg=["B71C1C","1A237E","1B5E20","880E4F","4A148C","004D40","E65100"];
rows.forEach((r,ri)=>{
const y=1.07+ri*0.62;
s.addShape(pres.ShapeType.roundRect,{x:0.28,y,w:1.02,h:0.54,fill:{color:ppBg[ri]},line:{color:"FFFFFF",pt:0.5},rectRadius:0.08});
s.addText(r.pp,{x:0.28,y,w:1.02,h:0.54,fontSize:13,bold:true,color:C.gold,align:"center",valign:"middle"});
s.addShape(pres.ShapeType.rect,{x:1.32,y,w:1.35,h:0.54,fill:{color:"0D47A1"},line:{color:"CCCCCC",pt:0.3}});
s.addText(r.ru,{x:1.34,y,w:1.31,h:0.54,fontSize:10,color:"B2EBF2",valign:"middle"});
s.addShape(pres.ShapeType.rect,{x:2.69,y,w:1.55,h:0.54,fill:{color:"0D47A1"},line:{color:"CCCCCC",pt:0.3}});
s.addText(r.use,{x:2.71,y,w:1.51,h:0.54,fontSize:9.5,color:"A5D6A7",valign:"middle"});
s.addShape(pres.ShapeType.rect,{x:4.26,y,w:2.52,h:0.54,fill:{color:"0D47A1"},line:{color:"CCCCCC",pt:0.3}});
s.addText(r.f,{x:4.28,y,w:2.48,h:0.54,fontSize:9.5,color:"FFE082",valign:"middle"});
s.addShape(pres.ShapeType.rect,{x:6.8,y,w:3.0,h:0.54,fill:{color:"0D47A1"},line:{color:"CCCCCC",pt:0.3}});
s.addText(r.ex,{x:6.82,y,w:2.96,h:0.54,fontSize:9.5,color:C.white,valign:"middle"});
});
FOOT(s);
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 12 – WELL DONE
// ════════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
BG(s,C.navy);
[[3.0,0.0,4.0,4.0,"1565C0"],[0.5,3.5,2.5,2.5,"0D47A1"],[7.0,3.2,3.0,3.0,"1565C0"]].forEach(
([x,y,w,h,c])=>s.addShape(pres.ShapeType.ellipse,{x,y,w,h,fill:{color:c},line:{color:c}}));
s.addText("🎉",{x:3.0,y:0.1,w:4.0,h:4.0,fontSize:80,align:"center",valign:"middle"});
s.addText("Well Done!",{x:0.5,y:3.75,w:9,h:0.95,fontSize:48,bold:true,color:C.gold,align:"center"});
s.addText("You know your possessive pronouns now!",
{x:0.5,y:4.68,w:9,h:0.42,fontSize:18,color:C.white,align:"center",italic:true});
}
// ── WRITE ────────────────────────────────────────────────────────────────────
pres.writeFile({fileName:"/home/daytona/workspace/possessive-ppt/Possessive_Pronouns_ESL_Grade3.pptx"})
.then(()=>console.log("✅ DONE")).catch(e=>console.error("❌",e));
Failed to create session: bad request: failed to resolve container IP after 3 attempts: no IP address found. Is the Sandbox started?
We encountered an error while processing your request. Please try again or reach out to us for help.
Try again
mkdir -p /home/daytona/workspace/possessive-ppt && echo "ready"
~/possessive-ppt/build.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Possessive Pronouns – ESL Grade 3";
const C = {
navy:"1A237E", cobalt:"1565C0", sky:"E3F2FD",
gold:"FFD600", white:"FFFFFF", dark:"0D1B4B",
teal:"00695C", orange:"E65100", green:"2E7D32",
rose:"AD1457", purple:"6A1B9A", amber:"FF6F00",
};
const BG = (s,c) => s.addShape(pres.ShapeType.rect,{x:0,y:0,w:10,h:5.625,fill:{color:c}});
const HDR = (s,t,bg,tc) => {
s.addShape(pres.ShapeType.rect,{x:0,y:0,w:10,h:1.05,fill:{color:bg},line:{color:bg}});
s.addText(t,{x:0.25,y:0,w:9.5,h:1.05,fontSize:26,bold:true,color:tc,valign:"middle"});
};
const FOOT = s => s.addText("Possessive Pronouns – ESL Grade 3 | Present Simple & Present Continuous",
{x:0,y:5.38,w:10,h:0.24,fontSize:7.5,color:"AAAAAA",align:"center"});
// ── SLIDE 1: TITLE ──────────────────────────────────────────────────────────
{
const s = pres.addSlide();
BG(s,C.navy);
[[7.4,-0.7,3.8,3.8,"1565C0"],[8.6,3.8,2.2,2.2,"0D47A1"],[-1,3.5,2.8,2.8,"1565C0"]].forEach(
([x,y,w,h,c])=>s.addShape(pres.ShapeType.ellipse,{x,y,w,h,fill:{color:c},line:{color:c}}));
s.addText("✋ POSSESSIVE",{x:0.4,y:0.4,w:9.2,h:1.1,fontSize:50,bold:true,color:C.gold,align:"center"});
s.addText("PRONOUNS",{x:0.4,y:1.5,w:9.2,h:1.05,fontSize:50,bold:true,color:C.white,align:"center"});
s.addText("An ESL Lesson for Grade 3",{x:0.4,y:2.68,w:9.2,h:0.52,fontSize:21,color:"BBDEFB",align:"center",italic:true});
s.addText("Present Simple • Present Continuous",{x:0.4,y:3.28,w:9.2,h:0.44,fontSize:17,color:C.gold,align:"center"});
s.addShape(pres.ShapeType.rect,{x:2,y:3.82,w:6,h:0.07,fill:{color:C.gold},line:{color:C.gold}});
s.addText("Grade 3 • ESL English",{x:1,y:4.02,w:8,h:0.35,fontSize:14,color:"90CAF9",align:"center"});
}
// ── SLIDE 2: WHAT ARE POSSESSIVE PRONOUNS? ──────────────────────────────────
{
const s = pres.addSlide();
BG(s,"EDE7F6");
HDR(s,"💡 What Are Possessive Pronouns?",C.purple,C.white);
s.addText("A possessive pronoun shows who OWNS something.",
{x:0.4,y:1.12,w:9.2,h:0.46,fontSize:17,bold:true,color:C.dark});
const boxes=[
{bg:"E8F5E9",bc:"66BB6A",txt:"📚 They REPLACE a noun + owner\n 'Maria's book' → 'HER book'"},
{bg:"E3F2FD",bc:"42A5F5",txt:"🏠 They tell us WHO owns something\n 'This is OUR house.' (not your or his)"},
{bg:"FFF3E0",bc:"FFA726",txt:"🎯 They come BEFORE the noun\n 'My bag is blue.' 'Their cat is sleeping.'"},
];
boxes.forEach((b,i)=>{
const y=1.68+i*1.1;
s.addShape(pres.ShapeType.roundRect,{x:0.35,y,w:9.3,h:0.92,fill:{color:b.bg},line:{color:b.bc,pt:1.5},rectRadius:0.12});
s.addText(b.txt,{x:0.55,y:y+0.04,w:9,h:0.84,fontSize:13.5,color:C.dark,valign:"middle"});
});
FOOT(s);
}
// ── SLIDE 3: PRONOUNS TABLE ──────────────────────────────────────────────────
{
const s = pres.addSlide();
BG(s,C.sky);
HDR(s,"📋 Possessive Pronouns – English & Russian",C.navy,C.gold);
const cx=[0.28,1.12,2.38,3.72,5.55];
const cw=[0.82,1.24,1.32,1.81,4.18];
const hLbls=["Word","Russian (RU)","Person","Formula","Example Sentence"];
const hBg=["FFD600","1565C0","1565C0","1565C0","1565C0"];
const hTc=["0D1B4B","FFD600","FFD600","FFD600","FFD600"];
hLbls.forEach((l,ci)=>{
s.addShape(pres.ShapeType.rect,{x:cx[ci],y:1.1,w:cw[ci],h:0.34,fill:{color:hBg[ci]},line:{color:hBg[ci]}});
s.addText(l,{x:cx[ci],y:1.1,w:cw[ci],h:0.34,fontSize:10,bold:true,color:hTc[ci],align:"center",valign:"middle"});
});
const rows=[
["My", "Мой / Моя / Моё", "I (1st sg.)", "MY + noun", "My bag is red."],
["Your", "Твой / Ваш", "You (2nd)", "YOUR + noun", "Your book is here."],
["His", "Его", "He (3rd m.)", "HIS + noun", "His dog is big."],
["Her", "Её", "She (3rd f.)", "HER + noun", "Her dress is blue."],
["Its", "Его / Её", "It (3rd n.)", "ITS + noun", "Its tail is long."],
["Our", "Наш / Наша", "We (1st pl.)","OUR + noun", "Our class is fun."],
["Their","Их", "They (3rd pl.)","THEIR + noun", "Their house is big."],
];
const wc=["C62828","1565C0","2E7D32","AD1457","6A1B9A","00695C","E65100"];
rows.forEach((r,ri)=>{
const y=1.46+ri*0.52;
const rb=ri%2===0?"FFFFFF":"F0F4FF";
cx.forEach((x,ci)=>s.addShape(pres.ShapeType.rect,{x,y,w:cw[ci],h:0.5,fill:{color:rb},line:{color:"CCCCCC",pt:0.5}}));
s.addText(r[0],{x:cx[0]+0.03,y,w:cw[0]-0.06,h:0.5,fontSize:14,bold:true,color:wc[ri],valign:"middle",align:"center"});
s.addText(r[1],{x:cx[1]+0.03,y,w:cw[1]-0.06,h:0.5,fontSize:9, color:C.dark,valign:"middle"});
s.addText(r[2],{x:cx[2]+0.03,y,w:cw[2]-0.06,h:0.5,fontSize:8.5,color:"555555",valign:"middle"});
s.addText(r[3],{x:cx[3]+0.03,y,w:cw[3]-0.06,h:0.5,fontSize:9, bold:true,color:C.cobalt,valign:"middle"});
s.addText(r[4],{x:cx[4]+0.03,y,w:cw[4]-0.06,h:0.5,fontSize:10, color:C.dark,valign:"middle"});
});
FOOT(s);
}
// ── SLIDE 4: FORMULA 1 – PRESENT SIMPLE ────────────────────────────────────
{
const s = pres.addSlide();
BG(s,C.navy);
HDR(s,"📐 Formula 1 – Present Simple with Possessive Pronouns","FFB300",C.navy);
s.addShape(pres.ShapeType.roundRect,{x:0.4,y:1.12,w:9.2,h:0.82,fill:{color:"1565C0"},line:{color:C.gold,pt:2.5},rectRadius:0.15});
s.addText([
{text:"POSSESSIVE PRONOUN",options:{bold:true,color:C.gold,fontSize:15}},
{text:" + ",options:{color:C.white,fontSize:15}},
{text:"NOUN",options:{bold:true,color:"A5D6A7",fontSize:15}},
{text:" + ",options:{color:C.white,fontSize:15}},
{text:"VERB",options:{bold:true,color:"FFE082",fontSize:15}},
{text:" + REST OF SENTENCE",options:{color:C.white,fontSize:15}},
],{x:0.6,y:1.15,w:8.8,h:0.76,valign:"middle",align:"center"});
const ex=[
{pp:"My", n:"bag", v:"is", r:"red and small.", bg:"B71C1C"},
{pp:"Your", n:"book", v:"is", r:"on the desk.", bg:"1A237E"},
{pp:"His", n:"dog", v:"runs", r:"very fast.", bg:"1B5E20"},
{pp:"Her", n:"dress", v:"is", r:"beautiful.", bg:"880E4F"},
{pp:"Our", n:"school", v:"has", r:"a big playground.", bg:"004D40"},
{pp:"Their", n:"cat", v:"sleeps",r:"on the sofa.", bg:"E65100"},
];
ex.forEach((e,i)=>{
const col=i<3?0:1,row=i%3,x=0.35+col*4.88,y=2.08+row*1.1;
s.addShape(pres.ShapeType.roundRect,{x,y,w:4.72,h:0.9,fill:{color:e.bg},line:{color:"FFFFFF",pt:0.5},rectRadius:0.12});
s.addText([
{text:e.pp+" ",options:{bold:true,color:C.gold,fontSize:15}},
{text:e.n+" ",options:{bold:true,color:"A5D6A7",fontSize:15}},
{text:e.v+" ",options:{bold:true,color:"FFE082",fontSize:15}},
{text:e.r,options:{color:C.white,fontSize:13}},
],{x:x+0.14,y,w:4.44,h:0.9,valign:"middle"});
});
FOOT(s);
}
// ── SLIDE 5: FORMULA 2 – PRESENT CONTINUOUS ─────────────────────────────────
{
const s = pres.addSlide();
BG(s,"004D40");
HDR(s,"📐 Formula 2 – Present Continuous with Possessive Pronouns","00897B",C.gold);
s.addShape(pres.ShapeType.roundRect,{x:0.4,y:1.12,w:9.2,h:0.8,fill:{color:"00796B"},line:{color:C.gold,pt:2.5},rectRadius:0.15});
s.addText([
{text:"SUBJECT",options:{bold:true,color:"B2EBF2",fontSize:14}},
{text:" + ",options:{color:C.white,fontSize:14}},
{text:"am/is/are",options:{bold:true,color:C.gold,fontSize:14}},
{text:" + ",options:{color:C.white,fontSize:14}},
{text:"VERB-ing",options:{bold:true,color:"FFE082",fontSize:14}},
{text:" + ",options:{color:C.white,fontSize:14}},
{text:"POSSESSIVE PRONOUN",options:{bold:true,color:"F48FB1",fontSize:14}},
{text:" + ",options:{color:C.white,fontSize:14}},
{text:"NOUN",options:{bold:true,color:"A5D6A7",fontSize:14}},
],{x:0.6,y:1.15,w:8.8,h:0.74,valign:"middle",align:"center"});
s.addShape(pres.ShapeType.roundRect,{x:0.4,y:2.04,w:9.2,h:0.42,fill:{color:"00695C"},line:{color:"80CBC4",pt:1},rectRadius:0.08});
s.addText("I → am | He / She / It → is | You / We / They → are",
{x:0.6,y:2.06,w:8.8,h:0.38,fontSize:13,bold:true,color:"B2EBF2",align:"center",valign:"middle"});
const ex=[
{sub:"I", be:"am", v:"reading", pp:"my", n:"book.", bg:"00695C"},
{sub:"She", be:"is", v:"wearing", pp:"her", n:"coat.", bg:"880E4F"},
{sub:"They", be:"are", v:"cleaning",pp:"their",n:"room.", bg:"1A237E"},
{sub:"He", be:"is", v:"walking", pp:"his", n:"dog.", bg:"1B5E20"},
{sub:"We", be:"are", v:"doing", pp:"our", n:"homework.", bg:"4A148C"},
{sub:"You", be:"are", v:"holding", pp:"your", n:"pencil.", bg:"B71C1C"},
];
ex.forEach((e,i)=>{
const col=i<3?0:1,row=i%3,x=0.32+col*4.92,y=2.57+row*0.97;
s.addShape(pres.ShapeType.roundRect,{x,y,w:4.72,h:0.83,fill:{color:e.bg},line:{color:"FFFFFF",pt:0.5},rectRadius:0.1});
s.addText([
{text:e.sub+" ",options:{bold:true,color:"B2EBF2",fontSize:14}},
{text:e.be+" ",options:{bold:true,color:C.gold,fontSize:14}},
{text:e.v+" ",options:{bold:true,color:"FFE082",fontSize:14}},
{text:e.pp+" ",options:{bold:true,color:"F48FB1",fontSize:14}},
{text:e.n,options:{color:C.white,fontSize:13}},
],{x:x+0.12,y,w:4.48,h:0.83,valign:"middle"});
});
FOOT(s);
}
// ── SLIDE 6: FORMULA 3 – QUESTIONS ──────────────────────────────────────────
{
const s = pres.addSlide();
BG(s,"FFF8E1");
HDR(s,"📐 Formula 3 – Questions & Negative Sentences","FF6F00",C.white);
[
{bg:"FF6F00",bc:"FFF176",txt:"✅ POSITIVE: SUBJECT + VERB + POSSESSIVE PRONOUN + NOUN"},
{bg:"E65100",bc:"FFAB40",txt:"❌ NEGATIVE: SUBJECT + do not / does not + VERB + POSSESSIVE PRONOUN + NOUN"},
{bg:"00695C",bc:"80CBC4",txt:"❓ QUESTION: WHOSE + NOUN + is / are + this / that ?"},
].forEach((b,i)=>{
const y=1.12+i*0.88;
s.addShape(pres.ShapeType.roundRect,{x:0.4,y,w:9.2,h:0.72,fill:{color:b.bg},line:{color:b.bc,pt:2},rectRadius:0.12});
s.addText(b.txt,{x:0.6,y:y+0.02,w:8.8,h:0.68,fontSize:13,bold:true,color:C.white,valign:"middle"});
});
const exs=[
["I like my teacher.", "FFE082","1A237E"],
["She does not like her new bag.", "FFE082","880E4F"],
["Whose book is this? → It is his book.", "FFE082","1B5E20"],
["We love our school very much.", "FFE082","4A148C"],
];
exs.forEach(([txt,tc,bg],i)=>{
const x=i<2?0.35:5.1,y=3.82+(i%2)*1.02;
s.addShape(pres.ShapeType.roundRect,{x,y,w:4.6,h:0.82,fill:{color:bg},line:{color:"FFFFFF",pt:0.5},rectRadius:0.1});
s.addText(txt,{x:x+0.1,y,w:4.4,h:0.82,fontSize:12.5,color:tc,bold:true,valign:"middle",align:"center"});
});
FOOT(s);
}
// ── SLIDE 7: MY vs MINE bonus ────────────────────────────────────────────────
{
const s = pres.addSlide();
BG(s,"FCE4EC");
HDR(s,"💎 Adjective Form vs Pronoun Form (Bonus!)",C.rose,C.white);
s.addText("Adjective form comes BEFORE a noun. Pronoun form stands ALONE after a verb.",
{x:0.4,y:1.1,w:9.2,h:0.4,fontSize:13.5,bold:true,color:C.dark});
// column headers
["Adjective Form","Pronoun Form","Example – Adjective","Example – Pronoun"].forEach((h,ci)=>{
const xs=[0.28,2.08,3.88,6.6];
const ws=[1.78,1.78,2.68,3.08];
s.addShape(pres.ShapeType.rect,{x:xs[ci],y:1.56,w:ws[ci],h:0.34,fill:{color:C.rose},line:{color:C.rose}});
s.addText(h,{x:xs[ci],y:1.56,w:ws[ci],h:0.34,fontSize:9.5,bold:true,color:C.white,align:"center",valign:"middle"});
});
const rows2=[
["My","Mine","My bag is blue.","That bag is mine."],
["Your","Yours","Your pen is here.","This pen is yours."],
["His","His","His dog is big.","That dog is his."],
["Her","Hers","Her book is new.","This book is hers."],
["Our","Ours","Our class is fun.","This class is ours."],
["Their","Theirs","Their cat is orange.","That cat is theirs."],
];
const rb2=["FFCDD2","F8BBD9","E1BEE7","BBDEFB","C8E6C9","FFF9C4"];
rows2.forEach((r,ri)=>{
const y=1.92+ri*0.56;
const xs=[0.28,2.08,3.88,6.6];
const ws=[1.78,1.78,2.68,3.08];
xs.forEach((x,ci)=>s.addShape(pres.ShapeType.rect,{x,y,w:ws[ci],h:0.52,fill:{color:ri%2===0?"FFFFFF":rb2[ri]},line:{color:"DDDDDD",pt:0.5}}));
s.addText(r[0],{x:xs[0]+0.04,y,w:ws[0]-0.08,h:0.52,fontSize:14,bold:true,color:C.rose,align:"center",valign:"middle"});
s.addText(r[1],{x:xs[1]+0.04,y,w:ws[1]-0.08,h:0.52,fontSize:14,bold:true,color:C.purple,align:"center",valign:"middle"});
s.addText(r[2],{x:xs[2]+0.04,y,w:ws[2]-0.08,h:0.52,fontSize:11,color:C.dark,valign:"middle"});
s.addText(r[3],{x:xs[3]+0.04,y,w:ws[3]-0.08,h:0.52,fontSize:11,color:C.dark,valign:"middle"});
});
FOOT(s);
}
// ── CONVERSATION SLIDE HELPER ────────────────────────────────────────────────
const PAL=[
{bg:"E8F5E9",ban:"2E7D32"},
{bg:"E3F2FD",ban:"1565C0"},
{bg:"FFF8E1",ban:"FF6F00"},
];
function qSlide(pi,pairs){
const p=PAL[pi%3];
const s=pres.addSlide();
BG(s,p.bg);
s.addShape(pres.ShapeType.rect,{x:0,y:0,w:10,h:0.95,fill:{color:p.ban},line:{color:p.ban}});
s.addText(`💬 Conversation Questions (Q${pairs[0].n}–Q${pairs[pairs.length-1].n})`,
{x:0.25,y:0,w:9.5,h:0.95,fontSize:22,bold:true,color:C.white,valign:"middle"});
pairs.forEach((p2,i)=>{
const y=1.02+i*0.87;
s.addShape(pres.ShapeType.roundRect,{x:0.3,y,w:9.4,h:0.35,fill:{color:p.ban},line:{color:p.ban},rectRadius:0.08});
s.addText(`Q${p2.n}: ${p2.q}`,{x:0.45,y,w:9.1,h:0.35,fontSize:13,bold:true,color:C.white,valign:"middle"});
s.addShape(pres.ShapeType.roundRect,{x:0.3,y:y+0.37,w:9.4,h:0.37,fill:{color:"FFFFFF"},line:{color:p.ban,pt:1},rectRadius:0.08});
s.addText(`➤ ${p2.a}`,{x:0.45,y:y+0.37,w:9.1,h:0.37,fontSize:12,color:C.dark,valign:"middle"});
});
FOOT(s);
}
// ── SLIDES 8–10: Q1–Q15 ─────────────────────────────────────────────────────
qSlide(0,[
{n:1, q:"What colour is your favourite school bag?",
a:"My favourite school bag is dark blue. I carry it every day."},
{n:2, q:"Does she always bring her lunch to school?",
a:"Yes, she always brings her lunch. Her mother makes it every morning."},
{n:3, q:"Is this his pencil or your pencil?",
a:"That pencil is his. My pencil is the red one on the desk."},
{n:4, q:"What are their parents doing right now?",
a:"Their parents are cooking dinner. Their house smells very nice."},
{n:5, q:"Are you wearing your school uniform today?",
a:"Yes, I am wearing my school uniform. It is clean and tidy."},
]);
qSlide(1,[
{n:6, q:"Where is our classroom in the school?",
a:"Our classroom is on the second floor, next to the library."},
{n:7, q:"What colour is her favourite dress?",
a:"Her favourite dress is pink with small white flowers on it."},
{n:8, q:"Is the kitten drinking its milk right now?",
a:"Yes, the kitten is drinking its milk. It looks very happy."},
{n:9, q:"What do you keep inside your school bag?",
a:"I keep my books, my pencil box, and my water bottle in my bag."},
{n:10,q:"Are the children playing with their toys at home?",
a:"No, they are not playing. They are doing their homework right now."},
]);
qSlide(2,[
{n:11,q:"Whose book is lying on the teacher's table?",
a:"That book is mine. I always leave my book there in the morning."},
{n:12,q:"What sport does he play with his friends after school?",
a:"He plays football with his friends every afternoon in the park."},
{n:13,q:"Is she reading her favourite story book right now?",
a:"Yes, she is reading her favourite story book. It is very interesting."},
{n:14,q:"What is our homework assignment for today?",
a:"Our homework is to write five sentences using possessive pronouns."},
{n:15,q:"What are you learning in your English class today?",
a:"We are learning about possessive pronouns in our English class today."},
]);
// ── SLIDE 11: QUICK REVIEW ───────────────────────────────────────────────────
{
const s=pres.addSlide();
BG(s,C.navy);
s.addShape(pres.ShapeType.rect,{x:0,y:0,w:10,h:1.0,fill:{color:C.gold},line:{color:C.gold}});
s.addText("⭐ Quick Review – Possessive Pronouns",
{x:0.25,y:0,w:9.5,h:1.0,fontSize:28,bold:true,color:C.navy,valign:"middle"});
const rows=[
["MY", "Мой/Моя/Моё","I own it", "My + noun + verb", "My cat is cute."],
["YOUR", "Твой/Ваш", "You own it", "Your + noun + verb", "Your turn is next."],
["HIS", "Его", "He owns it", "His + noun + verb", "His bike is fast."],
["HER", "Её", "She owns it", "Her + noun + verb", "Her hat is big."],
["ITS", "Его/Её", "It owns it", "Its + noun + verb", "Its fur is soft."],
["OUR", "Наш/Наша", "We own it", "Our + noun + verb", "Our team wins."],
["THEIR", "Их", "They own it", "Their + noun + verb", "Their home is warm."],
];
const ppBg=["B71C1C","1A237E","1B5E20","880E4F","4A148C","004D40","E65100"];
rows.forEach((r,ri)=>{
const y=1.07+ri*0.62;
s.addShape(pres.ShapeType.roundRect,{x:0.28,y,w:1.02,h:0.54,fill:{color:ppBg[ri]},line:{color:"FFFFFF",pt:0.5},rectRadius:0.08});
s.addText(r[0],{x:0.28,y,w:1.02,h:0.54,fontSize:13,bold:true,color:C.gold,align:"center",valign:"middle"});
[[1.32,1.38,"B2EBF2"],[2.72,1.52,"A5D6A7"],[4.26,2.52,"FFE082"],[6.8,3.0,C.white]].forEach(([x,w,tc],ci)=>{
s.addShape(pres.ShapeType.rect,{x,y,w,h:0.54,fill:{color:"0D47A1"},line:{color:"CCCCCC",pt:0.3}});
s.addText(r[ci+1],{x:x+0.04,y,w:w-0.08,h:0.54,fontSize:9.5,color:tc,valign:"middle"});
});
});
FOOT(s);
}
// ── SLIDE 12: WELL DONE ──────────────────────────────────────────────────────
{
const s=pres.addSlide();
BG(s,C.navy);
[[3.0,0.0,4.0,4.0,"1565C0"],[0.5,3.5,2.5,2.5,"0D47A1"],[7.0,3.2,3.0,3.0,"1565C0"]].forEach(
([x,y,w,h,c])=>s.addShape(pres.ShapeType.ellipse,{x,y,w,h,fill:{color:c},line:{color:c}}));
s.addText("🎉",{x:3.0,y:0.1,w:4.0,h:4.0,fontSize:80,align:"center",valign:"middle"});
s.addText("Well Done!",{x:0.5,y:3.75,w:9,h:0.95,fontSize:48,bold:true,color:C.gold,align:"center"});
s.addText("You know your possessive pronouns now!",
{x:0.5,y:4.68,w:9,h:0.42,fontSize:18,color:C.white,align:"center",italic:true});
}
// ── WRITE FILE ───────────────────────────────────────────────────────────────
pres.writeFile({fileName:"/home/daytona/workspace/possessive-ppt/Possessive_Pronouns_ESL_Grade3.pptx"})
.then(()=>console.log("DONE")).catch(e=>console.error("ERR",e));
cd /home/daytona/workspace/possessive-ppt && node build.js 2>&1
cp /home/daytona/workspace/possessive-ppt/Possessive_Pronouns_ESL_Grade3.pptx /tmp/pp.pptx && \ libreoffice --headless --convert-to pdf /tmp/pp.pptx --outdir /tmp/ 2>&1 && \ mkdir -p /home/daytona/workspace/possessive-ppt/slides && \ pdftoppm -r 160 -jpeg /tmp/pp.pdf /tmp/ppslide && \ cp /tmp/ppslide*.jpg /home/daytona/workspace/possessive-ppt/slides/ && \ cp /tmp/pp.pdf /home/daytona/workspace/possessive-ppt/Possessive_Pronouns_ESL_Grade3.pdf && \ echo "ALL DONE" && ls -lh /home/daytona/workspace/possessive-ppt/slides/
| # | Slide | Colour Theme |
|---|---|---|
| 1 | ✋ POSSESSIVE PRONOUNS – Title | Deep Blue + Gold |
| 2 | 💡 What Are Possessive Pronouns? | Purple + 3 concept boxes |
| 3 | 📋 Full Table: English + Russian + Formula + Example | Navy Blue |
| 4 | 📐 Formula 1 – Present Simple | Gold + 6 colourful example boxes |
| 5 | 📐 Formula 2 – Present Continuous | Dark Green |
| 6 | 📐 Formula 3 – Questions & Negatives | Orange + Teal |
| 7 | 💎 Adjective Form vs Pronoun Form (My/Mine etc.) | Rose/Pink |
| 8 | 💬 Questions Q1–Q5 + Answers | Green |
| 9 | 💬 Questions Q6–Q10 + Answers | Blue |
| 10 | 💬 Questions Q11–Q15 + Answers | Orange |
| 11 | ⭐ Quick Review Table (all 7 pronouns) | Gold + Navy |
| 12 | 🎉 Well Done! Closing slide | Deep Blue + Gold |
Retry I am waiting