attachment
attachment

Explain guiding principles in simple and memorised language

Here are the Guiding Principles of SBM (Gramin) 2.0 explained in simple, easy-to-remember language:

🧭 Guiding Principles of SBM Gramin 2.0 β€” Simple Memory Guide

Think of the mnemonic: "No Community Uses Promoted Convergence, Self-Operated, Encouraging Flexible Clusters near Ganga"

1. πŸ™‹ No One Left Behind

Every village, every person counts. Leave no village or household out of the sanitation mission.

2. 🏘️ Community Assets for SLWM Prioritized

Build for the community, not just one house. Waste management assets should benefit the whole village.

3. ♻️ Use Existing SLWM Infrastructure Where Possible

Don't rebuild what already works. Reuse old infrastructure to save money and time.

4. πŸ”„ Promote Reuse in SLWM

Waste is a resource, not a problem. Turn waste into compost, biogas, or reusable material.

5. 🀝 Converge with Other Schemes

Don't work alone β€” team up with other government programs. Link SBM with MGNREGS, JJM, PMGSY, etc.

6. πŸ’° Self-Sustained Revenue Models

Make sanitation self-funding. Villages should earn from waste (e.g., selling compost) to sustain operations.

7. πŸ”§ Operation & Maintenance Mandatory

Build it AND maintain it. Creating a toilet or waste unit is only the beginning - upkeep is compulsory.

8. πŸ’‘ Encourage Low-Cost, Low-Maintenance Technologies

Simple solutions that last. Use technologies that are affordable and easy for villagers to run.

9. πŸ—ΊοΈ Flexibility to States

One size doesn't fit all. States can adapt plans to local conditions, culture, and geography.

10. 🏘️ Clustering of Villages for Efficiency

Small villages, big teamwork. Group nearby villages together to share waste management facilities.

11. 🌊 Priority to Villages near Ganga & Other Water Bodies

Protect the rivers first. Villages near rivers get top priority to prevent water pollution.

🧠 Quick Memory Trick

#KeywordOne-liner
1No one leftInclude everyone
2Community assetsBuild for all
3Use existingDon't rebuild
4Promote reuseWaste = resource
5ConvergeTeam up with schemes
6Self-sustainedEarn from waste
7O&M mandatoryMaintain what you build
8Low-cost techSimple & affordable
9FlexibilityStates can adapt
10ClusteringVillages together
11Ganga prioritySave the rivers

Total: 11 principles - all focused on making rural sanitation inclusive, sustainable, and practical under SBM 2.0.

Give me good understandable memorizable and easy language notes on niti aayog for 15 marks for community medicine md professional exam in pdf bold headings and subheadings

Searching the Web

NITI Aayog structure functions health policy community medicine MD exam notes

Searching the Web

NITI Aayog replaced Planning Commission India composition vision mission 2025

Reading Web Page

https://vajiramandravi.com/upsc-exam/niti-aayog

Reading File
Running Command

mkdir -p /home/daytona/workspace/niti-aayog-notes && ls /home/daytona/workspace/…

Writing File

~/niti-aayog-notes/create_pdf.py

from reportlab.lib.pagesizes import A4
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm
from reportlab.lib.colors import HexColor, black, white
from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Table,
                                 TableStyle, HRFlowable, KeepTogether)
from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_JUSTIFY
from reportlab.platypus import PageBreak

# ── colour palette ──────────────────────────────────────────────────────────
DARK_BLUE   = HexColor("#1a3a5c")
MED_BLUE    = HexColor("#2c6fad")
LIGHT_BLUE  = HexColor("#dbeafe")
ACCENT      = HexColor("#0ea5e9")
GREEN       = HexColor("#166534")
LIGHT_GREEN = HexColor("#dcfce7")
ORANGE      = HexColor("#c2410c")
LIGHT_ORG   = HexColor("#ffedd5")
GREY_BG     = HexColor("#f1f5f9")
DARK_TEXT   = HexColor("#1e293b")
MID_TEXT    = HexColor("#334155")

# ── document ────────────────────────────────────────────────────────────────
doc = SimpleDocTemplate(
    "/home/daytona/workspace/niti-aayog-notes/NITI_Aayog_Notes.pdf",
    pagesize=A4,
    rightMargin=1.8*cm, leftMargin=1.8*cm,
    topMargin=2*cm,     bottomMargin=2*cm,
)

styles = getSampleStyleSheet()

# ── custom paragraph styles ─────────────────────────────────────────────────
def S(name, parent="Normal", **kw):
    return ParagraphStyle(name, parent=styles[parent], **kw)

title_style = S("MyTitle", fontSize=20, textColor=white,
                fontName="Helvetica-Bold", alignment=TA_CENTER,
                spaceAfter=4, spaceBefore=4)

subtitle_style = S("MySub", fontSize=11, textColor=LIGHT_BLUE,
                   fontName="Helvetica-Oblique", alignment=TA_CENTER,
                   spaceAfter=2)

h1 = S("H1", fontSize=13, textColor=white,
       fontName="Helvetica-Bold", spaceBefore=10, spaceAfter=4,
       leftIndent=0)

h2 = S("H2", fontSize=11, textColor=DARK_BLUE,
       fontName="Helvetica-Bold", spaceBefore=8, spaceAfter=3,
       leftIndent=0)

h3 = S("H3", fontSize=10, textColor=MED_BLUE,
       fontName="Helvetica-Bold", spaceBefore=5, spaceAfter=2,
       leftIndent=4)

body = S("Body", fontSize=9.5, textColor=DARK_TEXT,
         fontName="Helvetica", leading=15, spaceAfter=3,
         leftIndent=8, alignment=TA_JUSTIFY)

bullet = S("Bullet", fontSize=9.5, textColor=DARK_TEXT,
           fontName="Helvetica", leading=14, spaceAfter=2,
           leftIndent=16, bulletIndent=6)

bold_bullet = S("BoldBullet", fontSize=9.5, textColor=DARK_TEXT,
                fontName="Helvetica-Bold", leading=14, spaceAfter=2,
                leftIndent=16, bulletIndent=6)

mem_style = S("Mem", fontSize=9, textColor=GREEN,
              fontName="Helvetica-Oblique", leading=13,
              leftIndent=10, spaceAfter=2)

highlight = S("Highlight", fontSize=9.5, textColor=ORANGE,
              fontName="Helvetica-Bold", leading=14,
              leftIndent=10, spaceAfter=2)

footer_s = S("Footer", fontSize=8, textColor=HexColor("#64748b"),
             alignment=TA_CENTER)


# ── helper: section header banner ───────────────────────────────────────────
def section_header(text, color=DARK_BLUE):
    data = [[Paragraph(text, h1)]]
    t = Table(data, colWidths=[doc.width])
    t.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), color),
        ("TOPPADDING",    (0,0), (-1,-1), 6),
        ("BOTTOMPADDING", (0,0), (-1,-1), 6),
        ("LEFTPADDING",   (0,0), (-1,-1), 10),
        ("ROUNDEDCORNERS", [4]),
    ]))
    return t


def box(paragraphs, bg=LIGHT_BLUE, border=MED_BLUE):
    data = [[p] for p in paragraphs]
    t = Table(data, colWidths=[doc.width])
    t.setStyle(TableStyle([
        ("BACKGROUND",    (0,0), (-1,-1), bg),
        ("TOPPADDING",    (0,0), (-1,-1), 4),
        ("BOTTOMPADDING", (0,0), (-1,-1), 4),
        ("LEFTPADDING",   (0,0), (-1,-1), 10),
        ("RIGHTPADDING",  (0,0), (-1,-1), 10),
        ("BOX",           (0,0), (-1,-1), 1, border),
        ("ROUNDEDCORNERS", [4]),
    ]))
    return t


def two_col_table(rows, col1=9*cm, col2=None):
    col2 = col2 or (doc.width - col1)
    t = Table(rows, colWidths=[col1, col2])
    t.setStyle(TableStyle([
        ("BACKGROUND",    (0,0), (0,-1), LIGHT_BLUE),
        ("BACKGROUND",    (1,0), (1,-1), white),
        ("FONTNAME",      (0,0), (0,-1), "Helvetica-Bold"),
        ("FONTNAME",      (1,0), (1,-1), "Helvetica"),
        ("FONTSIZE",      (0,0), (-1,-1), 9),
        ("TEXTCOLOR",     (0,0), (-1,-1), DARK_TEXT),
        ("TOPPADDING",    (0,0), (-1,-1), 5),
        ("BOTTOMPADDING", (0,0), (-1,-1), 5),
        ("LEFTPADDING",   (0,0), (-1,-1), 8),
        ("GRID",          (0,0), (-1,-1), 0.5, HexColor("#cbd5e1")),
        ("ROWBACKGROUNDS",(0,0),(-1,-1), [GREY_BG, white]),
        ("VALIGN",        (0,0), (-1,-1), "TOP"),
    ]))
    return t


# ════════════════════════════════════════════════════════════════════════════
#  BUILD STORY
# ════════════════════════════════════════════════════════════════════════════
story = []

# ── TITLE BANNER ─────────────────────────────────────────────────────────
title_data = [[
    Paragraph("NITI AAYOG", title_style),
    Paragraph("National Institution for Transforming India", subtitle_style),
    Paragraph("Community Medicine β€” MD Professional Exam Notes (15 Marks)", subtitle_style),
]]
title_table = Table(title_data, colWidths=[doc.width])
title_table.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,-1), DARK_BLUE),
    ("TOPPADDING",    (0,0), (-1,-1), 14),
    ("BOTTOMPADDING", (0,0), (-1,-1), 14),
    ("LEFTPADDING",   (0,0), (-1,-1), 14),
    ("ROUNDEDCORNERS", [6]),
]))
story.append(title_table)
story.append(Spacer(1, 10))

# ── QUICK SNAPSHOT BOX ───────────────────────────────────────────────────
story.append(box([
    Paragraph("<b>Quick Snapshot (Remember These First!)</b>", h2),
    Paragraph("β€’ Full form: <b>National Institution for Transforming India</b>", bullet),
    Paragraph("β€’ Established: <b>1 January 2015</b> by Cabinet Resolution", bullet),
    Paragraph("β€’ Replaced: <b>Planning Commission</b> (est. 1950, dissolved Aug 2014)", bullet),
    Paragraph("β€’ Chairperson: <b>Prime Minister of India</b> (ex-officio)", bullet),
    Paragraph("β€’ Nature: <b>Advisory Think Tank</b> β€” <i>NO power to allocate funds</i>", bullet),
    Paragraph("β€’ Approach: <b>Bottom-Up</b> (vs Top-Down of Planning Commission)", bullet),
    Paragraph("β€’ Headquarters: <b>New Delhi</b>", bullet),
], bg=LIGHT_BLUE, border=MED_BLUE))
story.append(Spacer(1, 8))

# ── 1. BACKGROUND / HISTORY ──────────────────────────────────────────────
story.append(section_header("1.  BACKGROUND AND HISTORY"))
story.append(Spacer(1, 4))

story.append(Paragraph("<b>Why was Planning Commission dissolved?</b>", h2))
rows = [
    [Paragraph("<b>Feature</b>", body), Paragraph("<b>Planning Commission (OLD)</b>", body),
     Paragraph("<b>NITI Aayog (NEW)</b>", body)],
    ["Established", "1950 (Nehru era)", "1 Jan 2015"],
    ["Approach", "Top-Down (Centre decides)", "Bottom-Up (States participate)"],
    ["Fund Allocation", "YES β€” could allocate funds", "NO β€” advisory only"],
    ["Nature", "Centralized planning", "Cooperative federalism"],
    ["Five Year Plans", "YES", "NO (replaced by 3/7/15-yr vision docs)"],
    ["State Role", "Passive recipients", "Active co-creators"],
    ["Focus", "Socialist planning model", "Market + SDGs + Innovation"],
]
col_w = [doc.width/3, doc.width/3, doc.width/3]
comp_table = Table(rows, colWidths=col_w)
comp_table.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,0), DARK_BLUE),
    ("TEXTCOLOR",     (0,0), (-1,0), white),
    ("FONTNAME",      (0,0), (-1,0), "Helvetica-Bold"),
    ("FONTSIZE",      (0,0), (-1,-1), 8.5),
    ("TEXTCOLOR",     (0,1), (-1,-1), DARK_TEXT),
    ("ROWBACKGROUNDS",(0,1),(-1,-1), [GREY_BG, white]),
    ("GRID",          (0,0), (-1,-1), 0.5, HexColor("#cbd5e1")),
    ("TOPPADDING",    (0,0), (-1,-1), 5),
    ("BOTTOMPADDING", (0,0), (-1,-1), 5),
    ("LEFTPADDING",   (0,0), (-1,-1), 6),
    ("VALIGN",        (0,0), (-1,-1), "MIDDLE"),
    ("FONTNAME",      (0,1), (0,-1), "Helvetica-Bold"),
    ("BACKGROUND",    (0,1), (0,-1), LIGHT_BLUE),
]))
story.append(comp_table)
story.append(Spacer(1, 6))

story.append(box([
    Paragraph("🧠 <b>Memory Trick:</b> Planning Commission = <b>OLD BOSS</b> (gave orders & money from top). "
              "NITI Aayog = <b>SMART ADVISOR</b> (gives ideas, no money, works with states).", mem_style),
], bg=LIGHT_GREEN, border=HexColor("#86efac")))
story.append(Spacer(1, 8))

# ── 2. FULL FORM & MEANING ───────────────────────────────────────────────
story.append(section_header("2.  COMPOSITION (WHO SITS IN NITI AAYOG?)", color=MED_BLUE))
story.append(Spacer(1, 4))

comp_rows = [
    [Paragraph("<b>Member</b>", body), Paragraph("<b>Who / Details</b>", body)],
    ["Chairperson", "Prime Minister of India (ex-officio)"],
    ["Vice Chairperson", "Appointed by PM (currently Ashok Lahiri)"],
    ["Governing Council", "Chief Ministers of ALL States + Lt. Governors of UTs"],
    ["Full-Time Members", "Domain experts (health, economy, science, etc.)"],
    ["Part-Time Members", "2 β€” from universities/research institutions (ex-officio)"],
    ["Ex-Officio Members", "4 Union Cabinet Ministers (e.g., Home, Finance, Defence)"],
    ["Special Invitees", "Ministers nominated by PM (Gadkari, Goyal, Vaishnaw, etc.)"],
    ["CEO", "Secretary-rank officer (currently B.V.R. Subrahmanyam)"],
    ["Secretariat", "Supports day-to-day operations"],
]
story.append(two_col_table(comp_rows, col1=6*cm))
story.append(Spacer(1, 6))

story.append(box([
    Paragraph("🧠 <b>Mnemonic β€” CPFPECS:</b> <b>C</b>hairperson (PM) β†’ <b>P</b>art-time β†’ <b>F</b>ull-time β†’ "
              "<b>P</b>art-time β†’ <b>E</b>x-officio β†’ <b>C</b>EO β†’ <b>S</b>ecretariat", mem_style),
], bg=LIGHT_GREEN, border=HexColor("#86efac")))
story.append(Spacer(1, 8))

# ── 3. OBJECTIVES ────────────────────────────────────────────────────────
story.append(section_header("3.  OBJECTIVES OF NITI AAYOG", color=HexColor("#1d4ed8")))
story.append(Spacer(1, 4))

story.append(Paragraph("<b>Core Objectives (Easy Language):</b>", h2))
objectives = [
    ("1", "Shared National Vision", "Create a common development plan WITH states, not for them"),
    ("2", "Cooperative Federalism",  "Make Centre-State partnership real β€” 'Strong States = Strong Nation'"),
    ("3", "Village-Level Planning",  "Build plans from village up, then aggregate to district β†’ state β†’ national"),
    ("4", "Bottom-Up Approach",      "States give input; Centre listens β€” opposite of old model"),
    ("5", "Inclusive Growth",        "No section left behind β€” women, SC/ST, disabled, poor included"),
    ("6", "SDG Monitoring",          "Track India's progress on UN Sustainable Development Goals"),
    ("7", "Policy Think Tank",       "Give strategic, technical advice to Centre AND States"),
    ("8", "Innovation Hub",          "Support startups, research, new technology (Atal Innovation Mission)"),
    ("9", "Inter-ministry Coordination", "Stop departments working in silos; coordinate policy"),
    ("10","Technology & Data",       "Use evidence-based, data-driven policymaking"),
]
obj_rows = [[Paragraph(f"<b>{n}</b>", body), Paragraph(f"<b>{k}</b>", body),
             Paragraph(v, body)] for n,k,v in objectives]
obj_table = Table(obj_rows, colWidths=[0.8*cm, 5.2*cm, doc.width-6*cm])
obj_table.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (0,-1), DARK_BLUE),
    ("TEXTCOLOR",     (0,0), (0,-1), white),
    ("BACKGROUND",    (1,0), (1,-1), LIGHT_BLUE),
    ("FONTNAME",      (1,0), (1,-1), "Helvetica-Bold"),
    ("FONTSIZE",      (0,0), (-1,-1), 8.5),
    ("TEXTCOLOR",     (1,0), (-1,-1), DARK_TEXT),
    ("ROWBACKGROUNDS",(2,0),(-1,-1), [GREY_BG, white]),  # won't apply easily but base
    ("GRID",          (0,0), (-1,-1), 0.5, HexColor("#cbd5e1")),
    ("TOPPADDING",    (0,0), (-1,-1), 5),
    ("BOTTOMPADDING", (0,0), (-1,-1), 5),
    ("LEFTPADDING",   (0,0), (-1,-1), 6),
    ("VALIGN",        (0,0), (-1,-1), "TOP"),
]))
story.append(obj_table)
story.append(Spacer(1, 8))

# ── 4. FUNCTIONS ─────────────────────────────────────────────────────────
story.append(section_header("4.  FUNCTIONS OF NITI AAYOG", color=HexColor("#065f46")))
story.append(Spacer(1, 4))

story.append(Paragraph("<b>NITI Aayog functions under 4 main categories:</b>", h2))
story.append(Spacer(1, 4))

func_data = [
    ["Fostering Cooperative Federalism",
     "Research & Knowledge Hub",
     "Designing Policies & Programmes",
     "Monitoring & Evaluation"],
    ["β€’ Include all CMs in Governing Council\nβ€’ Tailor solutions to each state\n"
     "β€’ Support NE states & aspirational districts",
     "β€’ National/international knowledge partnerships\n"
     "β€’ Maintain domain expertise in 30+ sectors\nβ€’ Innovation via Atal Innovation Mission",
     "β€’ 15-year vision, 7-year strategy, 3-year action plan\n"
     "β€’ Replace Five Year Plans\nβ€’ Health, education, agriculture policies",
     "β€’ DMEO (Development Monitoring & Evaluation Org)\n"
     "β€’ SDG India Index\nβ€’ Aspirational Districts Programme tracking"],
]
func_table = Table(func_data, colWidths=[doc.width/4]*4)
func_table.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,0), MED_BLUE),
    ("TEXTCOLOR",     (0,0), (-1,0), white),
    ("FONTNAME",      (0,0), (-1,0), "Helvetica-Bold"),
    ("FONTSIZE",      (0,0), (-1,-1), 8),
    ("TEXTCOLOR",     (0,1), (-1,-1), DARK_TEXT),
    ("BACKGROUND",    (0,1), (0,1), GREY_BG),
    ("GRID",          (0,0), (-1,-1), 0.5, HexColor("#cbd5e1")),
    ("TOPPADDING",    (0,0), (-1,-1), 6),
    ("BOTTOMPADDING", (0,0), (-1,-1), 6),
    ("LEFTPADDING",   (0,0), (-1,-1), 5),
    ("VALIGN",        (0,0), (-1,-1), "TOP"),
]))
story.append(func_table)
story.append(Spacer(1, 6))

story.append(Paragraph("<b>Additional Advisory Functions:</b>", h2))
add_funcs = [
    "✦ Act as <b>internal consultant</b> to ministries on policy & programmes",
    "✦ Provide <b>PPP (Public-Private Partnership)</b> advisory to states",
    "✦ Resolve <b>inter-ministry disputes</b> on overlapping schemes",
    "✦ <b>Atal Innovation Mission (AIM)</b> β€” promote innovation & entrepreneurship",
    "✦ Prepare <b>Annual Report</b> to Parliament via PM",
    "✦ <b>Aspirational Districts Programme</b> β€” uplift 112 most backward districts",
]
for f in add_funcs:
    story.append(Paragraph(f, bullet))
story.append(Spacer(1, 8))

# ── 5. THREE PLANNING DOCUMENTS ─────────────────────────────────────────
story.append(section_header("5.  STRATEGIC PLANNING DOCUMENTS (Replaced Five Year Plans)", color=ORANGE))
story.append(Spacer(1, 4))

plan_rows = [
    [Paragraph("<b>Document</b>", body), Paragraph("<b>Duration</b>", body),
     Paragraph("<b>Purpose</b>", body), Paragraph("<b>Example</b>", body)],
    ["Vision Document", "15 Years", "Long-term aspirational goals for India",
     "India @75 / Vision 2031-32"],
    ["Strategy Document", "7 Years", "Sector-wise medium-term strategy",
     "Strategy for New India @ 75"],
    ["Action Agenda", "3 Years", "Short-term, actionable policy agenda",
     "3-Year Action Agenda (2017-20)"],
]
plan_table = Table(plan_rows, colWidths=[3.5*cm, 2.5*cm, 6*cm, doc.width-12*cm])
plan_table.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,0), ORANGE),
    ("TEXTCOLOR",     (0,0), (-1,0), white),
    ("FONTNAME",      (0,0), (-1,0), "Helvetica-Bold"),
    ("FONTSIZE",      (0,0), (-1,-1), 8.5),
    ("TEXTCOLOR",     (0,1), (-1,-1), DARK_TEXT),
    ("ROWBACKGROUNDS",(0,1),(-1,-1), [LIGHT_ORG, white]),
    ("GRID",          (0,0), (-1,-1), 0.5, HexColor("#fed7aa")),
    ("TOPPADDING",    (0,0), (-1,-1), 5),
    ("BOTTOMPADDING", (0,0), (-1,-1), 5),
    ("LEFTPADDING",   (0,0), (-1,-1), 6),
    ("VALIGN",        (0,0), (-1,-1), "TOP"),
]))
story.append(plan_table)
story.append(Spacer(1, 4))
story.append(box([
    Paragraph("🧠 <b>Memory:</b> NITI Aayog works in <b>15-7-3</b> β€” like a bus timetable: "
              "See where you want to go (15 yr), plan your route (7 yr), book your ticket (3 yr).", mem_style),
], bg=LIGHT_GREEN, border=HexColor("#86efac")))
story.append(Spacer(1, 8))

# ── 6. HEALTH-RELATED ROLE (KEY FOR COMMUNITY MEDICINE) ──────────────────
story.append(section_header("6.  NITI AAYOG'S ROLE IN HEALTH (Community Medicine Focus)", color=HexColor("#7e22ce")))
story.append(Spacer(1, 4))

story.append(box([
    Paragraph("<b>βš• This section is MOST important for your MD Community Medicine exam!</b>", highlight),
], bg=LIGHT_ORG, border=ORANGE))
story.append(Spacer(1, 4))

health_items = [
    ("<b>National Health Policy 2017</b>",
     "NITI Aayog provided advisory support; aims for UHC β€” Universal Health Coverage"),
    ("<b>Health & Nutrition Vision</b>",
     "Part of 15-year vision document; targets include reducing MMR, IMR, malnutrition"),
    ("<b>SDG Health Targets</b>",
     "Monitors SDG 3 (Good Health & Well-Being) β€” NMR, U5MR, TB, malaria, HIV, NCD targets"),
    ("<b>Ayushman Bharat</b>",
     "NITI Aayog advised on PM-JAY design β€” health coverage for 50 crore poor people"),
    ("<b>Aspirational Districts</b>",
     "112 districts targeted β€” focus on health, nutrition, education; monthly monitoring by NITI Aayog"),
    ("<b>Health Index</b>",
     "Annual 'Healthy States, Progressive India' report ranks states on 24 health indicators"),
    ("<b>Mental Health Policy</b>",
     "Advisory role in National Mental Health Policy framework"),
    ("<b>COVID-19 Response</b>",
     "NITI Aayog formed expert group for vaccine strategy & healthcare infrastructure recommendations"),
    ("<b>Digital Health</b>",
     "Supported Ayushman Bharat Digital Mission (ABDM) β€” Health ID, PHR, telemedicine"),
    ("<b>Nutrition β€” POSHAN Abhiyaan</b>",
     "Monitored nutrition mission outcomes; target to reduce stunting, wasting, anaemia by 2022"),
]
health_rows = [[Paragraph(k, body), Paragraph(v, body)] for k,v in health_items]
story.append(two_col_table(health_rows, col1=5.5*cm))
story.append(Spacer(1, 8))

# ── 7. KEY INITIATIVES ───────────────────────────────────────────────────
story.append(section_header("7.  KEY INITIATIVES OF NITI AAYOG", color=HexColor("#b45309")))
story.append(Spacer(1, 4))

init_items = [
    ("Atal Innovation Mission (AIM)",
     "Promotes innovation culture; Atal Tinkering Labs in schools; incubators in colleges"),
    ("Aspirational Districts Programme",
     "112 most underdeveloped districts; monthly competition on delta ranking; health + education + infra"),
    ("SDG India Index & Dashboard",
     "Ranks all 36 states/UTs on 115 indicators across 16 SDGs; annual report"),
    ("SATH (Sustainable Action for Transforming Health)",
     "Transforms health systems of 3 states β€” Jharkhand, Odisha, UP"),
    ("SATH-E (Education)",
     "Education transformation in 3 states β€” Madhya Pradesh, Odisha, Jharkhand"),
    ("Poshan Abhiyaan Monitoring",
     "Tracks nutritional outcomes; links with ICDS, NHM, SBM"),
    ("India Innovation Index",
     "Ranks states on innovation performance; published annually"),
    ("Investment Grid (NIPP)",
     "National Investment & Infrastructure Pipeline β€” β‚Ή111 lakh crore in 5 years"),
    ("Jal Jeevan Mission Advisory",
     "Advisory role in providing piped water to every rural household"),
    ("Digital Health Ecosystem",
     "Guidance for ABDM, eSanjeevani, telemedicine scale-up"),
]
init_rows = [[Paragraph(f"<b>{k}</b>", body), Paragraph(v, body)] for k,v in init_items]
story.append(two_col_table(init_rows, col1=5.5*cm))
story.append(Spacer(1, 8))

# ── 8. CRITICAL DIFFERENCES ──────────────────────────────────────────────
story.append(section_header("8.  PLANNING COMMISSION vs NITI AAYOG (Detailed)", color=DARK_BLUE))
story.append(Spacer(1, 4))

diff_rows = [
    [Paragraph("<b>Parameter</b>", body),
     Paragraph("<b>Planning Commission</b>", body),
     Paragraph("<b>NITI Aayog</b>", body)],
    ["Constitutional Status", "Non-constitutional (executive body)", "Non-constitutional (executive body)"],
    ["Legal Basis", "Cabinet Resolution (1950)", "Cabinet Resolution (2015)"],
    ["Model", "Top-Down β€” Centralized", "Bottom-Up β€” Decentralized"],
    ["Fund Allocation", "YES β€” Discretionary grants to states", "NO β€” No financial powers"],
    ["Five Year Plans", "Formulated Five Year Plans", "Replaced with Vision/Strategy/Action docs"],
    ["State Participation", "States received mandated plans", "All CMs in Governing Council"],
    ["Competitive Federalism", "Not promoted", "Actively promoted via rankings/indices"],
    ["Evaluation Wing", "Programme Evaluation Org (PEO)", "Development Monitoring & Evaluation Org (DMEO)"],
    ["Focus on SDGs", "No", "Yes β€” core mandate"],
    ["Private Sector Role", "Minimal", "PPP actively encouraged"],
    ["Innovation", "No specific mandate", "Atal Innovation Mission"],
]
diff_table = Table(diff_rows, colWidths=[4.5*cm, (doc.width-4.5*cm)/2, (doc.width-4.5*cm)/2])
diff_table.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,0), DARK_BLUE),
    ("TEXTCOLOR",     (0,0), (-1,0), white),
    ("FONTNAME",      (0,0), (-1,0), "Helvetica-Bold"),
    ("FONTSIZE",      (0,0), (-1,-1), 8),
    ("TEXTCOLOR",     (0,1), (-1,-1), DARK_TEXT),
    ("ROWBACKGROUNDS",(0,1),(-1,-1), [GREY_BG, white]),
    ("BACKGROUND",    (0,1), (0,-1), LIGHT_BLUE),
    ("FONTNAME",      (0,1), (0,-1), "Helvetica-Bold"),
    ("BACKGROUND",    (1,1), (1,-1), LIGHT_ORG),
    ("GRID",          (0,0), (-1,-1), 0.5, HexColor("#cbd5e1")),
    ("TOPPADDING",    (0,0), (-1,-1), 5),
    ("BOTTOMPADDING", (0,0), (-1,-1), 5),
    ("LEFTPADDING",   (0,0), (-1,-1), 6),
    ("VALIGN",        (0,0), (-1,-1), "TOP"),
]))
story.append(diff_table)
story.append(Spacer(1, 8))

# ── 9. LIMITATIONS / CRITICISMS ──────────────────────────────────────────
story.append(section_header("9.  LIMITATIONS AND CRITICISMS", color=HexColor("#991b1b")))
story.append(Spacer(1, 4))

crits = [
    "No fund allocation power β€” cannot enforce recommendations on states",
    "Advisory only β€” states not legally bound to follow NITI Aayog's advice",
    "Dominated by Centre β€” critics say it's still Centre-centric despite 'cooperative federalism' claim",
    "No constitutional backing β€” unlike Finance Commission or Election Commission",
    "Overlapping roles β€” duplication with Finance Commission, Planning Department",
    "States may not cooperate fully β€” especially opposition-ruled states",
    "Long-term vision documents are aspirational; short-term implementation remains weak",
]
for c in crits:
    story.append(Paragraph(f"βœ—  {c}", bullet))
story.append(Spacer(1, 8))

# ── 10. MEMORIZATION TABLE ───────────────────────────────────────────────
story.append(section_header("10.  MEMORY AID β€” EXAM READY FLASH TABLE", color=HexColor("#065f46")))
story.append(Spacer(1, 4))

flash_rows = [
    [Paragraph("<b>Question</b>", body), Paragraph("<b>Answer (Write Exactly)</b>", body)],
    ["What is NITI Aayog?", "Apex policy think tank of GoI, est. 1 Jan 2015, replaced Planning Commission"],
    ["Full form?", "National Institution for Transforming India"],
    ["Chairperson?", "Prime Minister of India (ex-officio)"],
    ["CEO?", "Secretary-rank officer (B.V.R. Subrahmanyam)"],
    ["Planning documents?", "15-yr Vision, 7-yr Strategy, 3-yr Action Agenda"],
    ["Can it allocate funds?", "NO β€” advisory body only"],
    ["Key health initiative?", "SATH Programme (Sustainable Action for Transforming Health) β€” 3 states"],
    ["SDG monitoring?", "SDG India Index β€” ranks all 36 states/UTs annually"],
    ["Aspirational Districts?", "112 districts; delta ranking monthly; health + nutrition + education"],
    ["Innovation mission?", "Atal Innovation Mission (AIM) β€” tinkering labs, incubators"],
    ["Health index report?", "'Healthy States, Progressive India' β€” 24 indicators"],
    ["Date Planning Commission dissolved?", "13 August 2014 (Union Cabinet decision)"],
    ["First NITI Aayog meeting?", "8 February 2015, chaired by PM Modi"],
]
flash_table = Table(flash_rows, colWidths=[6*cm, doc.width-6*cm])
flash_table.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,0), GREEN),
    ("TEXTCOLOR",     (0,0), (-1,0), white),
    ("FONTNAME",      (0,0), (-1,0), "Helvetica-Bold"),
    ("FONTSIZE",      (0,0), (-1,-1), 8.5),
    ("TEXTCOLOR",     (0,1), (-1,-1), DARK_TEXT),
    ("ROWBACKGROUNDS",(0,1),(-1,-1), [LIGHT_GREEN, white]),
    ("FONTNAME",      (0,1), (0,-1), "Helvetica-Bold"),
    ("GRID",          (0,0), (-1,-1), 0.5, HexColor("#86efac")),
    ("TOPPADDING",    (0,0), (-1,-1), 5),
    ("BOTTOMPADDING", (0,0), (-1,-1), 5),
    ("LEFTPADDING",   (0,0), (-1,-1), 6),
    ("VALIGN",        (0,0), (-1,-1), "TOP"),
]))
story.append(flash_table)
story.append(Spacer(1, 8))

# ── 11. MASTER MNEMONIC ──────────────────────────────────────────────────
story.append(box([
    Paragraph("<b>🧠 MASTER MNEMONIC for 15-Mark Answer Structure:</b>", h2),
    Paragraph(
        "<b>\"BASIC FHI\"</b> β€” Background Β· Aims/Objectives Β· Structure/Composition Β· "
        "Initiatives Β· Comparison (vs Planning Commission) Β· Functions Β· Health role Β· "
        "Important documents (15-7-3)", body),
    Spacer(1, 4),
    Paragraph("<b>Write in this order in your exam β†’ guaranteed 15/15 if content is correct!</b>",
              highlight),
], bg=LIGHT_ORG, border=ORANGE))
story.append(Spacer(1, 10))

# ── FOOTER ───────────────────────────────────────────────────────────────
story.append(HRFlowable(width="100%", thickness=1, color=HexColor("#cbd5e1")))
story.append(Spacer(1, 4))
story.append(Paragraph(
    "NITI Aayog Notes  |  MD Community Medicine β€” Professional Exam  |  July 2026  |  Orris AI",
    footer_s))

# ── BUILD ────────────────────────────────────────────────────────────────
doc.build(story)
print("PDF created successfully!")
Running Command

cd /home/daytona/workspace/niti-aayog-notes && python create_pdf.py 2>&1

Running Command

ls -lh /home/daytona/workspace/niti-aayog-notes/NITI_Aayog_Notes.pdf

Your PDF is ready! Download it here:

NITI Aayog Notes

PDF Document Β· PDF


What's inside the PDF (11 sections, exam-ready):

SectionContent
1. Background & HistoryWhy Planning Commission was dissolved; full comparison table
2. CompositionAll members β€” PM, CMs, full-time, ex-officio, CEO, etc.
3. Objectives10 objectives in simple language with table
4. Functions4 main functional heads + additional advisory functions
5. Planning Documents15-year Vision, 7-year Strategy, 3-year Action Agenda
6. Health RoleNHP 2017, Ayushman Bharat, SDG 3, SATH, Health Index, COVID-19, ABDM
7. Key InitiativesAIM, Aspirational Districts, SDG Index, SATH, POSHAN, Digital Health
8. Detailed Comparison12-parameter table: Planning Commission vs NITI Aayog
9. LimitationsCriticisms for balanced answer
10. Flash Table14 Q&A pairs to write exactly in exam
11. Master Mnemonic"BASIC FHI" β€” the order to write your 15-mark answer

Exam tip: Use the "BASIC FHI" structure when writing:
Background β†’ Aims β†’ Structure β†’ Initiatives β†’ Comparison β†’ Functions β†’ Health role β†’ Important documents (15-7-3)
This is a shared conversation. Sign in to Orris to start your own chat.