Vocational education simple with images

Asking for Preferences
Reading File
Searching the Web

vocational education types examples students simple explanation

Reading File
Running Command

ls /home/daytona/workspace/ 2>/dev/null && mkdir -p /home/daytona/workspace/voca…

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

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'
Running Command

cat > /home/daytona/workspace/vocational-edu-pptx/create_pptx.js << 'JSEOF' cons…

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-%…

Running Command

mkdir -p /home/daytona/workspace/telangana-voc-pptx && cat > /home/daytona/works…

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.