kindly make a ppt of above
mkdir -p /home/daytona/workspace/pandemic-module && ls /home/daytona/workspace/p…
~/pandemic-module/create_ppt.js
const pptxgen = require("pptxgenjs");
let pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "PANDEMIC Module 4.4 - Information Management during Pandemics";
pres.author = "GEN MED / PUL MED / ANAES";
// Color palette
const DARK_BLUE = "0A1628";
const MED_BLUE = "1B3A6B";
const ACCENT_TEAL = "00B4D8";
const ACCENT_ORANGE = "F77F00";
const LIGHT_BG = "EAF4FB";
const WHITE = "FFFFFF";
const LIGHT_GRAY = "D0E8F2";
const DARK_TEXT = "0A1628";
// ─────────────────────────────────────────────
// SLIDE 1 – TITLE SLIDE
// ─────────────────────────────────────────────
let slide1 = pres.addSlide();
// Dark background
slide1.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: DARK_BLUE } });
// Accent bar (teal left strip)
slide1.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: ACCENT_TEAL } });
// Orange accent line at top
slide1.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.07, fill: { color: ACCENT_ORANGE } });
// Module label
slide1.addText("MODULE 4.4", {
x: 0.5, y: 0.6, w: 9, h: 0.55,
fontSize: 14, bold: true, color: ACCENT_TEAL,
charSpacing: 6, align: "center", fontFace: "Calibri"
});
// Main title
slide1.addText("PANDEMIC", {
x: 0.5, y: 1.2, w: 9, h: 1.0,
fontSize: 56, bold: true, color: WHITE,
align: "center", fontFace: "Calibri"
});
// Subtitle
slide1.addText("Information Management during Pandemics", {
x: 0.5, y: 2.25, w: 9, h: 0.75,
fontSize: 22, bold: false, color: LIGHT_GRAY,
align: "center", fontFace: "Calibri"
});
// Horizontal divider
slide1.addShape(pres.ShapeType.rect, { x: 1.5, y: 3.15, w: 7, h: 0.05, fill: { color: ACCENT_TEAL } });
// Duration
slide1.addText("⏱ Duration: 2 Hours | Interactive Discussion", {
x: 0.5, y: 3.3, w: 9, h: 0.5,
fontSize: 14, bold: false, color: LIGHT_GRAY,
align: "center", fontFace: "Calibri"
});
// Department tag
slide1.addShape(pres.ShapeType.rect, { x: 2.5, y: 4.2, w: 5, h: 0.55, fill: { color: MED_BLUE } });
slide1.addText("GEN MED / PUL MED / ANAES", {
x: 2.5, y: 4.2, w: 5, h: 0.55,
fontSize: 12, bold: true, color: WHITE,
align: "center", fontFace: "Calibri"
});
// ─────────────────────────────────────────────
// SLIDE 2 – MODULE OVERVIEW
// ─────────────────────────────────────────────
let slide2 = pres.addSlide();
// Light background
slide2.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: LIGHT_BG } });
// Top header bar
slide2.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.05, fill: { color: MED_BLUE } });
slide2.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.07, fill: { color: ACCENT_TEAL } });
slide2.addText("Module Overview", {
x: 0.4, y: 0.1, w: 9, h: 0.85,
fontSize: 28, bold: true, color: WHITE,
fontFace: "Calibri", valign: "middle"
});
// Three info boxes
const boxes = [
{ label: "Module", value: "4.4", icon: "📋", x: 0.4 },
{ label: "Duration", value: "2 Hours", icon: "⏱", x: 3.7 },
{ label: "Method", value: "Interactive Discussion", icon: "💬", x: 6.7 }
];
boxes.forEach(b => {
slide2.addShape(pres.ShapeType.rect, {
x: b.x, y: 1.25, w: 2.8, h: 1.5,
fill: { color: WHITE },
line: { color: ACCENT_TEAL, width: 2 }
});
slide2.addText(b.icon, { x: b.x, y: 1.3, w: 2.8, h: 0.5, fontSize: 22, align: "center" });
slide2.addText(b.value, {
x: b.x, y: 1.8, w: 2.8, h: 0.5,
fontSize: 16, bold: true, color: DARK_BLUE,
align: "center", fontFace: "Calibri"
});
slide2.addText(b.label, {
x: b.x, y: 2.3, w: 2.8, h: 0.35,
fontSize: 11, color: "555555",
align: "center", fontFace: "Calibri"
});
});
// Topics intro
slide2.addText("Topics Covered in This Module", {
x: 0.4, y: 3.0, w: 9, h: 0.45,
fontSize: 16, bold: true, color: MED_BLUE,
fontFace: "Calibri"
});
slide2.addShape(pres.ShapeType.rect, { x: 0.4, y: 3.45, w: 9.2, h: 0.05, fill: { color: ACCENT_TEAL } });
slide2.addText([
{ text: "a. Responding to Media", options: { bullet: false, breakLine: true } },
{ text: "b. Use and Misuse of Social Media for Health Related Messages", options: { bullet: false } }
], {
x: 0.5, y: 3.55, w: 9, h: 1.6,
fontSize: 15, color: DARK_TEXT,
fontFace: "Calibri", lineSpacingMultiple: 1.6
});
// ─────────────────────────────────────────────
// SLIDE 3 – TOPIC A: RESPONDING TO MEDIA
// ─────────────────────────────────────────────
let slide3 = pres.addSlide();
slide3.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: WHITE } });
// Left accent column
slide3.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.5, h: 5.625, fill: { color: MED_BLUE } });
slide3.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.5, h: 1.5, fill: { color: ACCENT_TEAL } });
// Header
slide3.addShape(pres.ShapeType.rect, { x: 0.5, y: 0, w: 9.5, h: 1.1, fill: { color: "F0F8FC" } });
slide3.addText("Topic a", {
x: 0.7, y: 0.05, w: 9, h: 0.4,
fontSize: 11, bold: true, color: ACCENT_TEAL,
fontFace: "Calibri", charSpacing: 3
});
slide3.addText("Responding to Media", {
x: 0.7, y: 0.42, w: 9, h: 0.65,
fontSize: 26, bold: true, color: DARK_BLUE,
fontFace: "Calibri"
});
// Content points
const mediaPoints = [
{ icon: "🎯", title: "Be Prepared", body: "Designate a trained spokesperson. Prepare key messages in advance. Know your facts and data." },
{ icon: "🔍", title: "Accuracy First", body: "Always verify information before sharing. Correct misinformation calmly and respectfully." },
{ icon: "🤝", title: "Transparency", body: "Acknowledge uncertainties openly. Provide timely updates as new information becomes available." },
{ icon: "📢", title: "Clear Communication", body: "Use plain language. Avoid jargon. Tailor messages to your audience." }
];
mediaPoints.forEach((pt, i) => {
const col = i % 2;
const row = Math.floor(i / 2);
const x = 0.7 + col * 4.65;
const y = 1.3 + row * 2.0;
slide3.addShape(pres.ShapeType.rect, {
x, y, w: 4.3, h: 1.75,
fill: { color: i % 2 === 0 ? "EAF4FB" : "FFF4E6" },
line: { color: i % 2 === 0 ? ACCENT_TEAL : ACCENT_ORANGE, width: 1.5 }
});
slide3.addText(pt.icon + " " + pt.title, {
x: x + 0.12, y: y + 0.12, w: 4.0, h: 0.45,
fontSize: 13, bold: true, color: DARK_BLUE,
fontFace: "Calibri"
});
slide3.addText(pt.body, {
x: x + 0.12, y: y + 0.58, w: 4.0, h: 1.05,
fontSize: 11.5, color: "333333",
fontFace: "Calibri", lineSpacingMultiple: 1.3
});
});
// ─────────────────────────────────────────────
// SLIDE 4 – MEDIA STRATEGY (deep dive)
// ─────────────────────────────────────────────
let slide4 = pres.addSlide();
slide4.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: DARK_BLUE } });
slide4.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.07, fill: { color: ACCENT_ORANGE } });
slide4.addText("Media Response Strategy", {
x: 0.5, y: 0.2, w: 9, h: 0.75,
fontSize: 28, bold: true, color: WHITE,
fontFace: "Calibri", align: "center"
});
slide4.addText("Topic a – Deep Dive", {
x: 0.5, y: 0.9, w: 9, h: 0.4,
fontSize: 13, color: ACCENT_TEAL,
fontFace: "Calibri", align: "center", charSpacing: 3
});
// Timeline / step boxes
const steps = [
{ num: "01", label: "Before the Interview", body: "Brief the spokesperson\nPrepare Q&A sheets\nConfirm key statistics" },
{ num: "02", label: "During the Interview", body: "Stay on-message\nBridge back to key points\nAvoid speculation" },
{ num: "03", label: "After the Interview", body: "Monitor coverage\nCorrect errors promptly\nShare approved transcript" },
{ num: "04", label: "Crisis Communication", body: "Activate rapid response team\nIssue holding statements\nEscalate to leadership" }
];
steps.forEach((s, i) => {
const x = 0.3 + i * 2.37;
slide4.addShape(pres.ShapeType.rect, { x, y: 1.55, w: 2.1, h: 3.6, fill: { color: MED_BLUE } });
slide4.addShape(pres.ShapeType.rect, { x, y: 1.55, w: 2.1, h: 0.65, fill: { color: ACCENT_TEAL } });
slide4.addText(s.num, {
x, y: 1.55, w: 2.1, h: 0.65,
fontSize: 20, bold: true, color: DARK_BLUE,
align: "center", valign: "middle", fontFace: "Calibri"
});
slide4.addText(s.label, {
x: x + 0.08, y: 2.25, w: 1.95, h: 0.65,
fontSize: 12, bold: true, color: WHITE,
align: "center", fontFace: "Calibri", lineSpacingMultiple: 1.2
});
slide4.addText(s.body, {
x: x + 0.08, y: 2.95, w: 1.95, h: 2.1,
fontSize: 10.5, color: LIGHT_GRAY,
align: "left", fontFace: "Calibri", lineSpacingMultiple: 1.4
});
});
// ─────────────────────────────────────────────
// SLIDE 5 – TOPIC B: SOCIAL MEDIA
// ─────────────────────────────────────────────
let slide5 = pres.addSlide();
slide5.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: WHITE } });
slide5.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.08, fill: { color: ACCENT_ORANGE } });
slide5.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.5, h: 5.625, fill: { color: ACCENT_ORANGE } });
slide5.addText("Topic b", {
x: 0.7, y: 0.1, w: 9, h: 0.4,
fontSize: 11, bold: true, color: ACCENT_ORANGE,
fontFace: "Calibri", charSpacing: 3
});
slide5.addText("Use and Misuse of Social Media", {
x: 0.7, y: 0.45, w: 9, h: 0.6,
fontSize: 26, bold: true, color: DARK_BLUE,
fontFace: "Calibri"
});
slide5.addText("for Health Related Messages", {
x: 0.7, y: 1.0, w: 9, h: 0.45,
fontSize: 18, bold: false, color: MED_BLUE,
fontFace: "Calibri"
});
// Two-column layout: USE vs MISUSE
// Use column
slide5.addShape(pres.ShapeType.rect, { x: 0.7, y: 1.6, w: 4.0, h: 0.5, fill: { color: ACCENT_TEAL } });
slide5.addText("✅ BENEFICIAL USE", {
x: 0.7, y: 1.6, w: 4.0, h: 0.5,
fontSize: 13, bold: true, color: WHITE,
align: "center", valign: "middle", fontFace: "Calibri"
});
const usePoints = [
"Rapid dissemination of accurate health alerts",
"Real-time public communication by health authorities",
"Monitoring public sentiment and questions",
"Community engagement and behavior change",
"Sharing updates: vaccination drives, outbreaks"
];
usePoints.forEach((pt, i) => {
slide5.addShape(pres.ShapeType.rect, {
x: 0.7, y: 2.18 + i * 0.57, w: 4.0, h: 0.52,
fill: { color: i % 2 === 0 ? "EAF4FB" : WHITE },
line: { color: "CCDDEE", width: 0.5 }
});
slide5.addText("• " + pt, {
x: 0.85, y: 2.19 + i * 0.57, w: 3.7, h: 0.5,
fontSize: 10.5, color: DARK_TEXT,
fontFace: "Calibri", valign: "middle"
});
});
// Misuse column
slide5.addShape(pres.ShapeType.rect, { x: 5.3, y: 1.6, w: 4.3, h: 0.5, fill: { color: ACCENT_ORANGE } });
slide5.addText("⚠️ MISUSE & RISKS", {
x: 5.3, y: 1.6, w: 4.3, h: 0.5,
fontSize: 13, bold: true, color: WHITE,
align: "center", valign: "middle", fontFace: "Calibri"
});
const misusePoints = [
"Spread of misinformation and conspiracy theories",
"Amplification of fear and panic",
"Unverified cures and remedies circulating",
"Stigmatization of communities or individuals",
"Overwhelming official channels with false reports"
];
misusePoints.forEach((pt, i) => {
slide5.addShape(pres.ShapeType.rect, {
x: 5.3, y: 2.18 + i * 0.57, w: 4.3, h: 0.52,
fill: { color: i % 2 === 0 ? "FFF4E6" : WHITE },
line: { color: "EECC99", width: 0.5 }
});
slide5.addText("• " + pt, {
x: 5.45, y: 2.19 + i * 0.57, w: 4.0, h: 0.5,
fontSize: 10.5, color: DARK_TEXT,
fontFace: "Calibri", valign: "middle"
});
});
// ─────────────────────────────────────────────
// SLIDE 6 – INFODEMIC & COUNTERING MISINFORMATION
// ─────────────────────────────────────────────
let slide6 = pres.addSlide();
slide6.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: "F8F9FA" } });
slide6.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.1, fill: { color: MED_BLUE } });
slide6.addText("The Infodemic Challenge", {
x: 0.5, y: 0.15, w: 9, h: 0.6,
fontSize: 26, bold: true, color: WHITE,
fontFace: "Calibri"
});
slide6.addText("Managing misinformation during a pandemic", {
x: 0.5, y: 0.7, w: 9, h: 0.35,
fontSize: 13, color: LIGHT_GRAY,
fontFace: "Calibri"
});
// Definition box
slide6.addShape(pres.ShapeType.rect, {
x: 0.5, y: 1.2, w: 9, h: 0.85,
fill: { color: MED_BLUE },
line: { color: ACCENT_TEAL, width: 2 }
});
slide6.addText('"An infodemic is an overabundance of information — both accurate and inaccurate — that spreads alongside an epidemic, making it hard for people to find trustworthy guidance." — WHO', {
x: 0.65, y: 1.25, w: 8.7, h: 0.75,
fontSize: 11, italic: true, color: WHITE,
fontFace: "Calibri", valign: "middle"
});
// Strategies
const strategies = [
{ num: "1", title: "Verify Before Sharing", desc: "Cross-check with WHO, CDC, and official health authority sources before posting or forwarding any health information." },
{ num: "2", title: "Platform Collaboration", desc: "Work with social media platforms to flag, remove, or label health misinformation rapidly." },
{ num: "3", title: "Prebunking", desc: "Proactively educate the public on common myths and manipulation tactics before misinformation spreads." },
{ num: "4", title: "Engage Trusted Voices", desc: "Amplify messages from trusted community figures, healthcare workers, and local leaders." }
];
strategies.forEach((s, i) => {
const col = i % 2;
const row = Math.floor(i / 2);
const x = 0.4 + col * 4.8;
const y = 2.22 + row * 1.55;
slide6.addShape(pres.ShapeType.rect, {
x, y, w: 4.5, h: 1.4,
fill: { color: WHITE },
line: { color: i < 2 ? ACCENT_TEAL : ACCENT_ORANGE, width: 1.5 }
});
slide6.addShape(pres.ShapeType.rect, { x, y, w: 0.4, h: 1.4, fill: { color: i < 2 ? ACCENT_TEAL : ACCENT_ORANGE } });
slide6.addText(s.num, {
x, y, w: 0.4, h: 1.4,
fontSize: 16, bold: true, color: WHITE,
align: "center", valign: "middle", fontFace: "Calibri"
});
slide6.addText(s.title, {
x: x + 0.5, y: y + 0.1, w: 3.85, h: 0.4,
fontSize: 12, bold: true, color: DARK_BLUE,
fontFace: "Calibri"
});
slide6.addText(s.desc, {
x: x + 0.5, y: y + 0.5, w: 3.85, h: 0.8,
fontSize: 10, color: "444444",
fontFace: "Calibri", lineSpacingMultiple: 1.3
});
});
// ─────────────────────────────────────────────
// SLIDE 7 – KEY PRINCIPLES
// ─────────────────────────────────────────────
let slide7 = pres.addSlide();
slide7.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: DARK_BLUE } });
slide7.addShape(pres.ShapeType.rect, { x: 0, y: 5.5, w: 10, h: 0.125, fill: { color: ACCENT_TEAL } });
slide7.addText("Key Principles", {
x: 0.5, y: 0.25, w: 9, h: 0.65,
fontSize: 30, bold: true, color: WHITE,
fontFace: "Calibri", align: "center"
});
slide7.addText("Information Management during Pandemics", {
x: 0.5, y: 0.85, w: 9, h: 0.4,
fontSize: 14, color: ACCENT_TEAL,
fontFace: "Calibri", align: "center"
});
const principles = [
{ icon: "🎯", title: "Accuracy", desc: "Share only verified information from authoritative sources" },
{ icon: "⚡", title: "Timeliness", desc: "Communicate early and update regularly as the situation evolves" },
{ icon: "🔍", title: "Transparency", desc: "Be open about what is known, unknown and uncertain" },
{ icon: "🌐", title: "Reach", desc: "Use multiple channels to reach all segments of the population" },
{ icon: "💬", title: "Clarity", desc: "Use simple, plain language free of technical jargon" },
{ icon: "🤝", title: "Trust", desc: "Build and maintain public trust through consistent messaging" }
];
principles.forEach((p, i) => {
const col = i % 3;
const row = Math.floor(i / 3);
const x = 0.35 + col * 3.2;
const y = 1.45 + row * 1.9;
slide7.addShape(pres.ShapeType.rect, {
x, y, w: 2.85, h: 1.75,
fill: { color: MED_BLUE }
});
slide7.addShape(pres.ShapeType.rect, {
x, y, w: 2.85, h: 0.07,
fill: { color: i % 2 === 0 ? ACCENT_TEAL : ACCENT_ORANGE }
});
slide7.addText(p.icon, {
x, y: y + 0.12, w: 2.85, h: 0.5,
fontSize: 22, align: "center"
});
slide7.addText(p.title, {
x: x + 0.1, y: y + 0.65, w: 2.65, h: 0.4,
fontSize: 13, bold: true, color: WHITE,
align: "center", fontFace: "Calibri"
});
slide7.addText(p.desc, {
x: x + 0.1, y: y + 1.05, w: 2.65, h: 0.6,
fontSize: 9.5, color: LIGHT_GRAY,
align: "center", fontFace: "Calibri", lineSpacingMultiple: 1.3
});
});
// ─────────────────────────────────────────────
// SLIDE 8 – SUMMARY / THANK YOU
// ─────────────────────────────────────────────
let slide8 = pres.addSlide();
slide8.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: MED_BLUE } });
slide8.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.08, fill: { color: ACCENT_TEAL } });
slide8.addShape(pres.ShapeType.rect, { x: 0, y: 5.545, w: 10, h: 0.08, fill: { color: ACCENT_ORANGE } });
slide8.addText("Module Summary", {
x: 0.5, y: 0.3, w: 9, h: 0.65,
fontSize: 30, bold: true, color: WHITE,
fontFace: "Calibri", align: "center"
});
const summaryPoints = [
{ icon: "📋", text: "Module 4.4 covers Information Management during Pandemics — 2 hours, interactive discussion" },
{ icon: "📺", text: "Topic a: Responding to media requires preparation, accuracy, transparency and clear messaging" },
{ icon: "📱", text: "Topic b: Social media can amplify both accurate health messages and dangerous misinformation" },
{ icon: "⚠️", text: "The 'infodemic' is a parallel public health crisis that must be actively managed" },
{ icon: "✅", text: "Health professionals must lead with trusted, verified, timely and clear communication" }
];
summaryPoints.forEach((pt, i) => {
slide8.addShape(pres.ShapeType.rect, {
x: 0.5, y: 1.15 + i * 0.83, w: 9, h: 0.72,
fill: { color: i % 2 === 0 ? "1E4578" : "163567" },
line: { color: ACCENT_TEAL, width: 0.8 }
});
slide8.addText(pt.icon + " " + pt.text, {
x: 0.65, y: 1.2 + i * 0.83, w: 8.7, h: 0.62,
fontSize: 12, color: WHITE,
fontFace: "Calibri", valign: "middle", lineSpacingMultiple: 1.2
});
});
// Footer
slide8.addText("GEN MED / PUL MED / ANAES", {
x: 0.5, y: 5.25, w: 9, h: 0.3,
fontSize: 10, color: LIGHT_GRAY,
fontFace: "Calibri", align: "center"
});
// ─────────────────────────────────────────────
// WRITE FILE
// ─────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/pandemic-module/Pandemic_Module_4_4.pptx" })
.then(() => console.log("SUCCESS: Pandemic_Module_4_4.pptx created"))
.catch(err => console.error("ERROR:", err));
cd /home/daytona/workspace/pandemic-module && node create_ppt.js
| Slide | Content |
|---|---|
| 1 | Title Slide - Module 4.4 branding, 2-hour duration, GEN MED/PUL MED/ANAES |
| 2 | Module Overview - info cards + topic listing |
| 3 | Topic a: Responding to Media - 4 key areas (Be Prepared, Accuracy, Transparency, Clear Communication) |
| 4 | Media Response Strategy - 4-step timeline (Before/During/After interview + Crisis Comms) |
| 5 | Topic b: Social Media - side-by-side Beneficial Use vs Misuse & Risks |
| 6 | The Infodemic Challenge - WHO definition + 4 counter-strategies |
| 7 | Key Principles - 6-tile grid (Accuracy, Timeliness, Transparency, Reach, Clarity, Trust) |
| 8 | Summary Slide - 5 key takeaways |
Pandemic Module 4 4
Presentation · PPTX
unable to download it
ls -lh /home/daytona/workspace/pandemic-module/
cd /home/daytona/workspace/pandemic-module && libreoffice --headless --convert-t…
cp /home/daytona/workspace/pandemic-module/Pandemic_Module_4_4.pptx /home/dayton…
Pandemic Module 4 4
Presentation · PPTX