Vocational education simple with images
vocational education types examples students simple explanation
ls /home/daytona/workspace/ 2>/dev/null && mkdir -p /home/daytona/workspace/voca…
~/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);
});
cd /home/daytona/workspace/vocational-edu-pptx && node create_pptx.js
~/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);
});
~/vocational-edu-pptx/create_pptx.js
Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/vocational-edu-pptx/create_pptx.js'
cat > /home/daytona/workspace/vocational-edu-pptx/create_pptx.js << 'JSEOF' cons…
node /home/daytona/workspace/vocational-edu-pptx/create_pptx.js
Vocational Education
Presentation · PPTX
| Slide | Content |
|---|---|
| 1 | Title slide - Bold navy + orange design with floating trade emojis |
| 2 | What is Vocational Education? - Definition, "Also called" box, comparison vs Academic |
| 3 | 6 Popular Fields - Cards for Construction, Healthcare, Culinary, Auto Mechanics, IT, Cosmetology |
| 4 | How It Works - 4-step process: Choose → Train → Work Placement → Get Certified |
| 5 | Why Choose It? - 6 benefit cards: faster, cheaper, job-ready, high demand, hands-on, global |
| 6 | Real Career Examples - Table with job roles, training times & salary ranges |
| 7 | Closing slide - "Your Future Starts Here!" with call-to-action button |
For intermediate students based in telangana syllabus
Telangana intermediate syllabus vocational education courses TSBIE 2024
Telangana Board Intermediate vocational courses list BPC MPC CEC subjects
https://scert.telangana.gov.in/pdf/publication/others/6%20-%…
mkdir -p /home/daytona/workspace/telangana-voc-pptx && cat > /home/daytona/works…
node /home/daytona/workspace/telangana-voc-pptx/make.js
Telangana Intermediate Vocational Education
Presentation · PPTX
| Slide | Content |
|---|---|
| 1 | Title - Maroon & gold Telangana colour theme, trade emojis |
| 2 | What is Intermediate Vocational? - TSBIE/SIVE definition, duration, certificate, structure note |
| 3 | Streams Overview - General groups (MPC, BiPC, MEC, CEC) vs Vocational sectors (Agriculture, Commerce, Engineering, IT, Home Science) |
| 4 | 20+ Courses Table - Accounting & Taxation, CS, CGA, AET, Construction, Fisheries, Sericulture, Garment Tech, Tourism & more with all 3 subjects per course |
| 5 | Subject Structure - CS as example, 1st Year & 2nd Year breakdown (Language + Vocational + Compulsory), marks info (80 Theory + 20 Practical = 100) |
| 6 | Career Paths - 3 routes: Degree/Diploma, Direct Employment, Competitive Exams (EAMCET bridge course, POLYCET, NCVT) |
| 7 | Benefits + Quick Facts - Pass marks (35/100), free textbooks, govt. scholarships, TSBIE recognition |