Mind map for neet pg 2027

Asking for Preferences
Searching the Web

NEET PG 2027 syllabus subjects high yield topics

Reading File
Reading File
Running Command

ls /home/daytona/workspace/ 2>/dev/null || echo "workspace empty or missing"

Running Command

mkdir -p /home/daytona/workspace/neet-pg-2027

Writing File

~/neet-pg-2027/mindmap.js

const pptxgen = require("pptxgenjs");

const pres = new pptxgen();
pres.layout = "LAYOUT_WIDE"; // 13.3" x 7.5"
pres.title = "NEET PG 2027 Mind Map";
pres.author = "Orris";

// ──────────────────────────────────────────────────────────────────────────────
// COLOR PALETTE
// ──────────────────────────────────────────────────────────────────────────────
const C = {
  bg:        "0D1B2A",   // deep navy
  bgLight:   "122033",
  accent:    "F4A261",   // warm amber
  accent2:   "E76F51",   // coral-red
  teal:      "2A9D8F",
  green:     "52B788",
  purple:    "9B5DE5",
  pink:      "F72585",
  blue:      "4CC9F0",
  yellow:    "F8E16C",
  white:     "FFFFFF",
  text:      "E2E8F0",
  muted:     "94A3B8",
  card1:     "1E3A5F",
  card2:     "1A3A2A",
  card3:     "2E1A3A",
  card4:     "3A1A1A",
  card5:     "1A2A3A",
  card6:     "2A2A0A",
  card7:     "0A2A2A",
  card8:     "3A2A0A",
};

// ──────────────────────────────────────────────────────────────────────────────
// HELPER: rounded rect card
// ──────────────────────────────────────────────────────────────────────────────
function addCard(slide, x, y, w, h, fillColor, opts = {}) {
  slide.addShape(pres.ShapeType.roundRect, {
    x, y, w, h,
    fill: { color: fillColor },
    line: { color: opts.borderColor || fillColor, width: opts.borderWidth || 0 },
    rectRadius: opts.radius !== undefined ? opts.radius : 0.12,
    shadow: { type: "outer", color: "000000", blur: 8, offset: 3, angle: 45, opacity: 0.35 },
  });
}

// ──────────────────────────────────────────────────────────────────────────────
// HELPER: add centered label text
// ──────────────────────────────────────────────────────────────────────────────
function addLabel(slide, text, x, y, w, h, opts = {}) {
  slide.addText(text, {
    x, y, w, h,
    fontSize: opts.fontSize || 11,
    color: opts.color || C.white,
    bold: opts.bold !== undefined ? opts.bold : false,
    italic: opts.italic || false,
    align: opts.align || "center",
    valign: opts.valign || "middle",
    fontFace: opts.fontFace || "Calibri",
    margin: opts.margin !== undefined ? opts.margin : 3,
    wrap: true,
  });
}

// ──────────────────────────────────────────────────────────────────────────────
// HELPER: connector line between two points
// ──────────────────────────────────────────────────────────────────────────────
function addLine(slide, x1, y1, x2, y2, color, width = 1.2) {
  slide.addShape(pres.ShapeType.line, {
    x: x1, y: y1, w: x2 - x1, h: y2 - y1,
    line: { color, width, dashType: "solid", endArrowType: "none" },
  });
}

// ──────────────────────────────────────────────────────────────────────────────
// SLIDE 1 ── TITLE SLIDE
// ──────────────────────────────────────────────────────────────────────────────
(function titleSlide() {
  const s = pres.addSlide();

  // full bg
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.bg } });

  // decorative top stripe
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 0.22, fill: { color: C.accent } });
  s.addShape(pres.ShapeType.rect, { x: 0, y: 7.28, w: 13.3, h: 0.22, fill: { color: C.accent } });

  // central glow circle
  s.addShape(pres.ShapeType.ellipse, {
    x: 4.65, y: 1.5, w: 4.0, h: 4.0,
    fill: { type: "solid", color: "1A3A5F" },
    line: { color: C.accent, width: 2.5 },
    shadow: { type: "outer", color: C.accent, blur: 30, offset: 0, angle: 0, opacity: 0.4 },
  });

  // main title
  s.addText("NEET PG 2027", {
    x: 0.5, y: 1.85, w: 12.3, h: 1.4,
    fontSize: 58, bold: true, color: C.accent,
    align: "center", fontFace: "Calibri",
    charSpacing: 5, shadow: { type: "outer", color: "000000", blur: 10, offset: 4, angle: 45, opacity: 0.6 },
  });

  s.addText("COMPLETE SUBJECT MIND MAP", {
    x: 0.5, y: 3.3, w: 12.3, h: 0.7,
    fontSize: 22, bold: false, color: C.blue,
    align: "center", fontFace: "Calibri", charSpacing: 8,
  });

  s.addText("All Subjects | Weightage | High-Yield Topics | Strategy", {
    x: 0.5, y: 4.1, w: 12.3, h: 0.5,
    fontSize: 14, color: C.muted, align: "center", fontFace: "Calibri",
  });

  // subject pill badges in a row
  const pills = [
    { t: "Medicine", c: C.teal },
    { t: "Surgery", c: C.accent2 },
    { t: "OBG", c: C.pink },
    { t: "Pathology", c: C.purple },
    { t: "PSM", c: C.green },
    { t: "Pharma", c: C.blue },
    { t: "Micro", c: C.yellow },
  ];
  pills.forEach((p, i) => {
    const px = 1.0 + i * 1.6;
    addCard(s, px, 5.1, 1.35, 0.42, p.c, { radius: 0.2 });
    addLabel(s, p.t, px, 5.1, 1.35, 0.42, { fontSize: 9.5, bold: true, color: C.bg });
  });

  s.addText("Exam Year: 2027  |  Questions: 200  |  Duration: 3.5 hrs  |  Marks: +4 / -1", {
    x: 0.5, y: 6.85, w: 12.3, h: 0.4,
    fontSize: 11, color: C.muted, align: "center", fontFace: "Calibri",
  });
})();

// ──────────────────────────────────────────────────────────────────────────────
// SLIDE 2 ── MASTER OVERVIEW MAP (hub-and-spoke)
// ──────────────────────────────────────────────────────────────────────────────
(function overviewSlide() {
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.bg } });

  // slide header
  addCard(s, 0, 0, 13.3, 0.55, C.card1, { radius: 0 });
  addLabel(s, "NEET PG 2027 — Master Overview", 0.3, 0, 12.7, 0.55,
    { fontSize: 16, bold: true, color: C.accent, align: "left" });

  // center hub
  const cx = 6.65, cy = 3.85;
  s.addShape(pres.ShapeType.ellipse, {
    x: cx - 0.9, y: cy - 0.55, w: 1.8, h: 1.1,
    fill: { color: C.accent },
    line: { color: C.accent2, width: 2 },
    shadow: { type: "outer", color: C.accent, blur: 18, offset: 0, angle: 0, opacity: 0.5 },
  });
  addLabel(s, "NEET PG\n2027", cx - 0.9, cy - 0.55, 1.8, 1.1,
    { fontSize: 13, bold: true, color: C.bg });

  // subject nodes around the hub
  const nodes = [
    { label: "MEDICINE\n45-50 Q", x: 9.5,  y: 1.1,  color: C.teal,   bColor: C.card5 },
    { label: "SURGERY\n45 Q",     x: 10.8, y: 3.2,  color: C.accent2,bColor: C.card4 },
    { label: "OBG\n30-35 Q",      x: 9.5,  y: 5.4,  color: C.pink,   bColor: C.card4 },
    { label: "PATHOLOGY\n25 Q",   x: 6.3,  y: 6.0,  color: C.purple, bColor: C.card3 },
    { label: "PSM\n25 Q",         x: 3.6,  y: 5.4,  color: C.green,  bColor: C.card2 },
    { label: "PHARMA\n20 Q",      x: 1.6,  y: 3.2,  color: C.blue,   bColor: C.card5 },
    { label: "MICRO\n20 Q",       x: 3.0,  y: 1.3,  color: C.yellow, bColor: C.card6 },
    { label: "ANATOMY\n15-17 Q",  x: 5.8,  y: 0.7,  color: C.accent, bColor: C.card1 },
  ];

  const nw = 1.65, nh = 0.82;
  nodes.forEach(n => {
    // line from hub to node (center-to-center approx)
    const lx1 = cx, ly1 = cy;
    const lx2 = n.x + nw / 2, ly2 = n.y + nh / 2;
    addLine(s, lx1, ly1, lx2, ly2, n.color, 1.5);

    addCard(s, n.x, n.y, nw, nh, n.bColor, { borderColor: n.color, borderWidth: 2 });
    addLabel(s, n.label, n.x, n.y, nw, nh, { fontSize: 10, bold: true, color: n.color });
  });

  // legend bottom
  addCard(s, 0.3, 6.85, 12.7, 0.48, "1A2A3A", { radius: 0.1 });
  addLabel(s, "Preclinical Trio (Patho + Pharma + Micro): ~65 Q  |  Clinical (Medicine + Surgery + OBG): ~120 Q  |  PSM + SPM: 25 Q  |  Others: ~15 Q",
    0.3, 6.85, 12.7, 0.48, { fontSize: 9.5, color: C.muted });
})();

// ──────────────────────────────────────────────────────────────────────────────
// SLIDE 3 ── MEDICINE & SURGERY
// ──────────────────────────────────────────────────────────────────────────────
(function medicineSlide() {
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.bg } });
  addCard(s, 0, 0, 13.3, 0.52, C.card1, { radius: 0 });
  addLabel(s, "MEDICINE (45-50 Q) & SURGERY (45 Q)", 0.3, 0, 12.7, 0.52,
    { fontSize: 15, bold: true, color: C.accent, align: "left" });

  // ── MEDICINE LEFT PANEL ──
  const medTopics = [
    { sub: "Cardiology",      pts: "ECG, MI, Heart Failure, Valvular Disorders, Arrhythmias", color: C.teal },
    { sub: "Neurology",       pts: "Stroke, Epilepsy, Meningitis, Parkinson, Dementia",       color: C.blue },
    { sub: "Endocrinology",   pts: "Diabetes, Thyroid, Adrenal, Pituitary disorders",         color: C.green },
    { sub: "Rheumatology",    pts: "SLE, RA, Vasculitis, Spondyloarthropathies",              color: C.purple },
    { sub: "Infectious Dis.", pts: "TB, HIV, Malaria, Dengue, Typhoid",                       color: C.yellow },
    { sub: "Gastroenterology",pts: "Liver diseases, IBD, Acute Abdomen, Hepatitis",           color: C.accent },
    { sub: "Pulmonology",     pts: "Asthma, COPD, Pneumonia, ILD, Pleural effusion",         color: C.accent2 },
    { sub: "Nephrology",      pts: "GN, Nephrotic, AKI, CKD, RTA",                           color: C.pink },
  ];

  addCard(s, 0.3, 0.62, 6.0, 0.42, C.teal, { radius: 0.1 });
  addLabel(s, "GENERAL MEDICINE", 0.3, 0.62, 6.0, 0.42, { fontSize: 12, bold: true, color: C.bg });

  medTopics.forEach((t, i) => {
    const row = i;
    const yy = 1.12 + row * 0.72;
    addCard(s, 0.3, yy, 1.3, 0.6, t.color, { radius: 0.1 });
    addLabel(s, t.sub, 0.3, yy, 1.3, 0.6, { fontSize: 8.5, bold: true, color: C.bg });
    addCard(s, 1.7, yy, 4.6, 0.6, C.bgLight, { borderColor: t.color, borderWidth: 1, radius: 0.08 });
    addLabel(s, t.pts, 1.7, yy, 4.6, 0.6, { fontSize: 8, color: C.text, align: "left", margin: 4 });
  });

  // also Dermatology & Psychiatry (under Medicine)
  addCard(s, 0.3, 6.88, 6.0, 0.38, "1E2533", { borderColor: C.teal, borderWidth: 1, radius: 0.08 });
  addLabel(s, "Also: Dermatology (Psoriasis, Pemphigus, SJS)  |  Psychiatry (Schizophrenia, Mood, OCD, Substance abuse)",
    0.3, 6.88, 6.0, 0.38, { fontSize: 7.5, color: C.muted });

  // ── SURGERY RIGHT PANEL ──
  const surgTopics = [
    { sub: "GI Surgery",     pts: "Acute abdomen, Peptic ulcer, Colorectal Ca, Appendix",  color: C.accent2 },
    { sub: "Trauma/ATLS",    pts: "Shock types, ATLS protocol, Fracture management",       color: C.accent },
    { sub: "Breast",         pts: "Breast carcinoma staging, FNAC, Treatment options",     color: C.pink },
    { sub: "Thyroid",        pts: "Goitre, Thyroid nodule, Malignancy types",              color: C.teal },
    { sub: "Hernias",        pts: "Inguinal, Femoral, Hiatal, complications",              color: C.blue },
    { sub: "Urology",        pts: "Renal stones, BPH, Bladder & Prostate Ca",             color: C.green },
    { sub: "Orthopaedics",   pts: "Fractures, Dislocations, OA, Infection (Osteomyelitis)",color: C.yellow },
    { sub: "Anaesthesia",    pts: "GA agents, Spinal/Epidural, Muscle relaxants, ICU",    color: C.purple },
  ];

  addCard(s, 6.8, 0.62, 6.2, 0.42, C.accent2, { radius: 0.1 });
  addLabel(s, "GENERAL SURGERY", 6.8, 0.62, 6.2, 0.42, { fontSize: 12, bold: true, color: C.white });

  surgTopics.forEach((t, i) => {
    const yy = 1.12 + i * 0.72;
    addCard(s, 6.8, yy, 1.4, 0.6, t.color, { radius: 0.1 });
    addLabel(s, t.sub, 6.8, yy, 1.4, 0.6, { fontSize: 8.5, bold: true, color: C.bg });
    addCard(s, 8.3, yy, 4.7, 0.6, C.bgLight, { borderColor: t.color, borderWidth: 1, radius: 0.08 });
    addLabel(s, t.pts, 8.3, yy, 4.7, 0.6, { fontSize: 8, color: C.text, align: "left", margin: 4 });
  });
})();

// ──────────────────────────────────────────────────────────────────────────────
// SLIDE 4 ── OBG + PATHOLOGY
// ──────────────────────────────────────────────────────────────────────────────
(function obgPathoSlide() {
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.bg } });
  addCard(s, 0, 0, 13.3, 0.52, C.card4, { radius: 0 });
  addLabel(s, "OBG (30-35 Q) & PATHOLOGY (25 Q)", 0.3, 0, 12.7, 0.52,
    { fontSize: 15, bold: true, color: C.pink, align: "left" });

  // ── OBG LEFT ──
  const obgTopics = [
    { sub: "Normal Labour",      pts: "Stages, Cardinal movements, Partograph, APGAR",          color: C.pink },
    { sub: "Obstetric Emerg.",   pts: "PPH, Eclampsia, Ectopic, Abruption placenta",            color: C.accent2 },
    { sub: "High Risk Preg.",    pts: "Diabetes in pregnancy, PIH, Rh isoimmunization",         color: C.accent },
    { sub: "Foetal Medicine",    pts: "Biophysical profile, Doppler, Prenatal diagnosis",       color: C.teal },
    { sub: "Gyn Malignancies",  pts: "Cervical Ca (staging, vaccines), Ovarian Ca, Endometrial",color: C.purple },
    { sub: "Infertility",        pts: "Causes, PCOS, IVF, Ovulation induction",                color: C.blue },
    { sub: "Contraception",      pts: "OCP, IUCD, Barrier methods, sterilization",             color: C.green },
    { sub: "Menstrual Disorders",pts: "DUB, Amenorrhea, Dysmenorrhea, Endometriosis",           color: C.yellow },
  ];

  addCard(s, 0.3, 0.62, 6.0, 0.42, C.pink, { radius: 0.1 });
  addLabel(s, "OBSTETRICS & GYNAECOLOGY", 0.3, 0.62, 6.0, 0.42, { fontSize: 11, bold: true, color: C.white });

  obgTopics.forEach((t, i) => {
    const yy = 1.12 + i * 0.72;
    addCard(s, 0.3, yy, 1.5, 0.6, t.color, { radius: 0.1 });
    addLabel(s, t.sub, 0.3, yy, 1.5, 0.6, { fontSize: 7.8, bold: true, color: C.bg });
    addCard(s, 1.9, yy, 4.4, 0.6, C.bgLight, { borderColor: t.color, borderWidth: 1, radius: 0.08 });
    addLabel(s, t.pts, 1.9, yy, 4.4, 0.6, { fontSize: 8, color: C.text, align: "left", margin: 4 });
  });

  // ── PATHOLOGY RIGHT ──
  const pathoTopics = [
    { sub: "General Patho",  pts: "Cell injury, Necrosis, Inflammation, Healing",              color: C.purple },
    { sub: "Neoplasia",      pts: "Tumour markers, Carcinogenesis, Paraneoplastic syndromes",  color: C.accent2 },
    { sub: "Blood",          pts: "Anemias, Leukemias, Lymphomas, Coagulation disorders",     color: C.accent },
    { sub: "CVS/Resp",       pts: "IHD, Cardiomyopathy, Lung Ca, Pneumoconiosis",             color: C.teal },
    { sub: "GIT/Liver",      pts: "Hepatitis, Cirrhosis, Carcinomas, IBD histology",          color: C.green },
    { sub: "Kidney/Repro",   pts: "GN types, RCC, Cervical Ca histo, Gestational trophoblast",color: C.blue },
    { sub: "CNS/Bone",       pts: "Brain tumors (GBM, Meningioma), Bone tumors, Osteoporosis",color: C.yellow },
    { sub: "Special Stains", pts: "PAS, ZN, Congo red, India ink — always asked",             color: C.pink },
  ];

  addCard(s, 6.8, 0.62, 6.2, 0.42, C.purple, { radius: 0.1 });
  addLabel(s, "PATHOLOGY", 6.8, 0.62, 6.2, 0.42, { fontSize: 12, bold: true, color: C.white });

  pathoTopics.forEach((t, i) => {
    const yy = 1.12 + i * 0.72;
    addCard(s, 6.8, yy, 1.4, 0.6, t.color, { radius: 0.1 });
    addLabel(s, t.sub, 6.8, yy, 1.4, 0.6, { fontSize: 8.5, bold: true, color: C.bg });
    addCard(s, 8.3, yy, 4.7, 0.6, C.bgLight, { borderColor: t.color, borderWidth: 1, radius: 0.08 });
    addLabel(s, t.pts, 8.3, yy, 4.7, 0.6, { fontSize: 8, color: C.text, align: "left", margin: 4 });
  });
})();

// ──────────────────────────────────────────────────────────────────────────────
// SLIDE 5 ── PHARMACOLOGY + MICROBIOLOGY + PSM
// ──────────────────────────────────────────────────────────────────────────────
(function pharMicroPSM() {
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.bg } });
  addCard(s, 0, 0, 13.3, 0.52, C.card2, { radius: 0 });
  addLabel(s, "PHARMACOLOGY (20 Q)  |  MICROBIOLOGY (20 Q)  |  PSM / SPM (25 Q)", 0.3, 0, 12.7, 0.52,
    { fontSize: 13, bold: true, color: C.green, align: "left" });

  // ── PHARMACOLOGY (left col) ──
  addCard(s, 0.2, 0.63, 4.1, 0.4, C.blue, { radius: 0.1 });
  addLabel(s, "PHARMACOLOGY", 0.2, 0.63, 4.1, 0.4, { fontSize: 11, bold: true, color: C.bg });

  const pharTopics = [
    { sub: "Antimicrobials",   pts: "MOA, resistance, drug of choice", color: C.blue },
    { sub: "CVS Drugs",        pts: "Anti-HT, anti-anginal, antiarrhythmics, diuretics", color: C.teal },
    { sub: "CNS Drugs",        pts: "Antiepileptics, antipsychotics, antidepressants, anxiolytics", color: C.purple },
    { sub: "Autonomic Pharma", pts: "Adrenergic, cholinergic agonists/antagonists", color: C.green },
    { sub: "Chemotherapy",     pts: "Alkylating agents, antimetabolites, targeted therapy", color: C.accent2 },
    { sub: "NSAIDs/Steroids",  pts: "COX inhibitors, corticosteroids, immunosuppressants", color: C.yellow },
    { sub: "Endocrine Drugs",  pts: "Insulin types, OHAs, thyroid drugs", color: C.accent },
  ];
  pharTopics.forEach((t, i) => {
    const yy = 1.12 + i * 0.75;
    addCard(s, 0.2, yy, 1.25, 0.63, t.color, { radius: 0.09 });
    addLabel(s, t.sub, 0.2, yy, 1.25, 0.63, { fontSize: 7.8, bold: true, color: C.bg });
    addCard(s, 1.55, yy, 2.75, 0.63, C.bgLight, { borderColor: t.color, borderWidth: 1, radius: 0.07 });
    addLabel(s, t.pts, 1.55, yy, 2.75, 0.63, { fontSize: 7.5, color: C.text, align: "left", margin: 3 });
  });

  // ── MICROBIOLOGY (mid col) ──
  addCard(s, 4.7, 0.63, 4.1, 0.4, C.yellow, { radius: 0.1 });
  addLabel(s, "MICROBIOLOGY", 4.7, 0.63, 4.1, 0.4, { fontSize: 11, bold: true, color: C.bg });

  const microTopics = [
    { sub: "Bacteriology",    pts: "Gram stain, Staphylo, Strepto, E. coli, Mycobacterium", color: C.yellow },
    { sub: "Virology",        pts: "HIV structure, Hepatitis viruses, Herpes, Influenza",   color: C.accent2 },
    { sub: "Parasitology",    pts: "Malaria (life cycle), Filaria, Amoebiasis, Taenia",    color: C.green },
    { sub: "Mycology",        pts: "Candida, Aspergillus, Cryptococcus, Ringworm",          color: C.teal },
    { sub: "Immunology",      pts: "Complement, MHC, Hypersensitivity (Type I-IV), Vaccines", color: C.blue },
    { sub: "Lab Diagnostics", pts: "Culture media, Serology, PCR-based tests",             color: C.purple },
    { sub: "Sterilization",   pts: "Autoclaving, EO gas, Disinfectants, Biosafety levels", color: C.pink },
  ];
  microTopics.forEach((t, i) => {
    const yy = 1.12 + i * 0.75;
    addCard(s, 4.7, yy, 1.25, 0.63, t.color, { radius: 0.09 });
    addLabel(s, t.sub, 4.7, yy, 1.25, 0.63, { fontSize: 7.8, bold: true, color: C.bg });
    addCard(s, 6.05, yy, 2.75, 0.63, C.bgLight, { borderColor: t.color, borderWidth: 1, radius: 0.07 });
    addLabel(s, t.pts, 6.05, yy, 2.75, 0.63, { fontSize: 7.5, color: C.text, align: "left", margin: 3 });
  });

  // ── PSM (right col) ──
  addCard(s, 9.2, 0.63, 3.9, 0.4, C.green, { radius: 0.1 });
  addLabel(s, "PSM / SPM / COMMUNITY MED.", 9.2, 0.63, 3.9, 0.4, { fontSize: 10.5, bold: true, color: C.bg });

  const psmTopics = [
    { sub: "Epidemiology",   pts: "Types of studies, Bias, RR, OR, p-value", color: C.green },
    { sub: "Biostatistics",  pts: "Sensitivity, Specificity, PPV, NPV, Normal curve", color: C.teal },
    { sub: "National Progs", pts: "NHM, RNTCP, IDSP, NPCDCS, Immunization schedule", color: C.accent },
    { sub: "Nutrition",      pts: "Protein-calorie deficiency, Vitamin deficiencies, KAP", color: C.yellow },
    { sub: "Water & Env.",   pts: "Water purification, Air pollution, Occupational health", color: C.blue },
    { sub: "MCH",            pts: "ANC, ICDS, School health, IMR, MMR targets", color: C.pink },
    { sub: "Health Planning",pts: "5-year plans legacy, NHP 2017, SDG goals, AYUSHMAN", color: C.purple },
  ];
  psmTopics.forEach((t, i) => {
    const yy = 1.12 + i * 0.75;
    addCard(s, 9.2, yy, 1.2, 0.63, t.color, { radius: 0.09 });
    addLabel(s, t.sub, 9.2, yy, 1.2, 0.63, { fontSize: 7.5, bold: true, color: C.bg });
    addCard(s, 10.5, yy, 2.6, 0.63, C.bgLight, { borderColor: t.color, borderWidth: 1, radius: 0.07 });
    addLabel(s, t.pts, 10.5, yy, 2.6, 0.63, { fontSize: 7.5, color: C.text, align: "left", margin: 3 });
  });
})();

// ──────────────────────────────────────────────────────────────────────────────
// SLIDE 6 ── PRECLINICAL (Anatomy + Physio + Biochem) + Short Subjects
// ──────────────────────────────────────────────────────────────────────────────
(function preClinicalSlide() {
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.bg } });
  addCard(s, 0, 0, 13.3, 0.52, "1A1A3A", { radius: 0 });
  addLabel(s, "PRECLINICALS & SHORT SUBJECTS", 0.3, 0, 12.7, 0.52,
    { fontSize: 15, bold: true, color: C.blue, align: "left" });

  // ── ANATOMY ──
  addCard(s, 0.3, 0.62, 3.8, 0.42, C.accent, { radius: 0.1 });
  addLabel(s, "ANATOMY  (15-17 Q)", 0.3, 0.62, 3.8, 0.42, { fontSize: 11, bold: true, color: C.bg });

  const anatTopics = [
    { sub: "Upper Limb",    pts: "Brachial plexus lesions, Rotator cuff, Carpal tunnel" },
    { sub: "Lower Limb",    pts: "Lumbar plexus, Femoral triangle, Arches of foot" },
    { sub: "Head & Neck",   pts: "Cranial nerves, Parotid gland, Thyroid relations" },
    { sub: "Neuroanatomy",  pts: "Brain stem nuclei, Ventricular system, Thalamic nuclei" },
    { sub: "Thorax/Abdomen",pts: "Heart, Lung root, Portal system, Peritoneal folds" },
    { sub: "Embryology",    pts: "CVS, GIT, Renal, Neural tube defects" },
  ];
  anatTopics.forEach((t, i) => {
    const yy = 1.12 + i * 0.68;
    addCard(s, 0.3, yy, 1.2, 0.58, C.accent, { radius: 0.09 });
    addLabel(s, t.sub, 0.3, yy, 1.2, 0.58, { fontSize: 7.5, bold: true, color: C.bg });
    addCard(s, 1.6, yy, 2.5, 0.58, C.bgLight, { borderColor: C.accent, borderWidth: 1, radius: 0.07 });
    addLabel(s, t.pts, 1.6, yy, 2.5, 0.58, { fontSize: 7.5, color: C.text, align: "left", margin: 3 });
  });

  // ── PHYSIOLOGY ──
  addCard(s, 4.5, 0.62, 3.8, 0.42, C.teal, { radius: 0.1 });
  addLabel(s, "PHYSIOLOGY  (15-17 Q)", 4.5, 0.62, 3.8, 0.42, { fontSize: 11, bold: true, color: C.bg });

  const physTopics = [
    { sub: "Cardiac",       pts: "AP, ECG, Cardiac cycle, Cardiac output, JVP" },
    { sub: "Respiratory",   pts: "Volumes (TV/IRV/ERV/RV), V/Q ratio, Hypoxia types" },
    { sub: "Renal",         pts: "GFR, Tubular functions, RAS, Diuretics physiology" },
    { sub: "Neurophysiology",pts: "Nerve conduction, Reflex arcs, CSF, Special senses" },
    { sub: "Endocrine",     pts: "Feedback loops, Hormone mechanisms, Menstrual cycle" },
    { sub: "GIT Physiology",pts: "Secretions, Motility, Absorption, Enteric NS" },
  ];
  physTopics.forEach((t, i) => {
    const yy = 1.12 + i * 0.68;
    addCard(s, 4.5, yy, 1.2, 0.58, C.teal, { radius: 0.09 });
    addLabel(s, t.sub, 4.5, yy, 1.2, 0.58, { fontSize: 7.5, bold: true, color: C.bg });
    addCard(s, 5.8, yy, 2.5, 0.58, C.bgLight, { borderColor: C.teal, borderWidth: 1, radius: 0.07 });
    addLabel(s, t.pts, 5.8, yy, 2.5, 0.58, { fontSize: 7.5, color: C.text, align: "left", margin: 3 });
  });

  // ── BIOCHEMISTRY ──
  addCard(s, 8.7, 0.62, 4.3, 0.42, C.green, { radius: 0.1 });
  addLabel(s, "BIOCHEMISTRY  (12-15 Q)", 8.7, 0.62, 4.3, 0.42, { fontSize: 11, bold: true, color: C.bg });

  const biochemTopics = [
    { sub: "Carbohydrates", pts: "Glycolysis, TCA cycle, HMP shunt, Glycogen storage" },
    { sub: "Proteins",      pts: "Amino acid disorders, PCU, Alkaptonuria, Enzyme kinetics" },
    { sub: "Lipids",        pts: "Beta oxidation, Cholesterol synthesis, Lipoprotein types" },
    { sub: "Vitamins",      pts: "Cofactors, Deficiency diseases, Fat/water soluble" },
    { sub: "Molecular Bio", pts: "DNA replication, Transcription, Translation, PCR" },
    { sub: "Clinical Biochem",pts: "LFT, RFT, Enzymes in disease (Troponin, LDH, AST)" },
  ];
  biochemTopics.forEach((t, i) => {
    const yy = 1.12 + i * 0.68;
    addCard(s, 8.7, yy, 1.3, 0.58, C.green, { radius: 0.09 });
    addLabel(s, t.sub, 8.7, yy, 1.3, 0.58, { fontSize: 7.5, bold: true, color: C.bg });
    addCard(s, 10.1, yy, 2.9, 0.58, C.bgLight, { borderColor: C.green, borderWidth: 1, radius: 0.07 });
    addLabel(s, t.pts, 10.1, yy, 2.9, 0.58, { fontSize: 7.5, color: C.text, align: "left", margin: 3 });
  });

  // short subjects row at bottom
  addCard(s, 0.3, 5.3, 12.7, 0.38, "1E2533", { borderColor: C.muted, borderWidth: 1, radius: 0.1 });
  addLabel(s, "SHORT SUBJECTS: Forensic Med (10 Q) — Thanatology, Sexual offences, Medico-legal  |  Radiology (5-8 Q) — CXR, CT patterns, MRI indications  |  Ophthalmology (10 Q) — Glaucoma, Retina, Cataract",
    0.3, 5.3, 12.7, 0.38, { fontSize: 8.5, color: C.muted });

  // Ortho + ENT micro-cards
  const shortSubjs = [
    { label: "ENT\n8-10 Q",        pts: "Otitis media, HL, Laryngeal Ca, Epistaxis",                  color: C.blue },
    { label: "Radiology\n5-8 Q",   pts: "CXR, CT abdomen, MRI spine, IVP, USG",                      color: C.accent },
    { label: "Ophthalmology\n10 Q", pts: "Cataract, Glaucoma, Retinopathy, Trachoma",                 color: C.teal },
    { label: "Forensic Med\n10 Q",  pts: "Medico-legal, Poisoning, Death estimation, Sex offences",   color: C.purple },
  ];
  shortSubjs.forEach((ss, i) => {
    const sx = 0.3 + i * 3.2;
    addCard(s, sx, 5.82, 3.0, 1.42, C.card1, { borderColor: ss.color, borderWidth: 1.5, radius: 0.1 });
    addCard(s, sx, 5.82, 3.0, 0.42, ss.color, { radius: 0.1 });
    addLabel(s, ss.label, sx, 5.82, 3.0, 0.42, { fontSize: 9.5, bold: true, color: C.bg });
    addLabel(s, ss.pts, sx, 6.26, 3.0, 0.98, { fontSize: 8, color: C.text, margin: 5 });
  });
})();

// ──────────────────────────────────────────────────────────────────────────────
// SLIDE 7 ── EXAM STRATEGY & STUDY PLAN
// ──────────────────────────────────────────────────────────────────────────────
(function strategySlide() {
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.bg } });
  addCard(s, 0, 0, 13.3, 0.52, "2A1A0A", { radius: 0 });
  addLabel(s, "NEET PG 2027 — EXAM STRATEGY & STUDY PLAN", 0.3, 0, 12.7, 0.52,
    { fontSize: 14, bold: true, color: C.accent, align: "left" });

  // WEIGHTAGE PRIORITY TABLE
  addCard(s, 0.3, 0.65, 5.9, 0.42, "2A1F0A", { radius: 0.1 });
  addLabel(s, "SUBJECT WEIGHTAGE PRIORITY", 0.3, 0.65, 5.9, 0.42, { fontSize: 11, bold: true, color: C.accent });

  const weights = [
    { subj: "General Medicine + Derm + Psych", q: "45-50", pri: "MUST", color: C.teal },
    { subj: "General Surgery + Ortho + Anaesth", q: "45",   pri: "MUST", color: C.accent2 },
    { subj: "OBG",                              q: "30-35", pri: "HIGH", color: C.pink },
    { subj: "Pathology",                        q: "25",    pri: "HIGH", color: C.purple },
    { subj: "PSM / SPM",                        q: "25",    pri: "HIGH", color: C.green },
    { subj: "Pharmacology",                     q: "20",    pri: "HIGH", color: C.blue },
    { subj: "Microbiology",                     q: "20",    pri: "HIGH", color: C.yellow },
    { subj: "Physiology",                       q: "15-17", pri: "MOD",  color: C.accent },
    { subj: "Anatomy",                          q: "15-17", pri: "MOD",  color: C.accent },
    { subj: "Biochemistry",                     q: "12-15", pri: "MOD",  color: C.teal },
    { subj: "Ophthalmology",                    q: "10",    pri: "LOW",  color: C.muted },
    { subj: "Forensic Medicine",                q: "10",    pri: "LOW",  color: C.muted },
  ];
  weights.forEach((w, i) => {
    const yy = 1.15 + i * 0.45;
    const priBg = w.pri === "MUST" ? C.accent2 : w.pri === "HIGH" ? C.teal : w.pri === "MOD" ? C.blue : "445566";
    addCard(s, 0.3, yy, 3.7, 0.38, C.bgLight, { borderColor: w.color, borderWidth: 1, radius: 0.06 });
    addLabel(s, w.subj, 0.3, yy, 3.7, 0.38, { fontSize: 8, color: C.text, align: "left", margin: 5 });
    addCard(s, 4.1, yy, 0.5, 0.38, C.bgLight, { borderColor: w.color, borderWidth: 1, radius: 0.06 });
    addLabel(s, w.q, 4.1, yy, 0.5, 0.38, { fontSize: 7.5, color: C.text });
    addCard(s, 4.7, yy, 0.8, 0.38, priBg, { radius: 0.06 });
    addLabel(s, w.pri, 4.7, yy, 0.8, 0.38, { fontSize: 7.5, bold: true, color: C.white });
  });

  // STUDY PLAN CARDS
  addCard(s, 6.6, 0.65, 6.4, 0.42, "0A2A1A", { radius: 0.1 });
  addLabel(s, "SMART STUDY PLAN (18-Month Countdown)", 6.6, 0.65, 6.4, 0.42,
    { fontSize: 10.5, bold: true, color: C.green });

  const phases = [
    {
      phase: "Phase 1 — Foundation (Now – Mar 2026)",
      color: C.teal,
      steps: ["Complete all pre-clinical subjects (Anatomy, Physio, Biochem)", "Start Pathology & Micro in parallel", "Read standard textbooks — do NOT skip basics", "Maintain short notes from day 1"],
    },
    {
      phase: "Phase 2 — Core Clinical (Apr – Sep 2026)",
      color: C.accent2,
      steps: ["Medicine, Surgery, OBG — complete with PYQs", "Pharmacology alongside Medicine topics", "PSM — full coverage with biostatistics", "Solve 50-100 MCQs daily per subject"],
    },
    {
      phase: "Phase 3 — High-Yield Revision (Oct 2026 – Jan 2027)",
      color: C.purple,
      steps: ["3-4 full revisions of all subjects", "Focus on tables, diagrams, one-liners", "Short subjects in 2-3 week cycles", "Mock tests every week — analyze errors"],
    },
    {
      phase: "Phase 4 — Final Sprint (Feb – Exam Day 2027)",
      color: C.accent,
      steps: ["PYQs — last 10 years minimum", "Image-based Q practice daily", "Rapid recall tables only", "Timing practice: 200 Q in 3.5 hours"],
    },
  ];
  phases.forEach((p, i) => {
    const yy = 1.18 + i * 1.52;
    addCard(s, 6.6, yy, 6.4, 0.4, p.color, { radius: 0.09 });
    addLabel(s, p.phase, 6.6, yy, 6.4, 0.4, { fontSize: 8.5, bold: true, color: C.bg });
    addCard(s, 6.6, yy + 0.42, 6.4, 0.97, C.bgLight, { borderColor: p.color, borderWidth: 1, radius: 0.08 });
    const bulletText = p.steps.map((st, si) => ({
      text: "• " + st + (si < p.steps.length - 1 ? "\n" : ""),
      options: {},
    }));
    s.addText(bulletText, {
      x: 6.65, y: yy + 0.44, w: 6.3, h: 0.93,
      fontSize: 7.5, color: C.text, fontFace: "Calibri", align: "left", valign: "top",
    });
  });

  // TIPS ROW
  const tips = [
    { t: "Stick to ONE source", icon: "✔" },
    { t: "PYQs are GOLD — 7+ years", icon: "✔" },
    { t: "3-4x revision beats first-time study", icon: "✔" },
    { t: "Case-based Qs are rising trend", icon: "✔" },
    { t: "Avoid rare topics near exam", icon: "✔" },
    { t: "Image-based Qs — separate folder", icon: "✔" },
  ];
  addCard(s, 0.3, 6.72, 12.7, 0.52, "1A1A2A", { borderColor: C.accent, borderWidth: 1.5, radius: 0.1 });
  addLabel(s, "PRO TIPS: ", 0.4, 6.72, 1.0, 0.52, { fontSize: 9, bold: true, color: C.accent, align: "left", margin: 5 });
  tips.forEach((tip, i) => {
    const tx = 1.3 + i * 1.98;
    addLabel(s, tip.icon + " " + tip.t, tx, 6.72, 1.9, 0.52, { fontSize: 7.8, color: C.green, align: "left", margin: 4 });
  });
})();

// ──────────────────────────────────────────────────────────────────────────────
// WRITE FILE
// ──────────────────────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/neet-pg-2027/NEET_PG_2027_MindMap.pptx" })
  .then(() => console.log("✅ PPTX written successfully"))
  .catch(e => { console.error("❌ Error:", e); process.exit(1); });
Running Command

cd /home/daytona/workspace/neet-pg-2027 && node mindmap.js 2>&1

Running Command

ls -lh /home/daytona/workspace/neet-pg-2027/NEET_PG_2027_MindMap.pptx

Your NEET PG 2027 Mind Map PowerPoint is ready! Here's the download link:

NEET PG 2027 MindMap

Presentation · PPTX


What's inside (7 slides, dark-navy theme with color-coded subjects):
SlideContent
1Title Slide - Exam overview, subject pill badges, exam pattern
2Master Overview Map - Hub-and-spoke diagram with all subjects + question counts
3Medicine & Surgery - 8 sub-topics each with key areas listed
4OBG & Pathology - Labour, emergencies, malignancies + histopathology, stains
5Pharmacology + Microbiology + PSM - Three-column layout, all major topics
6Preclinicals (Anatomy + Physio + Biochem) + Short Subjects - Plus ENT, Ophtha, Forensic, Radiology
7Exam Strategy - Full subject weightage priority table + 4-phase 18-month study plan + Pro Tips
Color coding by subject - Medicine (teal), Surgery (coral), OBG (pink), Pathology (purple), PSM (green), Pharma (blue), Micro (yellow), Anatomy/Biochem (amber). Each subject's high-yield topics are mapped out with key subtopics right beside them for quick scanning.
This is a shared conversation. Sign in to Orris to start your own chat.