Vocational education simple with images

Asking for Preferences

What format would you like for 'Vocational Education - Simple with Images'? · Who is the target audience?

Reading File
Searching the Web

vocational education types examples students simple explanation

Reading File
Now I have enough to build a visually rich, student-friendly PPTX. Let me create it.
Running Command

ls /home/daytona/workspace/ 2>/dev/null && mkdir -p /home/daytona/workspace/vocational-edu-pptx

Writing File

~/vocational-edu-pptx/create_pptx.js

const pptxgen = require("pptxgenjs");
const { execSync } = require("child_process");

const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Vocational Education";
pres.author = "Orris";

// ── COLOR PALETTE ──────────────────────────────────────────────
const C = {
  navy:    "1A2E4A",   // deep navy – primary bg for title/closing
  orange:  "F4883B",   // warm orange – accent / headers
  white:   "FFFFFF",
  light:   "F5F7FA",   // very light grey for content slide bg
  mid:     "E8ECF1",   // card backgrounds
  dark:    "2C3E50",   // body text
  green:   "27AE60",
  blue:    "2980B9",
  red:     "E74C3C",
  purple:  "8E44AD",
  teal:    "16A085",
  gold:    "F39C12",
};

// ── IMAGE URLS ─────────────────────────────────────────────────
const imgUrls = [
  "https://images.unsplash.com/photo-1581091226825-a6a2a5aee158?w=600&q=80",  // tech/laptop student
  "https://images.unsplash.com/photo-1504307651254-35680f356dfd?w=600&q=80",  // construction worker
  "https://images.unsplash.com/photo-1559839734-2b71ea197ec2?w=600&q=80",    // nurse / health
  "https://images.unsplash.com/photo-1556909114-44e3e9399a2b?w=600&q=80",    // chef / culinary
  "https://images.unsplash.com/photo-1581092580497-e0d23cbdf1dc?w=600&q=80", // auto/mechanic
  "https://images.unsplash.com/photo-1498049794561-7780e7231661?w=600&q=80", // IT / coding
];

let imgs;
try {
  const raw = execSync(
    `node /home/daytona/skills/shared/scripts/fetch_images.js ${imgUrls.map(u => `"${u}"`).join(" ")}`,
    { maxBuffer: 50 * 1024 * 1024 }
  ).toString();
  imgs = JSON.parse(raw);
} catch(e) {
  imgs = imgUrls.map(() => ({ base64: null, error: "fetch failed" }));
}

// Helper: add image or coloured placeholder
function safeImg(slide, idx, opts) {
  const img = imgs[idx];
  if (img && img.base64 && !img.error) {
    slide.addImage({ data: img.base64, ...opts });
  } else {
    // coloured placeholder box
    slide.addShape(pres.ShapeType.rect, {
      x: opts.x, y: opts.y, w: opts.w, h: opts.h,
      fill: { color: C.mid }, line: { color: C.navy, width: 1 }
    });
    slide.addText("📷", {
      x: opts.x, y: opts.y, w: opts.w, h: opts.h,
      fontSize: 32, align: "center", valign: "middle"
    });
  }
}

// helper: section label pill
function pill(slide, text, x, y, color) {
  slide.addShape(pres.ShapeType.roundRect, {
    x, y, w: 2.4, h: 0.38,
    fill: { color }, line: { color, width: 0 },
    rectRadius: 0.18
  });
  slide.addText(text, {
    x, y, w: 2.4, h: 0.38,
    fontSize: 12, color: C.white, bold: true,
    align: "center", valign: "middle", margin: 0
  });
}

// ══════════════════════════════════════════════════════════════
// SLIDE 1 — TITLE
// ══════════════════════════════════════════════════════════════
{
  const sl = pres.addSlide();
  sl.background = { color: C.navy };

  // Orange accent bar left
  sl.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: C.orange }, line: { color: C.orange }
  });

  // Main title
  sl.addText("Vocational\nEducation", {
    x: 0.45, y: 1.0, w: 5.5, h: 2.2,
    fontSize: 54, bold: true, color: C.white,
    fontFace: "Calibri", align: "left", valign: "middle"
  });

  // Subtitle
  sl.addText("Learning skills for real careers", {
    x: 0.45, y: 3.3, w: 5.5, h: 0.6,
    fontSize: 22, color: C.orange, align: "left"
  });

  // Tagline
  sl.addText("A simple guide for students", {
    x: 0.45, y: 3.95, w: 5.5, h: 0.4,
    fontSize: 16, color: "AABBCC", align: "left"
  });

  // Right side image (tech student)
  safeImg(sl, 0, { x: 5.9, y: 0.4, w: 3.9, h: 4.8, sizing: { type: "cover", w: 3.9, h: 4.8 } });

  // Gradient overlay on image
  sl.addShape(pres.ShapeType.rect, {
    x: 5.9, y: 0.4, w: 0.6, h: 4.8,
    fill: { type: "solid", color: C.navy, alpha: 60 },
    line: { color: C.navy, width: 0 }
  });

  // Bottom bar
  sl.addShape(pres.ShapeType.rect, {
    x: 0, y: 5.25, w: 10, h: 0.375,
    fill: { color: C.orange }, line: { color: C.orange }
  });
}

// ══════════════════════════════════════════════════════════════
// SLIDE 2 — WHAT IS VOCATIONAL EDUCATION?
// ══════════════════════════════════════════════════════════════
{
  const sl = pres.addSlide();
  sl.background = { color: C.light };

  // Header band
  sl.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 10, h: 1.1,
    fill: { color: C.navy }, line: { color: C.navy }
  });
  sl.addText("What is Vocational Education?", {
    x: 0.4, y: 0, w: 9, h: 1.1,
    fontSize: 28, bold: true, color: C.white, align: "left", valign: "middle"
  });
  sl.addShape(pres.ShapeType.rect, {
    x: 0, y: 1.1, w: 10, h: 0.07,
    fill: { color: C.orange }, line: { color: C.orange }
  });

  // Definition card
  sl.addShape(pres.ShapeType.roundRect, {
    x: 0.4, y: 1.35, w: 5.6, h: 1.55,
    fill: { color: C.white }, line: { color: C.orange, width: 2 },
    rectRadius: 0.12
  });
  sl.addText([
    { text: "📚  Definition\n", options: { bold: true, color: C.orange, fontSize: 15, breakLine: false } },
    { text: "Vocational education teaches practical skills for specific jobs and careers — such as plumbing, nursing, cooking, IT, and construction. It focuses on ", options: { color: C.dark, fontSize: 13.5 } },
    { text: "doing", options: { bold: true, color: C.navy, fontSize: 13.5 } },
    { text: ", not just knowing.", options: { color: C.dark, fontSize: 13.5 } },
  ], {
    x: 0.55, y: 1.45, w: 5.3, h: 1.35,
    align: "left", valign: "top"
  });

  // Also known as card
  sl.addShape(pres.ShapeType.roundRect, {
    x: 0.4, y: 3.05, w: 5.6, h: 1.0,
    fill: { color: "FFF3E8" }, line: { color: C.orange, width: 1.5 },
    rectRadius: 0.12
  });
  sl.addText([
    { text: "Also called: ", options: { bold: true, color: C.orange, fontSize: 13.5 } },
    { text: "CTE (Career & Technical Education), TVET, Trade School, or Tech College", options: { color: C.dark, fontSize: 13.5 } },
  ], {
    x: 0.55, y: 3.1, w: 5.3, h: 0.9, align: "left", valign: "middle"
  });

  // vs Academic box
  sl.addShape(pres.ShapeType.roundRect, {
    x: 6.3, y: 1.35, w: 3.3, h: 2.7,
    fill: { color: C.navy }, line: { color: C.navy },
    rectRadius: 0.15
  });
  sl.addText("Vocational vs Academic", {
    x: 6.35, y: 1.45, w: 3.2, h: 0.4,
    fontSize: 13, bold: true, color: C.orange, align: "center"
  });

  const vsRows = [
    ["📘 Academic", "📧 Vocational"],
    ["Theory-based", "Skills-based"],
    ["Degrees (BA, BSc)", "Certificates/Diplomas"],
    ["4+ years", "Months – 2 years"],
    ["University", "Trade/Tech school"],
  ];
  vsRows.forEach(([left, right], i) => {
    const yy = 1.92 + i * 0.38;
    sl.addShape(pres.ShapeType.rect, {
      x: 6.35, y: yy, w: 1.5, h: 0.34,
      fill: { color: i === 0 ? C.blue : "1E3A5F" }, line: { color: C.navy }
    });
    sl.addShape(pres.ShapeType.rect, {
      x: 7.9, y: yy, w: 1.6, h: 0.34,
      fill: { color: i === 0 ? C.orange : "2A4A2A" }, line: { color: C.navy }
    });
    sl.addText(left, {
      x: 6.35, y: yy, w: 1.5, h: 0.34,
      fontSize: 10, color: C.white, align: "center", valign: "middle"
    });
    sl.addText(right, {
      x: 7.9, y: yy, w: 1.6, h: 0.34,
      fontSize: 10, color: C.white, align: "center", valign: "middle"
    });
  });

  // Bottom label
  sl.addShape(pres.ShapeType.rect, {
    x: 0, y: 5.25, w: 10, h: 0.375,
    fill: { color: C.orange }, line: { color: C.orange }
  });
  sl.addText("Vocational Education — For Students", {
    x: 0, y: 5.25, w: 10, h: 0.375,
    fontSize: 11, color: C.white, align: "center", valign: "middle"
  });
}

// ══════════════════════════════════════════════════════════════
// SLIDE 3 — 6 FIELDS (image cards)
// ══════════════════════════════════════════════════════════════
{
  const sl = pres.addSlide();
  sl.background = { color: C.light };

  sl.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 10, h: 1.0,
    fill: { color: C.navy }, line: { color: C.navy }
  });
  sl.addText("6 Popular Vocational Fields", {
    x: 0.4, y: 0, w: 9, h: 1.0,
    fontSize: 28, bold: true, color: C.white, align: "left", valign: "middle"
  });
  sl.addShape(pres.ShapeType.rect, {
    x: 0, y: 1.0, w: 10, h: 0.07,
    fill: { color: C.orange }, line: { color: C.orange }
  });

  const fields = [
    { label: "🏗️ Construction", sub: "Build homes, roads & buildings", imgIdx: 1, color: C.orange },
    { label: "🏥 Healthcare",   sub: "Nursing, care assistants, pharmacy", imgIdx: 2, color: C.teal },
    { label: "🍳 Culinary Arts", sub: "Cooking, baking, hospitality", imgIdx: 3, color: C.green },
    { label: "🔧 Auto Mechanics", sub: "Fix & maintain vehicles", imgIdx: 4, color: C.red },
    { label: "💻 Information Tech", sub: "Coding, networking, cybersecurity", imgIdx: 5, color: C.blue },
    { label: "✂️ Cosmetology", sub: "Hair, beauty & skincare", imgIdx: 0, color: C.purple },
  ];

  const cols = [0.25, 3.55, 6.85];
  const rows = [1.2, 3.3];

  fields.forEach((f, i) => {
    const col = cols[i % 3];
    const row = rows[Math.floor(i / 3)];
    const cardW = 3.0;
    const cardH = 1.9;

    // Card base
    sl.addShape(pres.ShapeType.roundRect, {
      x: col, y: row, w: cardW, h: cardH,
      fill: { color: C.white }, line: { color: f.color, width: 2 },
      rectRadius: 0.12
    });

    // Color header strip
    sl.addShape(pres.ShapeType.rect, {
      x: col, y: row, w: cardW, h: 0.42,
      fill: { color: f.color }, line: { color: f.color }
    });

    sl.addText(f.label, {
      x: col + 0.08, y: row, w: cardW - 0.16, h: 0.42,
      fontSize: 13, bold: true, color: C.white,
      align: "center", valign: "middle"
    });

    // Small image
    safeImg(sl, f.imgIdx, {
      x: col + 0.08, y: row + 0.48, w: 1.2, h: 1.15,
      sizing: { type: "cover", w: 1.2, h: 1.15 }
    });

    // Sub-text
    sl.addText(f.sub, {
      x: col + 1.35, y: row + 0.55, w: 1.55, h: 1.0,
      fontSize: 11.5, color: C.dark, align: "left", valign: "middle"
    });
  });

  sl.addShape(pres.ShapeType.rect, {
    x: 0, y: 5.25, w: 10, h: 0.375,
    fill: { color: C.orange }, line: { color: C.orange }
  });
  sl.addText("Vocational Education — For Students", {
    x: 0, y: 5.25, w: 10, h: 0.375,
    fontSize: 11, color: C.white, align: "center", valign: "middle"
  });
}

// ══════════════════════════════════════════════════════════════
// SLIDE 4 — HOW VOCATIONAL LEARNING WORKS (process)
// ══════════════════════════════════════════════════════════════
{
  const sl = pres.addSlide();
  sl.background = { color: C.light };

  sl.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 10, h: 1.0,
    fill: { color: C.navy }, line: { color: C.navy }
  });
  sl.addText("How Vocational Learning Works", {
    x: 0.4, y: 0, w: 9, h: 1.0,
    fontSize: 28, bold: true, color: C.white, align: "left", valign: "middle"
  });
  sl.addShape(pres.ShapeType.rect, {
    x: 0, y: 1.0, w: 10, h: 0.07,
    fill: { color: C.orange }, line: { color: C.orange }
  });

  const steps = [
    { num: "1", title: "Choose a Trade", desc: "Pick a field you love — tech, health, cooking, art...", icon: "🎯", color: C.blue },
    { num: "2", title: "Hands-On Training", desc: "Practice real tasks in workshops & labs, not just classrooms", icon: "🛠️", color: C.orange },
    { num: "3", title: "Work Placement", desc: "Do an internship or apprenticeship at a real workplace", icon: "🏢", color: C.green },
    { num: "4", title: "Earn a Certificate", desc: "Graduate with a diploma or certificate employers value", icon: "🎓", color: C.purple },
  ];

  steps.forEach((s, i) => {
    const x = 0.35 + i * 2.38;
    const y = 1.3;

    // Arrow connector (skip for first)
    if (i > 0) {
      sl.addShape(pres.ShapeType.rect, {
        x: x - 0.33, y: y + 0.95, w: 0.26, h: 0.1,
        fill: { color: C.orange }, line: { color: C.orange }
      });
      sl.addText("→", {
        x: x - 0.36, y: y + 0.78, w: 0.3, h: 0.4,
        fontSize: 18, color: C.orange, align: "center"
      });
    }

    // Circle number
    sl.addShape(pres.ShapeType.ellipse, {
      x: x + 0.55, y: y, w: 0.9, h: 0.9,
      fill: { color: s.color }, line: { color: s.color }
    });
    sl.addText(s.num, {
      x: x + 0.55, y: y, w: 0.9, h: 0.9,
      fontSize: 26, bold: true, color: C.white, align: "center", valign: "middle"
    });

    // Icon
    sl.addText(s.icon, {
      x: x + 0.4, y: y + 1.0, w: 1.2, h: 0.7,
      fontSize: 30, align: "center"
    });

    // Title
    sl.addText(s.title, {
      x: x, y: y + 1.7, w: 2.0, h: 0.45,
      fontSize: 14, bold: true, color: s.color, align: "center"
    });

    // Description
    sl.addText(s.desc, {
      x: x, y: y + 2.15, w: 2.0, h: 1.0,
      fontSize: 11.5, color: C.dark, align: "center", valign: "top"
    });
  });

  sl.addShape(pres.ShapeType.rect, {
    x: 0, y: 5.25, w: 10, h: 0.375,
    fill: { color: C.orange }, line: { color: C.orange }
  });
  sl.addText("Vocational Education — For Students", {
    x: 0, y: 5.25, w: 10, h: 0.375,
    fontSize: 11, color: C.white, align: "center", valign: "middle"
  });
}

// ══════════════════════════════════════════════════════════════
// SLIDE 5 — BENEFITS (icon grid)
// ══════════════════════════════════════════════════════════════
{
  const sl = pres.addSlide();
  sl.background = { color: C.light };

  sl.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 10, h: 1.0,
    fill: { color: C.navy }, line: { color: C.navy }
  });
  sl.addText("Why Choose Vocational Education?", {
    x: 0.4, y: 0, w: 9, h: 1.0,
    fontSize: 28, bold: true, color: C.white, align: "left", valign: "middle"
  });
  sl.addShape(pres.ShapeType.rect, {
    x: 0, y: 1.0, w: 10, h: 0.07,
    fill: { color: C.orange }, line: { color: C.orange }
  });

  const benefits = [
    { icon: "⚡", title: "Faster to Graduate", desc: "Complete in months or 1–2 years", color: C.orange },
    { icon: "💰", title: "Lower Cost", desc: "Cheaper than a 4-year university degree", color: C.green },
    { icon: "🤝", title: "Job-Ready Skills", desc: "Employers value practical, real-world training", color: C.blue },
    { icon: "📈", title: "High Demand Jobs", desc: "Skilled trades are always in demand", color: C.purple },
    { icon: "🛠️", title: "Hands-On Learning", desc: "Learn by doing, not just reading textbooks", color: C.red },
    { icon: "🌍", title: "Work Anywhere", desc: "Skills travel with you across countries", color: C.teal },
  ];

  const cols2 = [0.3, 3.55, 6.8];
  const rows2 = [1.25, 3.35];

  benefits.forEach((b, i) => {
    const cx = cols2[i % 3];
    const cy = rows2[Math.floor(i / 3)];

    sl.addShape(pres.ShapeType.roundRect, {
      x: cx, y: cy, w: 2.95, h: 1.75,
      fill: { color: C.white }, line: { color: b.color, width: 2 },
      rectRadius: 0.12
    });
    // Left colour stripe
    sl.addShape(pres.ShapeType.rect, {
      x: cx, y: cy, w: 0.2, h: 1.75,
      fill: { color: b.color }, line: { color: b.color }
    });

    sl.addText(b.icon, {
      x: cx + 0.28, y: cy + 0.1, w: 0.7, h: 0.7,
      fontSize: 28, align: "center"
    });

    sl.addText(b.title, {
      x: cx + 1.02, y: cy + 0.15, w: 1.8, h: 0.45,
      fontSize: 13.5, bold: true, color: b.color, align: "left"
    });

    sl.addText(b.desc, {
      x: cx + 0.28, y: cy + 0.88, w: 2.55, h: 0.75,
      fontSize: 11.5, color: C.dark, align: "left", valign: "top"
    });
  });

  sl.addShape(pres.ShapeType.rect, {
    x: 0, y: 5.25, w: 10, h: 0.375,
    fill: { color: C.orange }, line: { color: C.orange }
  });
  sl.addText("Vocational Education — For Students", {
    x: 0, y: 5.25, w: 10, h: 0.375,
    fontSize: 11, color: C.white, align: "center", valign: "middle"
  });
}

// ══════════════════════════════════════════════════════════════
// SLIDE 6 — REAL CAREER EXAMPLES (table)
// ══════════════════════════════════════════════════════════════
{
  const sl = pres.addSlide();
  sl.background = { color: C.light };

  sl.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 10, h: 1.0,
    fill: { color: C.navy }, line: { color: C.navy }
  });
  sl.addText("Real Career Examples", {
    x: 0.4, y: 0, w: 9, h: 1.0,
    fontSize: 28, bold: true, color: C.white, align: "left", valign: "middle"
  });
  sl.addShape(pres.ShapeType.rect, {
    x: 0, y: 1.0, w: 10, h: 0.07,
    fill: { color: C.orange }, line: { color: C.orange }
  });

  // Table header
  const headers = ["Field", "Possible Job", "Training Time", "Average Salary"];
  const colW = [2.2, 2.5, 2.2, 2.6];
  let xOff = 0.25;
  headers.forEach((h, i) => {
    sl.addShape(pres.ShapeType.rect, {
      x: xOff, y: 1.2, w: colW[i], h: 0.45,
      fill: { color: C.navy }, line: { color: C.white, width: 0.5 }
    });
    sl.addText(h, {
      x: xOff, y: 1.2, w: colW[i], h: 0.45,
      fontSize: 12.5, bold: true, color: C.orange,
      align: "center", valign: "middle"
    });
    xOff += colW[i];
  });

  const rows3 = [
    ["🏥 Healthcare",     "Nurse / EMT",         "1–2 years",  "$45,000–$70,000"],
    ["💻 IT / Coding",    "Web Developer",       "6–12 months","$60,000–$90,000"],
    ["🍳 Culinary Arts",  "Chef / Baker",        "1–2 years",  "$35,000–$60,000"],
    ["🔧 Mechanics",      "Auto Technician",     "6–18 months","$40,000–$65,000"],
    ["🏗️ Construction",   "Electrician / Plumber","2–4 years", "$50,000–$85,000"],
  ];

  rows3.forEach((row, ri) => {
    let x2 = 0.25;
    const rowBg = ri % 2 === 0 ? C.white : C.mid;
    row.forEach((cell, ci) => {
      sl.addShape(pres.ShapeType.rect, {
        x: x2, y: 1.65 + ri * 0.62, w: colW[ci], h: 0.58,
        fill: { color: rowBg }, line: { color: C.mid, width: 0.5 }
      });
      sl.addText(cell, {
        x: x2 + 0.04, y: 1.65 + ri * 0.62, w: colW[ci] - 0.08, h: 0.58,
        fontSize: 12, color: C.dark, align: ci === 0 ? "left" : "center", valign: "middle"
      });
      x2 += colW[ci];
    });
  });

  sl.addShape(pres.ShapeType.rect, {
    x: 0, y: 5.25, w: 10, h: 0.375,
    fill: { color: C.orange }, line: { color: C.orange }
  });
  sl.addText("Vocational Education — For Students", {
    x: 0, y: 5.25, w: 10, h: 0.375,
    fontSize: 11, color: C.white, align: "center", valign: "middle"
  });
}

// ══════════════════════════════════════════════════════════════
// SLIDE 7 — CLOSING / CALL TO ACTION
// ══════════════════════════════════════════════════════════════
{
  const sl = pres.addSlide();
  sl.background = { color: C.navy };

  // Right side big image
  safeImg(sl, 1, { x: 5.5, y: 0, w: 4.5, h: 5.625, sizing: { type: "cover", w: 4.5, h: 5.625 } });
  // Dark overlay
  sl.addShape(pres.ShapeType.rect, {
    x: 5.5, y: 0, w: 4.5, h: 5.625,
    fill: { color: "000000" }, line: { color: "000000" }
  });
  // (opacity workaround: set low)

  sl.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: C.orange }, line: { color: C.orange }
  });

  sl.addText("Your Future\nStarts Here!", {
    x: 0.45, y: 0.7, w: 5.0, h: 2.0,
    fontSize: 46, bold: true, color: C.white, align: "left"
  });

  sl.addText("Vocational education gives you:", {
    x: 0.45, y: 2.8, w: 5.0, h: 0.5,
    fontSize: 16, color: C.orange, bold: true, align: "left"
  });

  const bullets = [
    "✅  Real skills for real jobs",
    "✅  Shorter, affordable training",
    "✅  Confidence to work anywhere",
  ];
  bullets.forEach((b, i) => {
    sl.addText(b, {
      x: 0.5, y: 3.35 + i * 0.42, w: 4.8, h: 0.4,
      fontSize: 14, color: C.white, align: "left"
    });
  });

  sl.addShape(pres.ShapeType.roundRect, {
    x: 0.45, y: 4.75, w: 3.0, h: 0.5,
    fill: { color: C.orange }, line: { color: C.orange }, rectRadius: 0.22
  });
  sl.addText("Explore Your Options Today!", {
    x: 0.45, y: 4.75, w: 3.0, h: 0.5,
    fontSize: 13, bold: true, color: C.white, align: "center", valign: "middle"
  });
}

// ── SAVE ──────────────────────────────────────────────────────
const outPath = "/home/daytona/workspace/vocational-edu-pptx/Vocational_Education.pptx";
pres.writeFile({ fileName: outPath }).then(() => {
  console.log("✅ DONE:", outPath);
}).catch(err => {
  console.error("❌ Error:", err);
  process.exit(1);
});
Running Command

cd /home/daytona/workspace/vocational-edu-pptx && node create_pptx.js

The image fetching is timing out. Let me remove the image fetching and use emoji/shapes as visual elements instead so it's fast and reliable.
Writing File

~/vocational-edu-pptx/create_pptx.js

const pptxgen = require("pptxgenjs");

const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Vocational Education";
pres.author = "Orris";

// ── COLOR PALETTE ──────────────────────────────────────────────
const C = {
  navy:   "1A2E4A",
  orange: "F4883B",
  white:  "FFFFFF",
  light:  "F5F7FA",
  mid:    "E0E8F0",
  dark:   "2C3E50",
  green:  "27AE60",
  blue:   "2980B9",
  red:    "E74C3C",
  purple: "8E44AD",
  teal:   "16A085",
  gold:   "F39C12",
};

// Helpers
function headerBand(sl, title) {
  sl.addShape(pres.ShapeType.rect, {
    x:0, y:0, w:10, h:1.05, fill:{color:C.navy}, line:{color:C.navy}
  });
  sl.addText(title, {
    x:0.45, y:0, w:9.1, h:1.05,
    fontSize:27, bold:true, color:C.white, align:"left", valign:"middle"
  });
  sl.addShape(pres.ShapeType.rect, {
    x:0, y:1.05, w:10, h:0.07, fill:{color:C.orange}, line:{color:C.orange}
  });
}
function footerBar(sl) {
  sl.addShape(pres.ShapeType.rect, {
    x:0, y:5.25, w:10, h:0.375, fill:{color:C.orange}, line:{color:C.orange}
  });
  sl.addText("Vocational Education — For Students", {
    x:0, y:5.25, w:10, h:0.375,
    fontSize:11, color:C.white, align:"center", valign:"middle"
  });
}
function card(sl, x, y, w, h, borderColor) {
  sl.addShape(pres.ShapeType.roundRect, {
    x,y,w,h, fill:{color:C.white}, line:{color:borderColor, width:2}, rectRadius:0.12
  });
}
function colorCircle(sl, x, y, r, color) {
  sl.addShape(pres.ShapeType.ellipse, {
    x, y, w:r, h:r, fill:{color}, line:{color}
  });
}

// ══════════════════════════════════════════════════════════════
// SLIDE 1 — TITLE
// ══════════════════════════════════════════════════════════════
{
  const sl = pres.addSlide();
  sl.background = { color: C.navy };

  // Left accent bar
  sl.addShape(pres.ShapeType.rect, {x:0, y:0, w:0.2, h:5.625, fill:{color:C.orange}, line:{color:C.orange}});

  // Decorative circles (visual interest)
  colorCircle(sl, 7.2, 0.2, 1.5, "1E3A5F");
  colorCircle(sl, 8.3, 1.3, 2.0, "162840");
  colorCircle(sl, 6.8, 2.8, 1.2, "1E3A5F");

  // Big emoji icons floating right
  const icons = ["🔧","💻","🏥","🍳","🏗️","✂️"];
  const positions = [[7.0,0.3],[8.5,0.9],[7.6,1.8],[8.2,2.8],[7.1,3.5],[8.6,4.0]];
  icons.forEach((icon, i) => {
    sl.addText(icon, {
      x:positions[i][0], y:positions[i][1], w:1.0, h:0.8,
      fontSize:32, align:"center"
    });
  });

  // Title
  sl.addText("Vocational\nEducation", {
    x:0.45, y:0.9, w:6.0, h:2.3,
    fontSize:56, bold:true, color:C.white, fontFace:"Calibri",
    align:"left", valign:"middle"
  });

  // Subtitle
  sl.addText("Learning skills for real careers", {
    x:0.45, y:3.3, w:6.0, h:0.6,
    fontSize:22, color:C.orange, align:"left"
  });

  sl.addText("A simple guide for students", {
    x:0.45, y:3.95, w:5.5, h:0.4,
    fontSize:16, color:"AABBCC", align:"left"
  });

  // Bottom orange bar
  sl.addShape(pres.ShapeType.rect, {x:0, y:5.25, w:10, h:0.375, fill:{color:C.orange}, line:{color:C.orange}});
}

// ══════════════════════════════════════════════════════════════
// SLIDE 2 — WHAT IS VOCATIONAL EDUCATION?
// ══════════════════════════════════════════════════════════════
{
  const sl = pres.addSlide();
  sl.background = { color: C.light };
  headerBand(sl, "What is Vocational Education?");

  // Big icon left
  sl.addShape(pres.ShapeType.ellipse, {
    x:0.3, y:1.3, w:2.4, h:2.4, fill:{color:C.navy}, line:{color:C.navy}
  });
  sl.addText("🎓", { x:0.3, y:1.3, w:2.4, h:2.4, fontSize:60, align:"center", valign:"middle" });

  // Definition box
  card(sl, 3.0, 1.3, 6.5, 1.6, C.orange);
  sl.addShape(pres.ShapeType.rect, {x:3.0, y:1.3, w:6.5, h:0.42, fill:{color:C.orange}, line:{color:C.orange}});
  sl.addText("📚  Definition", {x:3.1, y:1.3, w:6.3, h:0.42, fontSize:14, bold:true, color:C.white, align:"left", valign:"middle"});
  sl.addText(
    "Vocational education teaches practical skills for specific jobs and careers.\nIt is focused on doing, not just knowing. Examples: nursing, coding, cooking, plumbing, auto repair.",
    {x:3.15, y:1.78, w:6.2, h:1.0, fontSize:13, color:C.dark, align:"left", valign:"top"}
  );

  // Also known as
  card(sl, 3.0, 3.08, 6.5, 0.85, C.gold);
  sl.addText([
    {text:"Also called: ", options:{bold:true, color:C.gold, fontSize:13}},
    {text:"CTE · TVET · Trade School · Technical College · Polytechnic", options:{color:C.dark, fontSize:13}},
  ], {x:3.1, y:3.1, w:6.3, h:0.8, align:"left", valign:"middle"});

  // Two comparison boxes
  card(sl, 0.3, 4.05, 4.5, 1.0, C.blue);
  sl.addShape(pres.ShapeType.rect, {x:0.3, y:4.05, w:4.5, h:0.38, fill:{color:C.blue}, line:{color:C.blue}});
  sl.addText("📘 Academic Education", {x:0.4, y:4.05, w:4.3, h:0.38, fontSize:13, bold:true, color:C.white, valign:"middle"});
  sl.addText("Theory-based • 4+ years • University degree", {x:0.4, y:4.48, w:4.3, h:0.5, fontSize:12, color:C.dark, valign:"middle"});

  card(sl, 5.05, 4.05, 4.5, 1.0, C.green);
  sl.addShape(pres.ShapeType.rect, {x:5.05, y:4.05, w:4.5, h:0.38, fill:{color:C.green}, line:{color:C.green}});
  sl.addText("🛠️ Vocational Education", {x:5.15, y:4.05, w:4.3, h:0.38, fontSize:13, bold:true, color:C.white, valign:"middle"});
  sl.addText("Skills-based • Months–2 years • Certificate/Diploma", {x:5.15, y:4.48, w:4.3, h:0.5, fontSize:12, color:C.dark, valign:"middle"});

  footerBar(sl);
}

// ══════════════════════════════════════════════════════════════
// SLIDE 3 — 6 POPULAR FIELDS
// ══════════════════════════════════════════════════════════════
{
  const sl = pres.addSlide();
  sl.background = { color: C.light };
  headerBand(sl, "6 Popular Vocational Fields");

  const fields = [
    { icon:"🏗️", label:"Construction",    sub:"Build homes, roads\n& bridges",       color:C.orange },
    { icon:"🏥", label:"Healthcare",       sub:"Nursing, pharmacy\n& patient care",   color:C.teal  },
    { icon:"🍳", label:"Culinary Arts",    sub:"Cooking, baking\n& hospitality",      color:C.green },
    { icon:"🔧", label:"Auto Mechanics",   sub:"Fix & maintain\nvehicles",            color:C.red   },
    { icon:"💻", label:"Information Tech", sub:"Coding, networks\n& cybersecurity",   color:C.blue  },
    { icon:"✂️", label:"Cosmetology",      sub:"Hair, beauty\n& skincare",            color:C.purple},
  ];

  const cols = [0.3, 3.5, 6.7];
  const rows = [1.22, 3.3];

  fields.forEach((f, i) => {
    const cx = cols[i % 3];
    const cy = rows[Math.floor(i / 3)];
    const cw = 3.0, ch = 1.85;

    // Card
    sl.addShape(pres.ShapeType.roundRect, {
      x:cx, y:cy, w:cw, h:ch, fill:{color:C.white}, line:{color:f.color, width:2.5}, rectRadius:0.14
    });
    // Colour header
    sl.addShape(pres.ShapeType.rect, {x:cx, y:cy, w:cw, h:0.5, fill:{color:f.color}, line:{color:f.color}});
    sl.addText(f.label, {
      x:cx+0.08, y:cy, w:cw-0.16, h:0.5,
      fontSize:14, bold:true, color:C.white, align:"center", valign:"middle"
    });
    // Big emoji
    sl.addText(f.icon, {
      x:cx+0.1, y:cy+0.55, w:1.1, h:1.1, fontSize:40, align:"center"
    });
    // Description
    sl.addText(f.sub, {
      x:cx+1.2, y:cy+0.58, w:1.7, h:1.1,
      fontSize:12, color:C.dark, align:"left", valign:"middle"
    });
  });

  footerBar(sl);
}

// ══════════════════════════════════════════════════════════════
// SLIDE 4 — HOW IT WORKS (4 steps)
// ══════════════════════════════════════════════════════════════
{
  const sl = pres.addSlide();
  sl.background = { color: C.light };
  headerBand(sl, "How Vocational Learning Works");

  const steps = [
    { num:"1", icon:"🎯", title:"Choose a Trade",    desc:"Pick a field you love:\ntech, health, cooking, art…", color:C.blue   },
    { num:"2", icon:"🛠️", title:"Hands-On Training", desc:"Practice in workshops,\nlabs & real simulations",    color:C.orange },
    { num:"3", icon:"🏢", title:"Work Placement",    desc:"Apprenticeship at a\nreal workplace",                color:C.green  },
    { num:"4", icon:"🎓", title:"Get Certified",     desc:"Earn a diploma or\ncertificate employers value",     color:C.purple },
  ];

  steps.forEach((s, i) => {
    const x = 0.35 + i * 2.38;

    // Arrow between cards
    if (i > 0) {
      sl.addText("➜", {
        x: x - 0.42, y: 2.2, w: 0.35, h: 0.5,
        fontSize:20, color:C.orange, align:"center"
      });
    }

    // Numbered circle
    colorCircle(sl, x + 0.55, 1.15, 0.95, s.color);
    sl.addText(s.num, {
      x:x+0.55, y:1.15, w:0.95, h:0.95,
      fontSize:28, bold:true, color:C.white, align:"center", valign:"middle"
    });

    // Icon
    sl.addText(s.icon, {x:x+0.45, y:2.18, w:1.1, h:0.75, fontSize:34, align:"center"});

    // Title
    sl.addText(s.title, {
      x:x+0.0, y:2.97, w:2.1, h:0.45,
      fontSize:14, bold:true, color:s.color, align:"center"
    });

    // Description
    sl.addText(s.desc, {
      x:x, y:3.45, w:2.1, h:0.95,
      fontSize:11.5, color:C.dark, align:"center", valign:"top"
    });
  });

  // Dotted line connector across step circles
  sl.addShape(pres.ShapeType.line, {
    x:1.05, y:1.63, w:7.35, h:0,
    line:{color:C.mid, width:2, dashType:"dash"}
  });

  footerBar(sl);
}

// ══════════════════════════════════════════════════════════════
// SLIDE 5 — BENEFITS (6 cards)
// ══════════════════════════════════════════════════════════════
{
  const sl = pres.addSlide();
  sl.background = { color: C.light };
  headerBand(sl, "Why Choose Vocational Education?");

  const benefits = [
    { icon:"⚡", title:"Faster to Finish", desc:"Complete in months\nor just 1–2 years",    color:C.orange },
    { icon:"💰", title:"Lower Cost",       desc:"Cheaper than a 4-year\nuniversity degree",  color:C.green  },
    { icon:"🤝", title:"Job-Ready",        desc:"Employers value\nreal, practical skills",   color:C.blue   },
    { icon:"📈", title:"High Demand",      desc:"Skilled trades are\nalways in demand",       color:C.purple },
    { icon:"🛠️", title:"Learn by Doing",  desc:"Workshops, not just\ntextbooks & lectures",  color:C.red    },
    { icon:"🌍", title:"Work Anywhere",    desc:"Your skills travel\nwith you globally",      color:C.teal   },
  ];

  const cols2 = [0.3, 3.55, 6.8];
  const rows2 = [1.2, 3.32];

  benefits.forEach((b, i) => {
    const cx = cols2[i % 3];
    const cy = rows2[Math.floor(i / 3)];
    const cw = 2.95, ch = 1.78;

    sl.addShape(pres.ShapeType.roundRect, {
      x:cx, y:cy, w:cw, h:ch, fill:{color:C.white}, line:{color:b.color, width:2}, rectRadius:0.12
    });
    // Left color stripe
    sl.addShape(pres.ShapeType.rect, {x:cx, y:cy, w:0.22, h:ch, fill:{color:b.color}, line:{color:b.color}});

    // Icon circle
    colorCircle(sl, cx+0.35, cy+0.38, 0.82, b.color);
    sl.addText(b.icon, {
      x:cx+0.35, y:cy+0.38, w:0.82, h:0.82, fontSize:26, align:"center", valign:"middle"
    });

    sl.addText(b.title, {
      x:cx+1.28, y:cy+0.22, w:1.55, h:0.48,
      fontSize:14, bold:true, color:b.color, align:"left"
    });
    sl.addText(b.desc, {
      x:cx+1.28, y:cy+0.72, w:1.55, h:0.85,
      fontSize:12, color:C.dark, align:"left", valign:"top"
    });
  });

  footerBar(sl);
}

// ══════════════════════════════════════════════════════════════
// SLIDE 6 — CAREER EXAMPLES TABLE
// ══════════════════════════════════════════════════════════════
{
  const sl = pres.addSlide();
  sl.background = { color: C.light };
  headerBand(sl, "Real Career Examples");

  const headers = ["Field", "Job Role", "Training Time", "Avg. Salary (USD)"];
  const colW = [2.3, 2.5, 2.2, 2.5];
  let xOff = 0.25;
  headers.forEach((h, i) => {
    sl.addShape(pres.ShapeType.rect, {
      x:xOff, y:1.22, w:colW[i], h:0.5, fill:{color:C.navy}, line:{color:C.white, width:0.5}
    });
    sl.addText(h, {
      x:xOff, y:1.22, w:colW[i], h:0.5,
      fontSize:13, bold:true, color:C.orange, align:"center", valign:"middle"
    });
    xOff += colW[i];
  });

  const tableRows = [
    ["🏥 Healthcare",      "Nurse / EMT",          "1–2 years",   "$45,000–$70,000"],
    ["💻 IT & Coding",     "Web / App Developer",  "6–12 months", "$60,000–$90,000"],
    ["🍳 Culinary Arts",   "Chef / Pastry Cook",   "1–2 years",   "$35,000–$60,000"],
    ["🔧 Auto Mechanics",  "Auto Technician",      "6–18 months", "$40,000–$65,000"],
    ["🏗️ Construction",    "Electrician / Plumber","2–4 years",   "$50,000–$85,000"],
  ];

  tableRows.forEach((row, ri) => {
    let x2 = 0.25;
    const rowBg = ri % 2 === 0 ? C.white : C.mid;
    row.forEach((cell, ci) => {
      sl.addShape(pres.ShapeType.rect, {
        x:x2, y:1.72 + ri*0.62, w:colW[ci], h:0.58,
        fill:{color:rowBg}, line:{color:C.mid, width:0.5}
      });
      sl.addText(cell, {
        x:x2+0.05, y:1.72+ri*0.62, w:colW[ci]-0.1, h:0.58,
        fontSize:12, color:C.dark, align:ci===0?"left":"center", valign:"middle"
      });
      x2 += colW[ci];
    });
  });

  // Side note
  sl.addShape(pres.ShapeType.roundRect, {
    x:0.25, y:4.85, w:9.5, h:0.32, fill:{color:"FFF3E8"}, line:{color:C.orange, width:1}, rectRadius:0.1
  });
  sl.addText("* Salaries vary by country, experience, and employer. Training times may differ by programme.", {
    x:0.35, y:4.85, w:9.2, h:0.32, fontSize:10, color:C.orange, align:"left", valign:"middle"
  });

  footerBar(sl);
}

// ══════════════════════════════════════════════════════════════
// SLIDE 7 — CLOSING / CALL TO ACTION
// ══════════════════════════════════════════════════════════════
{
  const sl = pres.addSlide();
  sl.background = { color: C.navy };

  // Left bar
  sl.addShape(pres.ShapeType.rect, {x:0, y:0, w:0.2, h:5.625, fill:{color:C.orange}, line:{color:C.orange}});

  // Background decorative shapes
  colorCircle(sl, 6.5, -0.3, 3.5, "1E3A5F");
  colorCircle(sl, 8.0, 2.5, 2.5, "162840");

  // Floating trade icons in right area
  const tradeIcons = [["🔧",7.1,0.4],["💻",8.5,1.0],["🏥",7.6,1.95],["🍳",8.3,3.1],["🏗️",7.0,3.7],["✂️",8.6,4.4]];
  tradeIcons.forEach(([ic, x, y]) => {
    sl.addText(ic, {x, y, w:1.0, h:0.8, fontSize:30, align:"center"});
  });

  // Main text
  sl.addText("Your Future\nStarts Here! 🚀", {
    x:0.45, y:0.65, w:6.0, h:2.1,
    fontSize:48, bold:true, color:C.white, fontFace:"Calibri", align:"left"
  });

  sl.addText("Vocational education gives you:", {
    x:0.45, y:2.9, w:5.5, h:0.5,
    fontSize:17, color:C.orange, bold:true, align:"left"
  });

  const bullets = [
    "✅  Real skills for real jobs",
    "✅  Shorter, affordable training",
    "✅  Confidence to work anywhere in the world",
  ];
  bullets.forEach((b, i) => {
    sl.addText(b, {
      x:0.5, y:3.45+i*0.42, w:5.8, h:0.4,
      fontSize:14.5, color:C.white, align:"left"
    });
  });

  // CTA button shape
  sl.addShape(pres.ShapeType.roundRect, {
    x:0.45, y:4.78, w:3.4, h:0.5,
    fill:{color:C.orange}, line:{color:C.orange}, rectRadius:0.22
  });
  sl.addText("Explore Vocational Courses Today!", {
    x:0.45, y:4.78, w:3.4, h:0.5,
    fontSize:13, bold:true, color:C.white, align:"center", valign:"middle"
  });
}

// ── SAVE ──────────────────────────────────────────────────────
const outPath = "/home/daytona/workspace/vocational-edu-pptx/Vocational_Education.pptx";
pres.writeFile({ fileName: outPath }).then(() => {
  console.log("DONE:", outPath);
}).catch(err => {
  console.error("Error:", err);
  process.exit(1);
});
Editing File

~/vocational-edu-pptx/create_pptx.js

Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/vocational-edu-pptx/create_pptx.js'
I need to completely replace the file. Let me use execute to overwrite it directly:
Running Command

cat > /home/daytona/workspace/vocational-edu-pptx/create_pptx.js << 'JSEOF' const pptxgen = require("pptxgenjs"); const pres = new pptxgen(); pres.layout = "LAYOUT_16x9"; pres.title = "Vocational Education"; pres.author = "Orris"; const C = { navy:"1A2E4A", orange:"F4883B", white:"FFFFFF", light:"F5F7FA", mid:"E0E8F0", dark:"2C3E50", green:"27AE60", blue:"2980B9", red:"E74C3C", purple:"8E44AD", teal:"16A085", gold:"F39C12" }; function headerBand(sl, title) { sl.addShape(pres.ShapeType.rect, {x:0,y:0,w:10,h:1.05,fill:{color:C.navy},line:{color:C.navy}}); sl.addText(title, {x:0.45,y:0,w:9.1,h:1.05,fontSize:27,bold:true,color:C.white,align:"left",valign:"middle"}); sl.addShape(pres.ShapeType.rect, {x:0,y:1.05,w:10,h:0.07,fill:{color:C.orange},line:{color:C.orange}}); } function footerBar(sl) { sl.addShape(pres.ShapeType.rect, {x:0,y:5.25,w:10,h:0.375,fill:{color:C.orange},line:{color:C.orange}}); sl.addText("Vocational Education — For Students", {x:0,y:5.25,w:10,h:0.375,fontSize:11,color:C.white,align:"center",valign:"middle"}); } function circle(sl, x, y, r, color) { sl.addShape(pres.ShapeType.ellipse, {x,y,w:r,h:r,fill:{color},line:{color}}); } // SLIDE 1 — TITLE { const sl = pres.addSlide(); sl.background = {color:C.navy}; sl.addShape(pres.ShapeType.rect, {x:0,y:0,w:0.2,h:5.625,fill:{color:C.orange},line:{color:C.orange}}); circle(sl, 7.2, 0.2, 1.5, "1E3A5F"); circle(sl, 8.3, 1.3, 2.0, "162840"); circle(sl, 6.8, 2.8, 1.2, "1E3A5F"); const icons = ["🔧","💻","🏥","🍳","🏗️","✂️"]; const pos = [[7.0,0.3],[8.5,0.9],[7.6,1.8],[8.2,2.8],[7.1,3.5],[8.6,4.0]]; icons.forEach((ic,i)=>sl.addText(ic,{x:pos[i][0],y:pos[i][1],w:1.0,h:0.8,fontSize:32,align:"center"})); sl.addText("Vocational\nEducation",{x:0.45,y:0.9,w:6.0,h:2.3,fontSize:56,bold:true,color:C.white,fontFace:"Calibri",align:"left",valign:"middle"}); sl.addText("Learning skills for real careers",{x:0.45,y:3.3,w:6.0,h:0.6,fontSize:22,color:C.orange,align:"left"}); sl.addText("A simple guide for students",{x:0.45,y:3.95,w:5.5,h:0.4,fontSize:16,color:"AABBCC",align:"left"}); sl.addShape(pres.ShapeType.rect, {x:0,y:5.25,w:10,h:0.375,fill:{color:C.orange},line:{color:C.orange}}); } // SLIDE 2 — WHAT IS VOCATIONAL EDUCATION? { const sl = pres.addSlide(); sl.background = {color:C.light}; headerBand(sl, "What is Vocational Education?"); circle(sl, 0.3, 1.3, 2.4, C.navy); sl.addText("🎓",{x:0.3,y:1.3,w:2.4,h:2.4,fontSize:60,align:"center",valign:"middle"}); sl.addShape(pres.ShapeType.roundRect,{x:3.0,y:1.3,w:6.5,h:1.6,fill:{color:C.white},line:{color:C.orange,width:2},rectRadius:0.12}); sl.addShape(pres.ShapeType.rect,{x:3.0,y:1.3,w:6.5,h:0.42,fill:{color:C.orange},line:{color:C.orange}}); sl.addText("📚 Definition",{x:3.1,y:1.3,w:6.3,h:0.42,fontSize:14,bold:true,color:C.white,align:"left",valign:"middle"}); sl.addText("Vocational education teaches practical skills for specific jobs and careers.\nIt is focused on doing, not just knowing. Examples: nursing, coding, cooking, plumbing, auto repair.",{x:3.15,y:1.78,w:6.2,h:1.0,fontSize:13,color:C.dark,align:"left",valign:"top"}); sl.addShape(pres.ShapeType.roundRect,{x:3.0,y:3.08,w:6.5,h:0.85,fill:{color:"FFF3E8"},line:{color:C.gold,width:1.5},rectRadius:0.12}); sl.addText([{text:"Also called: ",options:{bold:true,color:C.gold,fontSize:13}},{text:"CTE · TVET · Trade School · Technical College · Polytechnic",options:{color:C.dark,fontSize:13}}],{x:3.1,y:3.1,w:6.3,h:0.8,align:"left",valign:"middle"}); sl.addShape(pres.ShapeType.roundRect,{x:0.3,y:4.05,w:4.5,h:1.0,fill:{color:C.white},line:{color:C.blue,width:2},rectRadius:0.12}); sl.addShape(pres.ShapeType.rect,{x:0.3,y:4.05,w:4.5,h:0.38,fill:{color:C.blue},line:{color:C.blue}}); sl.addText("📘 Academic Education",{x:0.4,y:4.05,w:4.3,h:0.38,fontSize:13,bold:true,color:C.white,valign:"middle"}); sl.addText("Theory-based • 4+ years • University degree",{x:0.4,y:4.48,w:4.3,h:0.5,fontSize:12,color:C.dark,valign:"middle"}); sl.addShape(pres.ShapeType.roundRect,{x:5.05,y:4.05,w:4.5,h:1.0,fill:{color:C.white},line:{color:C.green,width:2},rectRadius:0.12}); sl.addShape(pres.ShapeType.rect,{x:5.05,y:4.05,w:4.5,h:0.38,fill:{color:C.green},line:{color:C.green}}); sl.addText("🛠️ Vocational Education",{x:5.15,y:4.05,w:4.3,h:0.38,fontSize:13,bold:true,color:C.white,valign:"middle"}); sl.addText("Skills-based • Months–2 years • Certificate/Diploma",{x:5.15,y:4.48,w:4.3,h:0.5,fontSize:12,color:C.dark,valign:"middle"}); footerBar(sl); } // SLIDE 3 — 6 POPULAR FIELDS { const sl = pres.addSlide(); sl.background = {color:C.light}; headerBand(sl, "6 Popular Vocational Fields"); const fields=[ {icon:"🏗️",label:"Construction",sub:"Build homes, roads\n& bridges",color:C.orange}, {icon:"🏥",label:"Healthcare",sub:"Nursing, pharmacy\n& patient care",color:C.teal}, {icon:"🍳",label:"Culinary Arts",sub:"Cooking, baking\n& hospitality",color:C.green}, {icon:"🔧",label:"Auto Mechanics",sub:"Fix & maintain\nvehicles",color:C.red}, {icon:"💻",label:"Information Tech",sub:"Coding, networks\n& cybersecurity",color:C.blue}, {icon:"✂️",label:"Cosmetology",sub:"Hair, beauty\n& skincare",color:C.purple} ]; const cols=[0.3,3.5,6.7], rows=[1.22,3.3]; fields.forEach((f,i)=>{ const cx=cols[i%3], cy=rows[Math.floor(i/3)]; sl.addShape(pres.ShapeType.roundRect,{x:cx,y:cy,w:3.0,h:1.85,fill:{color:C.white},line:{color:f.color,width:2.5},rectRadius:0.14}); sl.addShape(pres.ShapeType.rect,{x:cx,y:cy,w:3.0,h:0.5,fill:{color:f.color},line:{color:f.color}}); sl.addText(f.label,{x:cx+0.08,y:cy,w:2.84,h:0.5,fontSize:14,bold:true,color:C.white,align:"center",valign:"middle"}); sl.addText(f.icon,{x:cx+0.1,y:cy+0.55,w:1.1,h:1.1,fontSize:40,align:"center"}); sl.addText(f.sub,{x:cx+1.2,y:cy+0.58,w:1.7,h:1.1,fontSize:12,color:C.dark,align:"left",valign:"middle"}); }); footerBar(sl); } // SLIDE 4 — HOW IT WORKS { const sl = pres.addSlide(); sl.background = {color:C.light}; headerBand(sl, "How Vocational Learning Works"); const steps=[ {num:"1",icon:"🎯",title:"Choose a Trade",desc:"Pick a field you love:\ntech, health, cooking, art…",color:C.blue}, {num:"2",icon:"🛠️",title:"Hands-On Training",desc:"Practice in workshops,\nlabs & real simulations",color:C.orange}, {num:"3",icon:"🏢",title:"Work Placement",desc:"Apprenticeship at\na real workplace",color:C.green}, {num:"4",icon:"🎓",title:"Get Certified",desc:"Earn a diploma or\ncertificate employers value",color:C.purple} ]; sl.addShape(pres.ShapeType.line,{x:1.05,y:1.63,w:7.35,h:0,line:{color:C.mid,width:2,dashType:"dash"}}); steps.forEach((s,i)=>{ const x=0.35+i*2.38; if(i>0) sl.addText("➜",{x:x-0.42,y:2.18,w:0.35,h:0.5,fontSize:20,color:C.orange,align:"center"}); circle(sl, x+0.55, 1.15, 0.95, s.color); sl.addText(s.num,{x:x+0.55,y:1.15,w:0.95,h:0.95,fontSize:28,bold:true,color:C.white,align:"center",valign:"middle"}); sl.addText(s.icon,{x:x+0.45,y:2.18,w:1.1,h:0.75,fontSize:34,align:"center"}); sl.addText(s.title,{x:x,y:2.97,w:2.1,h:0.45,fontSize:14,bold:true,color:s.color,align:"center"}); sl.addText(s.desc,{x:x,y:3.45,w:2.1,h:0.95,fontSize:11.5,color:C.dark,align:"center",valign:"top"}); }); footerBar(sl); } // SLIDE 5 — BENEFITS { const sl = pres.addSlide(); sl.background = {color:C.light}; headerBand(sl, "Why Choose Vocational Education?"); const benefits=[ {icon:"⚡",title:"Faster to Finish",desc:"Complete in months\nor just 1–2 years",color:C.orange}, {icon:"💰",title:"Lower Cost",desc:"Cheaper than a 4-year\nuniversity degree",color:C.green}, {icon:"🤝",title:"Job-Ready",desc:"Employers value\nreal, practical skills",color:C.blue}, {icon:"📈",title:"High Demand",desc:"Skilled trades are\nalways in demand",color:C.purple}, {icon:"🛠️",title:"Learn by Doing",desc:"Workshops, not just\ntextbooks & lectures",color:C.red}, {icon:"🌍",title:"Work Anywhere",desc:"Your skills travel\nwith you globally",color:C.teal} ]; const cols2=[0.3,3.55,6.8], rows2=[1.2,3.32]; benefits.forEach((b,i)=>{ const cx=cols2[i%3], cy=rows2[Math.floor(i/3)]; sl.addShape(pres.ShapeType.roundRect,{x:cx,y:cy,w:2.95,h:1.78,fill:{color:C.white},line:{color:b.color,width:2},rectRadius:0.12}); sl.addShape(pres.ShapeType.rect,{x:cx,y:cy,w:0.22,h:1.78,fill:{color:b.color},line:{color:b.color}}); circle(sl, cx+0.35, cy+0.38, 0.82, b.color); sl.addText(b.icon,{x:cx+0.35,y:cy+0.38,w:0.82,h:0.82,fontSize:26,align:"center",valign:"middle"}); sl.addText(b.title,{x:cx+1.28,y:cy+0.22,w:1.55,h:0.48,fontSize:14,bold:true,color:b.color,align:"left"}); sl.addText(b.desc,{x:cx+1.28,y:cy+0.72,w:1.55,h:0.85,fontSize:12,color:C.dark,align:"left",valign:"top"}); }); footerBar(sl); } // SLIDE 6 — CAREER EXAMPLES TABLE { const sl = pres.addSlide(); sl.background = {color:C.light}; headerBand(sl, "Real Career Examples"); const headers=["Field","Job Role","Training Time","Avg. Salary (USD)"]; const colW=[2.3,2.5,2.2,2.5]; let xOff=0.25; headers.forEach((h,i)=>{ sl.addShape(pres.ShapeType.rect,{x:xOff,y:1.22,w:colW[i],h:0.5,fill:{color:C.navy},line:{color:C.white,width:0.5}}); sl.addText(h,{x:xOff,y:1.22,w:colW[i],h:0.5,fontSize:13,bold:true,color:C.orange,align:"center",valign:"middle"}); xOff+=colW[i]; }); const tableRows=[ ["🏥 Healthcare","Nurse / EMT","1–2 years","$45,000–$70,000"], ["💻 IT & Coding","Web / App Developer","6–12 months","$60,000–$90,000"], ["🍳 Culinary Arts","Chef / Pastry Cook","1–2 years","$35,000–$60,000"], ["🔧 Auto Mechanics","Auto Technician","6–18 months","$40,000–$65,000"], ["🏗️ Construction","Electrician / Plumber","2–4 years","$50,000–$85,000"] ]; tableRows.forEach((row,ri)=>{ let x2=0.25; const rowBg=ri%2===0?C.white:C.mid; row.forEach((cell,ci)=>{ sl.addShape(pres.ShapeType.rect,{x:x2,y:1.72+ri*0.62,w:colW[ci],h:0.58,fill:{color:rowBg},line:{color:C.mid,width:0.5}}); sl.addText(cell,{x:x2+0.05,y:1.72+ri*0.62,w:colW[ci]-0.1,h:0.58,fontSize:12,color:C.dark,align:ci===0?"left":"center",valign:"middle"}); x2+=colW[ci]; }); }); sl.addShape(pres.ShapeType.roundRect,{x:0.25,y:4.85,w:9.5,h:0.32,fill:{color:"FFF3E8"},line:{color:C.orange,width:1},rectRadius:0.1}); sl.addText("* Salaries vary by country, experience, and employer. Training times may differ by programme.",{x:0.35,y:4.85,w:9.2,h:0.32,fontSize:10,color:C.orange,align:"left",valign:"middle"}); footerBar(sl); } // SLIDE 7 — CLOSING { const sl = pres.addSlide(); sl.background = {color:C.navy}; sl.addShape(pres.ShapeType.rect,{x:0,y:0,w:0.2,h:5.625,fill:{color:C.orange},line:{color:C.orange}}); circle(sl, 6.5, -0.3, 3.5, "1E3A5F"); circle(sl, 8.0, 2.5, 2.5, "162840"); const tIcons=[["🔧",7.1,0.4],["💻",8.5,1.0],["🏥",7.6,1.95],["🍳",8.3,3.1],["🏗️",7.0,3.7],["✂️",8.6,4.4]]; tIcons.forEach(([ic,x,y])=>sl.addText(ic,{x,y,w:1.0,h:0.8,fontSize:30,align:"center"})); sl.addText("Your Future\nStarts Here! 🚀",{x:0.45,y:0.65,w:6.0,h:2.1,fontSize:48,bold:true,color:C.white,fontFace:"Calibri",align:"left"}); sl.addText("Vocational education gives you:",{x:0.45,y:2.9,w:5.5,h:0.5,fontSize:17,color:C.orange,bold:true,align:"left"}); ["✅ Real skills for real jobs","✅ Shorter, affordable training","✅ Confidence to work anywhere in the world"].forEach((b,i)=>{ sl.addText(b,{x:0.5,y:3.45+i*0.42,w:5.8,h:0.4,fontSize:14.5,color:C.white,align:"left"}); }); sl.addShape(pres.ShapeType.roundRect,{x:0.45,y:4.78,w:3.5,h:0.5,fill:{color:C.orange},line:{color:C.orange},rectRadius:0.22}); sl.addText("Explore Vocational Courses Today!",{x:0.45,y:4.78,w:3.5,h:0.5,fontSize:13,bold:true,color:C.white,align:"center",valign:"middle"}); } const outPath="/home/daytona/workspace/vocational-edu-pptx/Vocational_Education.pptx"; pres.writeFile({fileName:outPath}).then(()=>console.log("DONE:",outPath)).catch(err=>{console.error(err);process.exit(1);}); JSEOF echo "Script written"

Running Command

node /home/daytona/workspace/vocational-edu-pptx/create_pptx.js

Your presentation is ready! Here's your download link:

Vocational Education

Presentation · PPTX


What's inside (7 slides, school-student friendly):
SlideContent
1Title slide - Bold navy + orange design with floating trade emojis
2What is Vocational Education? - Definition, "Also called" box, comparison vs Academic
36 Popular Fields - Cards for Construction, Healthcare, Culinary, Auto Mechanics, IT, Cosmetology
4How It Works - 4-step process: Choose → Train → Work Placement → Get Certified
5Why Choose It? - 6 benefit cards: faster, cheaper, job-ready, high demand, hands-on, global
6Real Career Examples - Table with job roles, training times & salary ranges
7Closing slide - "Your Future Starts Here!" with call-to-action button
Design: Navy + orange color palette, large emoji icons as visuals, colored cards and shapes throughout - clean and engaging for school-level students.

For intermediate students based in telangana syllabus

Searching the Web

Telangana intermediate syllabus vocational education courses TSBIE 2024

Searching the Web

Telangana Board Intermediate vocational courses list BPC MPC CEC subjects

Reading Web Page

https://scert.telangana.gov.in/pdf/publication/others/6%20-%…

I now have all the information needed. Let me build the Telangana-specific PPTX covering:
  • TSBIE Intermediate structure (MPC, BiPC, CEC, MEC)
  • Vocational courses offered (Agriculture, Commerce, Engineering, IT, Healthcare, etc.)
  • Career paths, EAMCET, degree options
Let me create the revised presentation now.
Running Command

mkdir -p /home/daytona/workspace/telangana-voc-pptx && cat > /home/daytona/workspace/telangana-voc-pptx/make.js << 'JSEOF' const pptxgen = require("pptxgenjs"); const pres = new pptxgen(); pres.layout = "LAYOUT_16x9"; pres.title = "Vocational Education – Telangana Intermediate"; // ── PALETTE ────────────────────────────────────────────────── const C = { maroon: "7B1D2E", // Telangana state colour gold: "F5A623", // accent white: "FFFFFF", light: "FDF6F0", mid: "EEE5DB", dark: "2C2C2C", green: "1E7E34", blue: "1A5276", teal: "117A65", purple: "6C3483", red: "C0392B", sky: "2471A3", orange: "D35400", }; function hdr(sl, title, sub) { sl.addShape(pres.ShapeType.rect, {x:0,y:0,w:10,h:1.1,fill:{color:C.maroon},line:{color:C.maroon}}); sl.addText(title, {x:0.45,y:0,w:9.1,h:sub?0.65:1.1,fontSize:26,bold:true,color:C.white,align:"left",valign:"middle"}); if(sub) sl.addText(sub,{x:0.45,y:0.65,w:9.1,h:0.45,fontSize:13,color:C.gold,align:"left",valign:"middle"}); sl.addShape(pres.ShapeType.rect,{x:0,y:1.1,w:10,h:0.07,fill:{color:C.gold},line:{color:C.gold}}); } function ftr(sl, txt) { sl.addShape(pres.ShapeType.rect,{x:0,y:5.25,w:10,h:0.375,fill:{color:C.maroon},line:{color:C.maroon}}); sl.addText(txt||"Vocational Education — Telangana Intermediate (TSBIE)",{x:0,y:5.25,w:10,h:0.375,fontSize:10.5,color:C.white,align:"center",valign:"middle"}); } function pill(sl, text, x, y, color) { sl.addShape(pres.ShapeType.roundRect,{x,y,w:2.1,h:0.38,fill:{color},line:{color},rectRadius:0.18}); sl.addText(text,{x,y,w:2.1,h:0.38,fontSize:11,bold:true,color:C.white,align:"center",valign:"middle",margin:0}); } function circ(sl,x,y,r,color){sl.addShape(pres.ShapeType.ellipse,{x,y,w:r,h:r,fill:{color},line:{color}});} function rCard(sl,x,y,w,h,fillColor,borderColor){ sl.addShape(pres.ShapeType.roundRect,{x,y,w,h,fill:{color:fillColor||C.white},line:{color:borderColor||C.gold,width:2},rectRadius:0.13}); } // ════════════════════════════════════════════════════════════ // SLIDE 1 – TITLE // ════════════════════════════════════════════════════════════ { const sl = pres.addSlide(); sl.background = {color:C.maroon}; // Decorative gold circles circ(sl,6.8,-0.5,3.5,"8B2234"); circ(sl,8.5,2.0,2.8,"6A1728"); circ(sl,7.2,4.0,1.5,"8B2234"); // Gold left bar sl.addShape(pres.ShapeType.rect,{x:0,y:0,w:0.22,h:5.625,fill:{color:C.gold},line:{color:C.gold}}); // Floating emojis [["🎓",7.0,0.3],["📐",8.6,0.8],["💊",7.5,1.8],["🌾",8.3,2.7],["💻",7.2,3.6],["🔧",8.7,4.2]].forEach(([ic,x,y])=>{ sl.addText(ic,{x,y,w:1.0,h:0.8,fontSize:30,align:"center"}); }); // Title sl.addText("Vocational\nEducation",{x:0.45,y:0.7,w:6.2,h:2.0,fontSize:52,bold:true,color:C.white,fontFace:"Calibri",align:"left"}); sl.addText("Telangana Intermediate (TSBIE)",{x:0.45,y:2.8,w:6.2,h:0.55,fontSize:20,color:C.gold,bold:true,align:"left"}); sl.addText("Class 11 & 12 • State Institute of Vocational Education",{x:0.45,y:3.4,w:6.2,h:0.45,fontSize:14,color:"FFDDAA",align:"left"}); sl.addText("Learn a skill. Build a career.",{x:0.45,y:3.92,w:6.2,h:0.4,fontSize:15,color:"FFD580",italic:true,align:"left"}); sl.addShape(pres.ShapeType.rect,{x:0,y:5.25,w:10,h:0.375,fill:{color:C.gold},line:{color:C.gold}}); } // ════════════════════════════════════════════════════════════ // SLIDE 2 – WHAT IS INTERMEDIATE VOCATIONAL? // ════════════════════════════════════════════════════════════ { const sl = pres.addSlide(); sl.background = {color:C.light}; hdr(sl,"What is Intermediate Vocational Education?","Offered by TSBIE under the State Institute of Vocational Education (SIVE)"); // Main definition card rCard(sl,0.3,1.3,9.4,1.45,C.white,C.maroon); sl.addShape(pres.ShapeType.rect,{x:0.3,y:1.3,w:9.4,h:0.42,fill:{color:C.maroon},line:{color:C.maroon}}); sl.addText("📋 Definition",{x:0.42,y:1.3,w:9.0,h:0.42,fontSize:13.5,bold:true,color:C.white,valign:"middle"}); sl.addText("Vocational Intermediate is a 2-year course (1st & 2nd Year) offered at Junior Colleges in Telangana. Instead of general subjects only, students study a trade/vocational subject alongside English and a second language. They gain both academic knowledge and job-ready skills.",{x:0.42,y:1.78,w:9.0,h:0.88,fontSize:12.5,color:C.dark,align:"left",valign:"top"}); // 3 key fact boxes const facts=[ {icon:"🏫",label:"Where?",desc:"Govt. / Aided / Private\nJunior Colleges in Telangana",color:C.sky}, {icon:"📅",label:"Duration?",desc:"2 Years\n(Jr. Inter + Sr. Inter)",color:C.teal}, {icon:"📜",label:"Certificate?",desc:"TSBIE Intermediate\nVocational Certificate",color:C.maroon}, ]; facts.forEach((f,i)=>{ const cx=0.3+i*3.25; rCard(sl,cx,2.98,3.05,1.0,C.white,f.color); sl.addShape(pres.ShapeType.rect,{x:cx,y:2.98,w:3.05,h:0.38,fill:{color:f.color},line:{color:f.color}}); sl.addText(f.label,{x:cx+0.05,y:2.98,w:2.95,h:0.38,fontSize:13,bold:true,color:C.white,align:"center",valign:"middle"}); sl.addText(f.icon,{x:cx+0.1,y:3.4,w:0.75,h:0.5,fontSize:22,align:"center"}); sl.addText(f.desc,{x:cx+0.85,y:3.4,w:2.1,h:0.55,fontSize:11,color:C.dark,align:"left",valign:"middle"}); }); // Structure note rCard(sl,0.3,4.15,9.4,0.82,"FFF8EE",C.gold); sl.addText("📌 Structure: General Subjects (English + Telugu/Hindi) + 3 Vocational Subjects (Theory + Practical)\nExam: TSBIE Public Exam | Theory marks + Practical marks = Final result",{x:0.45,y:4.2,w:9.0,h:0.72,fontSize:11.5,color:C.dark,align:"left",valign:"middle"}); ftr(sl); } // ════════════════════════════════════════════════════════════ // SLIDE 3 – GROUPS & REGULAR STREAMS // ════════════════════════════════════════════════════════════ { const sl = pres.addSlide(); sl.background = {color:C.light}; hdr(sl,"Intermediate Streams in Telangana","General Groups vs Vocational Groups — Choose what suits you!"); // General groups (top row) sl.addText("🎓 General (Academic) Groups",{x:0.3,y:1.25,w:9.4,h:0.4,fontSize:14,bold:true,color:C.maroon,align:"left"}); const genGroups=[ {code:"MPC",full:"Maths · Physics · Chemistry",icon:"📐",color:C.sky,for:"Engineering / Tech"}, {code:"BiPC",full:"Biology · Physics · Chemistry",icon:"🔬",color:C.teal,for:"Medicine / Pharmacy"}, {code:"MEC",full:"Maths · Economics · Commerce",icon:"📊",color:C.orange,for:"Commerce / Finance"}, {code:"CEC",full:"Commerce · Economics · Civics",icon:"⚖️",color:C.purple,for:"Law / Civil Services"}, ]; genGroups.forEach((g,i)=>{ const cx=0.25+i*2.42; rCard(sl,cx,1.68,2.25,1.28,C.white,g.color); sl.addShape(pres.ShapeType.rect,{x:cx,y:1.68,w:2.25,h:0.4,fill:{color:g.color},line:{color:g.color}}); sl.addText(g.code,{x:cx+0.05,y:1.68,w:2.15,h:0.4,fontSize:16,bold:true,color:C.white,align:"center",valign:"middle"}); sl.addText(g.icon,{x:cx+0.05,y:2.1,w:0.6,h:0.6,fontSize:22,align:"center"}); sl.addText(g.full,{x:cx+0.62,y:2.1,w:1.55,h:0.38,fontSize:9.5,color:C.dark,align:"left",valign:"middle"}); sl.addText("→ "+g.for,{x:cx+0.08,y:2.68,w:2.05,h:0.25,fontSize:9.5,color:g.color,bold:true,align:"center"}); }); // Divider sl.addShape(pres.ShapeType.line,{x:0.3,y:3.1,w:9.4,h:0,line:{color:C.gold,width:1.5,dashType:"dash"}}); sl.addText("🛠️ Vocational Groups (SIVE)",{x:0.3,y:3.18,w:9.4,h:0.4,fontSize:14,bold:true,color:C.maroon,align:"left"}); // Vocational sectors (compact row) const vocSectors=[ {sector:"Agriculture",icon:"🌾",color:"5D8A3C"}, {sector:"Commerce\n& Trade",icon:"💼",color:C.orange}, {sector:"Engineering\nTechnology",icon:"⚙️",color:C.sky}, {sector:"Home Science\n& Paramedical",icon:"🏥",color:C.red}, {sector:"IT & Computer\nScience",icon:"💻",color:C.purple}, ]; vocSectors.forEach((v,i)=>{ const cx=0.28+i*1.92; rCard(sl,cx,3.65,1.78,1.38,C.white,v.color); circ(sl,cx+0.42,3.72,0.92,v.color); sl.addText(v.icon,{x:cx+0.42,y:3.72,w:0.92,h:0.92,fontSize:28,align:"center",valign:"middle"}); sl.addText(v.sector,{x:cx+0.05,y:4.68,w:1.68,h:0.32,fontSize:10,bold:true,color:v.color,align:"center"}); }); ftr(sl); } // ════════════════════════════════════════════════════════════ // SLIDE 4 – MAJOR VOCATIONAL COURSES (LIST) // ════════════════════════════════════════════════════════════ { const sl = pres.addSlide(); sl.background = {color:C.light}; hdr(sl,"Major Vocational Courses — TSBIE","20+ courses across 5 sectors | 1st Year + 2nd Year subjects"); const courses=[ {code:"A & T",name:"Accounting & Taxation",sector:"Commerce",icon:"💰",color:C.orange,s1:"Business Org.",s2:"Accountancy & Computers",s3:"Taxation"}, {code:"O.A.",name:"Office Assistantship",sector:"Commerce",icon:"🗂️",color:C.orange,s1:"Business Org.",s2:"Accountancy",s3:"Shorthand & Data Entry"}, {code:"I & M",name:"Insurance & Marketing",sector:"Commerce",icon:"📋",color:C.orange,s1:"Business Org.",s2:"Accountancy",s3:"Principles of Insurance"}, {code:"C.S.",name:"Computer Science",sector:"IT",icon:"💻",color:C.purple,s1:"Computer Fundamentals",s2:"Programming in C",s3:"Web Design"}, {code:"C.G.A.",name:"Computer Graphics & Animation",sector:"IT",icon:"🎨",color:C.purple,s1:"MS-Office",s2:"Programming in C",s3:"Fundamentals of CG & Anim."}, {code:"A.E.T.",name:"Automobile Engg. Technician",sector:"Engineering",icon:"🔧",color:C.sky,s1:"Workshop Technology",s2:"Basic Mech. & Electrical",s3:"Auto Power Plant"}, {code:"C.T.",name:"Construction Technology",sector:"Engineering",icon:"🏗️",color:C.sky,s1:"Construction Materials",s2:"Civil Drawing",s3:"Construction Practice"}, {code:"M.T.",name:"Mechanical Technician",sector:"Engineering",icon:"⚙️",color:C.sky,s1:"Basic Workshop",s2:"Mech. & Electrical Tech",s3:"Refrigeration"}, {code:"FISH",name:"Fisheries",sector:"Agriculture",icon:"🐟",color:"4A7D2A",s1:"Biology of Fishes",s2:"Fisheries & Aquaculture",s3:"Seed Production Tech."}, {code:"SERI",name:"Sericulture",sector:"Agriculture",icon:"🌿",color:"4A7D2A",s1:"Moriculture",s2:"Mulberry Farm Mgmt.",s3:"Silkworm Seed Tech."}, {code:"C.G.T.",name:"Commercial Garment Technology",sector:"Home Sc.",icon:"✂️",color:C.teal,s1:"Principles of Garment Making",s2:"Textile Science",s3:"Garment Construction"}, {code:"P.S.T.T.",name:"Pre-School Teacher Training",sector:"Home Sc.",icon:"👶",color:C.teal,s1:"Child Development",s2:"Org. & Mgmt. of Crèches",s3:"Health & Nutrition"}, {code:"T&HM",name:"Tourism & Hospitality Mgmt.",sector:"Commerce",icon:"✈️",color:C.orange,s1:"Tourism & Travel",s2:"Hospitality Service",s3:"Front Office & Computers"}, {code:"Retail",name:"Retail Management",sector:"Commerce",icon:"🛒",color:C.orange,s1:"Business Org.",s2:"Accountancy",s3:"Retail Marketing"}, ]; // Group by sector and show as compact table const sectorColors={Commerce:C.orange,IT:C.purple,Engineering:C.sky,Agriculture:"4A7D2A","Home Sc.":C.teal}; const sectors=["Commerce","IT","Engineering","Agriculture","Home Sc."]; // Two-column layout const colW=[0.7,2.2,1.7,1.6,1.6,1.6]; const headers=["Code","Course Name","Sector","Subject 1","Subject 2","Subject 3"]; let xh=0.25; const headerColors=[C.maroon,C.maroon,C.maroon,C.maroon,C.maroon,C.maroon]; headers.forEach((h,i)=>{ sl.addShape(pres.ShapeType.rect,{x:xh,y:1.22,w:colW[i],h:0.42,fill:{color:C.maroon},line:{color:C.white,width:0.5}}); sl.addText(h,{x:xh,y:1.22,w:colW[i],h:0.42,fontSize:11,bold:true,color:C.gold,align:"center",valign:"middle"}); xh+=colW[i]; }); const show=courses.slice(0,10); show.forEach((c,ri)=>{ let x2=0.25; const rowBg=ri%2===0?C.white:C.mid; const vals=[c.code,c.name,c.sector,c.s1,c.s2,c.s3]; const sc=sectorColors[c.sector]||C.dark; vals.forEach((val,ci)=>{ sl.addShape(pres.ShapeType.rect,{x:x2,y:1.64+ri*0.345,w:colW[ci],h:0.33,fill:{color:rowBg},line:{color:C.mid,width:0.4}}); sl.addText(val,{x:x2+0.04,y:1.64+ri*0.345,w:colW[ci]-0.08,h:0.33,fontSize:ci===2?10.5:10,color:ci===2?sc:C.dark,bold:ci===0||ci===2,align:ci===0||ci===2?"center":"left",valign:"middle"}); x2+=colW[ci]; }); }); sl.addShape(pres.ShapeType.roundRect,{x:0.25,y:5.06,w:9.5,h:0.14,fill:{color:"FFF3E0"},line:{color:C.gold,width:1},rectRadius:0.06}); sl.addText("+ More: Live Stock & Dairy Tech., Retail Mgmt., L.M.D.T., CGA and others. Total 20+ courses available across Telangana.",{x:0.35,y:5.06,w:9.2,h:0.14,fontSize:9.5,color:C.orange,align:"left",valign:"middle"}); ftr(sl); } // ════════════════════════════════════════════════════════════ // SLIDE 5 – SUBJECTS STRUCTURE (HOW A VOCATIONAL YEAR WORKS) // ════════════════════════════════════════════════════════════ { const sl = pres.addSlide(); sl.background = {color:C.light}; hdr(sl,"How a Vocational Year is Structured","Example: Computer Science (CS) — 1st Year & 2nd Year"); // Subject structure diagram for CS as example // Two boxes side by side const years=[ {label:"1st Year (Junior Inter)",color:C.sky,subjects:[ {name:"English – I",type:"Lang"}, {name:"Telugu / Hindi – I",type:"Lang"}, {name:"Computer Fundamentals & MS-Office",type:"Voc"}, {name:"Programming in C",type:"Voc"}, {name:"Environmental Education (Compulsory)",type:"Comp"}, ]}, {label:"2nd Year (Senior Inter)",color:C.maroon,subjects:[ {name:"English – II",type:"Lang"}, {name:"Telugu / Hindi – II",type:"Lang"}, {name:"Interactive Web Design",type:"Voc"}, {name:"Advanced Programming / Project",type:"Voc"}, {name:"Environmental Education (Compulsory)",type:"Comp"}, ]}, ]; years.forEach((yr,i)=>{ const cx=0.3+i*4.85; rCard(sl,cx,1.25,4.6,3.68,C.white,yr.color); sl.addShape(pres.ShapeType.rect,{x:cx,y:1.25,w:4.6,h:0.45,fill:{color:yr.color},line:{color:yr.color}}); sl.addText(yr.label,{x:cx+0.1,y:1.25,w:4.4,h:0.45,fontSize:14,bold:true,color:C.white,align:"center",valign:"middle"}); yr.subjects.forEach((sub,si)=>{ const typeColor={Lang:C.sky,Voc:C.maroon,Comp:C.teal}[sub.type]; const typeLabel={Lang:"Language",Voc:"Vocational",Comp:"Compulsory"}[sub.type]; const sy=1.8+si*0.56; sl.addShape(pres.ShapeType.roundRect,{x:cx+0.15,y:sy,w:4.2,h:0.47,fill:{color:"FBF9F7"},line:{color:typeColor,width:1.5},rectRadius:0.09}); sl.addShape(pres.ShapeType.rect,{x:cx+0.15,y:sy,w:0.8,h:0.47,fill:{color:typeColor},line:{color:typeColor}}); sl.addText(typeLabel,{x:cx+0.15,y:sy,w:0.8,h:0.47,fontSize:7.5,bold:true,color:C.white,align:"center",valign:"middle"}); sl.addText(sub.name,{x:cx+1.0,y:sy,w:3.25,h:0.47,fontSize:11,color:C.dark,align:"left",valign:"middle"}); }); }); // Marks legend rCard(sl,0.3,5.05,9.4,0.35,"FFF8EE",C.gold); sl.addText("📝 Each vocational subject = Theory exam (80 marks) + Practical exam (20 marks) = 100 marks | Pass: 35/100 in each paper",{x:0.42,y:5.07,w:9.1,h:0.28,fontSize:11,color:C.dark,align:"left",valign:"middle"}); ftr(sl); } // ════════════════════════════════════════════════════════════ // SLIDE 6 – CAREER PATHS AFTER VOCATIONAL INTERMEDIATE // ════════════════════════════════════════════════════════════ { const sl = pres.addSlide(); sl.background = {color:C.light}; hdr(sl,"Career Paths After Vocational Intermediate","What can you do after passing TSBIE Vocational?"); // 3 main path cards const paths=[ { icon:"🎓", title:"Degree / Diploma", color:C.sky, points:[ "B.Sc. / B.Com / BCA via bridge course", "Polytechnic Diploma (lateral entry)", "B.Voc. degree in your vocational trade", "TSICET for MBA / MCA after degree", ] }, { icon:"💼", title:"Direct Employment", color:C.teal, points:[ "Entry-level jobs in your trade sector", "Govt. jobs (Group-D, technical posts)", "Private sector (IT, Auto, Hospitality)", "Self-employment / start own business", ] }, { icon:"🏅", title:"Competitive Exams", color:C.maroon, points:[ "TG EAPCET (EAMCET) — with bridge course", "ITI / NCVT national skill certifications", "Banking exams (IBPS Clerk / PO)", "TG POLYCET for Polytechnic colleges", ] }, ]; paths.forEach((p,i)=>{ const cx=0.28+i*3.24; rCard(sl,cx,1.25,3.08,3.88,C.white,p.color); circ(sl,cx+1.1,1.3,0.95,p.color); sl.addText(p.icon,{x:cx+1.1,y:1.3,w:0.95,h:0.95,fontSize:32,align:"center",valign:"middle"}); sl.addText(p.title,{x:cx+0.08,y:2.35,w:2.92,h:0.42,fontSize:15,bold:true,color:p.color,align:"center"}); p.points.forEach((pt,pi)=>{ sl.addText("▸ "+pt,{x:cx+0.18,y:2.85+pi*0.52,w:2.72,h:0.48,fontSize:11,color:C.dark,align:"left",valign:"middle"}); }); }); // Bottom highlight rCard(sl,0.28,5.05,9.44,0.38,"FFF0E0",C.gold); sl.addText("⭐ Bridge Course available for vocational students wanting to join Science/Engineering/Medicine degree programmes via EAMCET.",{x:0.4,y:5.08,w:9.2,h:0.3,fontSize:11,color:C.dark,align:"left",valign:"middle"}); ftr(sl); } // ════════════════════════════════════════════════════════════ // SLIDE 7 – BENEFITS + CLOSING // ════════════════════════════════════════════════════════════ { const sl = pres.addSlide(); sl.background = {color:C.maroon}; sl.addShape(pres.ShapeType.rect,{x:0,y:0,w:0.22,h:5.625,fill:{color:C.gold},line:{color:C.gold}}); circ(sl,6.3,-0.4,3.8,"8B2234"); circ(sl,8.2,2.6,2.5,"6A1728"); sl.addText("Why Choose Vocational\nIntermediate? 🌟",{x:0.45,y:0.35,w:5.8,h:1.6,fontSize:36,bold:true,color:C.white,fontFace:"Calibri",align:"left"}); const bens=[ {icon:"⚡",text:"Skill + Certificate in 2 years — job-ready faster"}, {icon:"💰",text:"Government scholarships available for vocational students"}, {icon:"🤝",text:"Industry training through apprenticeships & lab practice"}, {icon:"📈",text:"High demand trades: IT, Healthcare, Auto, Hospitality"}, {icon:"🎓",text:"Can still go to degree college through bridge course"}, {icon:"🏛️",text:"Recognised by TSBIE, NCVT & all Telangana universities"}, ]; bens.forEach((b,i)=>{ sl.addText(b.icon,{x:0.45,y:2.08+i*0.48,w:0.55,h:0.44,fontSize:20,align:"center"}); sl.addText(b.text,{x:1.1,y:2.1+i*0.48,w:4.6,h:0.4,fontSize:13,color:C.white,align:"left",valign:"middle"}); }); // Right panel rCard(sl,6.4,1.0,3.2,4.15,"8B2234",C.gold); sl.addText("Quick Facts",{x:6.5,y:1.12,w:3.0,h:0.42,fontSize:15,bold:true,color:C.gold,align:"center"}); const qf=[ ["20+","Vocational Courses"], ["2 Yrs","Duration (Jr + Sr Inter)"], ["100","Marks per subject"], ["35/100","Pass marks required"], ["Free","Textbooks from Govt."], ["Bridge","Course for EAMCET"], ]; qf.forEach(([num,label],i)=>{ sl.addShape(pres.ShapeType.rect,{x:6.5,y:1.65+i*0.54,w:1.0,h:0.46,fill:{color:C.gold},line:{color:C.gold}}); sl.addText(num,{x:6.5,y:1.65+i*0.54,w:1.0,h:0.46,fontSize:14,bold:true,color:C.maroon,align:"center",valign:"middle"}); sl.addText(label,{x:7.55,y:1.65+i*0.54,w:1.9,h:0.46,fontSize:11,color:C.white,align:"left",valign:"middle"}); }); sl.addShape(pres.ShapeType.rect,{x:0,y:5.25,w:10,h:0.375,fill:{color:C.gold},line:{color:C.gold}}); sl.addText("Telangana State Board of Intermediate Education (TSBIE) | State Institute of Vocational Education",{x:0,y:5.25,w:10,h:0.375,fontSize:10,color:C.maroon,bold:true,align:"center",valign:"middle"}); } // ── SAVE ────────────────────────────────────────────────────── const out="/home/daytona/workspace/telangana-voc-pptx/Telangana_Intermediate_Vocational_Education.pptx"; pres.writeFile({fileName:out}).then(()=>console.log("DONE:",out)).catch(e=>{console.error(e);process.exit(1);}); JSEOF echo "Script ready"

Running Command

node /home/daytona/workspace/telangana-voc-pptx/make.js

Your Telangana-specific presentation is ready!

Telangana Intermediate Vocational Education

Presentation · PPTX


What's inside (7 slides, TSBIE/SIVE syllabus aligned):
SlideContent
1Title - Maroon & gold Telangana colour theme, trade emojis
2What is Intermediate Vocational? - TSBIE/SIVE definition, duration, certificate, structure note
3Streams Overview - General groups (MPC, BiPC, MEC, CEC) vs Vocational sectors (Agriculture, Commerce, Engineering, IT, Home Science)
420+ Courses Table - Accounting & Taxation, CS, CGA, AET, Construction, Fisheries, Sericulture, Garment Tech, Tourism & more with all 3 subjects per course
5Subject Structure - CS as example, 1st Year & 2nd Year breakdown (Language + Vocational + Compulsory), marks info (80 Theory + 20 Practical = 100)
6Career Paths - 3 routes: Degree/Diploma, Direct Employment, Competitive Exams (EAMCET bridge course, POLYCET, NCVT)
7Benefits + Quick Facts - Pass marks (35/100), free textbooks, govt. scholarships, TSBIE recognition
Design: Telangana state maroon & gold colour palette throughout, structured for Class 11-12 students.
This is a shared conversation. Sign in to Orris to start your own chat.