attachment
attachment
attachment
attachment

The images are given these are my physiology syllabus Tommorow is final exam of bpt please tell important topics and answer all the topics

Both images are already visible to me. Let me now write comprehensive notes on all topics.Good luck with your exam tomorrow! Here is your complete BPT Psychology exam guide - all topics covered with important notes. I've marked the most exam-important topics with ⭐.

🧠 PSYCHOLOGY - BPT FINAL EXAM NOTES


🔴 MOST IMPORTANT TOPICS (High probability in exams)

⭐ Theories of Emotion | ⭐ Memory & Forgetting | ⭐ Types of Learning | ⭐ Stress Management | ⭐ Normality vs Abnormality | ⭐ Rehabilitation Psychology | ⭐ Motivation | ⭐ Intelligence | ⭐ Psychotherapy | ⭐ Decision Making

UNIT 1 - GENERAL PSYCHOLOGY

Chapter 1: Definition & Scope of Psychology

Definition of Psychology:
  • Psychology is the scientific study of mind, consciousness, and behavior
  • The word "Psychology" comes from Greek words: Psyche (soul/mind) + Logos (study)
  • Modern definition: "Psychology is the science of behavior and mental processes" - John B. Watson
Science of Mind, Consciousness and Behavior:
  • Mind: refers to internal mental processes (thinking, feeling, perceiving)
  • Consciousness: awareness of self and environment
  • Behavior: observable actions/responses
Scope and Branches of Psychology:
BranchFocus
Clinical PsychologyMental disorders, treatment
Educational PsychologyLearning and teaching
Industrial/OrganizationalWorkplace behavior
Social PsychologyGroup behavior, social influences
Developmental PsychologyGrowth across lifespan
Rehabilitation PsychologyDisability and recovery
Health PsychologyMind-body relationship
NeuropsychologyBrain and behavior

Chapter 2: Methods, Heredity & Environment

Methods of Psychology:
  1. Introspection - Looking inward at one's own mental processes; subjective; oldest method
  2. Observation - Watching behavior objectively; Naturalistic (in natural settings) vs Controlled observation
  3. Experimentation - Scientific method with IV and DV; most objective; conducted in labs
Heredity and Environment:
  • Heredity: Traits passed through genes from parents (nature)
  • Environment: All external influences after birth (nurture)
  • Both interact to shape personality and intelligence
Relative Importance of Heredity vs Environment:
  • Twin studies show both play roles (identical twins raised apart still share traits)
  • Intelligence: ~50% hereditary, rest environment
  • Personality: combination of both
Nature vs Nurture Controversy:
  • Nativists (Descartes, Chomsky): behavior is innate
  • Empiricists (Locke, Watson): behavior is learned from environment
  • Modern view: interactionist approach - both are important
Physical Characteristics, Intelligence and Personality:
  • Physical traits (height, eye color) are more strongly genetic
  • Intelligence influenced by both; IQ can be raised with good environment
  • Personality shaped by temperament (genetic) + experiences (environmental)

UNIT 2

Chapter 1: Learning ⭐⭐

Types of Learning:
  1. Trial and Error Learning (Thorndike)
    • Learning by trying repeatedly until success
    • Law of Effect: responses followed by satisfaction are strengthened
    • Example: Cat in puzzle box
  2. Classical Conditioning (Pavlov) ⭐⭐
    • Learning by association
    • US (food) → UR (salivation); CS (bell) + US → CR (salivation to bell)
    • Key terms: Acquisition, Extinction, Spontaneous recovery, Generalization, Discrimination
    • Example: Pavlov's dog experiment
  3. Instrumental/Operant Learning (Skinner) ⭐⭐
    • Learning through consequences
    • Positive Reinforcement: add pleasant stimulus to increase behavior
    • Negative Reinforcement: remove unpleasant stimulus to increase behavior
    • Punishment: decreases behavior
    • Skinner box experiment
  4. Insight Learning (Kohler) ⭐
    • Sudden understanding of a problem
    • "Aha!" moment; reorganization of perceptual field
    • Example: Kohler's ape experiment (Sultan using stick to reach banana)

Chapter 2: Memory ⭐⭐

Steps/Stages of Memory:
  1. Encoding - Converting information into memory format
  2. Storage - Retaining information over time
  3. Retrieval - Accessing stored information when needed
STM vs LTM: ⭐⭐
FeatureShort Term Memory (STM)Long Term Memory (LTM)
Duration15-30 secondsUnlimited (lifetime)
Capacity7±2 items (Miller's Law)Unlimited
EncodingAcousticSemantic
ForgettingDisplacementInterference, decay
ExamplesPhone number just heardChildhood memories
Measurement of Memory:
  • Recall: Reproduce information without cues (essay questions)
  • Recognition: Identify correct answer (MCQs)
  • Relearning/Savings method: Faster relearning = more retained
Causes of Forgetting:
  1. Decay theory: Memory fades with disuse over time
  2. Interference theory: Other memories interfere - Proactive (old interferes new) & Retroactive (new interferes old)
  3. Retrieval failure: Tip-of-tongue phenomenon
  4. Repression: Motivated forgetting (Freud) - painful memories pushed into unconscious
  5. Organic causes: Brain damage, disease

Chapter 3: Perceptual Process

Nature of Perceptual Process:
  • Perception: Organizing and interpreting sensory information
  • More than sensation - brain adds meaning to raw sensory data
  • Active, constructive process
Structural and Functional Factors in Perception:
  • Structural factors: Physical properties (stimulus features like size, intensity, contrast)
  • Functional factors: Set, motivation, past experience, emotional state
Gestalt Principles of Perception:
  • Figure-Ground, Proximity, Similarity, Closure, Continuity
Illusion vs Hallucination:
IllusionHallucination
DefinitionMisperception of a real stimulusPerception without any stimulus
StimulusPresentAbsent
ExampleMuller-Lyer illusionHearing voices (schizophrenia)
Normal?Yes, can be normalUsually pathological

UNIT 3

Chapter 1: Emotion ⭐⭐

Emotion and Feeling:
  • Emotion: Complex psychological state involving subjective experience, physiological response, and behavioral expression
  • Feeling: Subjective, conscious experience of emotion
  • Components: Cognitive, physiological, behavioral
Physiological Changes in Emotion:
  • Increased heart rate and blood pressure
  • Increased adrenaline secretion
  • Dilated pupils
  • Increased sweating
  • Faster breathing
  • Muscle tension
Theories of Emotion: ⭐⭐⭐
1. James-Lange Theory:
  • "We feel afraid because we run" - physiological change comes FIRST
  • Emotion = awareness of physiological response
  • Stimulus → Physiological response → Emotion
2. Cannon-Bard Theory (Eonnon-Bird = Cannon-Bard):
  • Emotion and physiological response occur SIMULTANEOUSLY
  • Thalamus plays a key role
  • Stimulus → Thalamus → Cortex (emotion) AND Body (physiology) at same time
  • Criticized James-Lange: visceral changes are too slow and similar across emotions

Chapter 2: Motivation ⭐⭐

Motive, Need and Drive:
  • Motive: Internal state that activates and directs behavior toward a goal
  • Need: Lack or deficit within the organism (physiological or psychological)
  • Drive: Tension/arousal created by a need that pushes behavior
Types of Motives:
1. Physiological/Biological Motives (Primary):
  • Hunger, thirst, sex, sleep, pain avoidance
  • Rooted in body tissue needs
  • Homeostasis principle
2. Psychological/Personal Motives:
  • Achievement motivation (n-Ach) - McClelland
  • Affiliation motive - need to belong
  • Power motive
  • Curiosity, competence motives
3. Social Motives:
  • Learned through social interaction
  • Status, prestige, conformity, approval
  • Cultural influences
Maslow's Hierarchy of Needs: ⭐⭐
  1. Physiological (food, water)
  2. Safety (security, shelter)
  3. Love/Belonging (relationships)
  4. Esteem (respect, achievement)
  5. Self-Actualization (reaching potential)

Chapter 3: Intelligence, Personality & Child Psychology

Intelligence: ⭐⭐
  • Binet-Simon: First intelligence test; mental age concept
  • IQ Formula: IQ = (Mental Age / Chronological Age) × 100
  • Normal IQ = 90-110; Gifted = 130+; Intellectual disability = below 70
Theories of Intelligence:
  • Spearman: Two-factor theory - G factor (general) + S factor (specific)
  • Thurstone: Primary Mental Abilities - 7 distinct factors
  • Gardner: Multiple Intelligences (linguistic, logical, spatial, musical, etc.)
  • Sternberg: Triarchic theory - Analytical, Creative, Practical
Personality:
  • Definition: Unique and stable pattern of thoughts, feelings, and behavior
  • Types (Sheldon): Endomorph (round, sociable), Mesomorph (muscular, aggressive), Ectomorph (thin, anxious)
  • Freud's structure: Id (instincts), Ego (reality), Superego (morality)
  • Measurement: Personality tests - MMPI, Rorschach Inkblot, TAT, 16PF
Child Psychology:
  • Study of psychological development from birth to adolescence
  • Meaning: understanding cognitive, emotional, social, and physical development in children
  • Nature: Developmental; normative and differential
  • Subject matter: motor development, language, cognition, social-emotional development
Practical importance for Rehabilitation professionals:
  • Understanding developmental milestones helps detect delays
  • Guides treatment goals for children with disabilities
  • Informs parent counseling
  • Helps in planning physiotherapy for pediatric patients

UNIT 3 - Chapter 4 (Child Development Methods)

Methods of Studying Child Development:
  1. Baby Biography: Diary-like records kept by parents about child's development; first systematic method; Darwin used it
  2. Case History: Detailed record of an individual's background, medical, social, psychological history
  3. Behavior Rating: Structured scales to rate observed behaviors; used in clinical and school settings

UNIT 4 - APPLIED PSYCHOLOGY

Chapter 1: Human Engineering ⭐

Definition: Scientific study of designing machines, tools, and environments to fit human capabilities Also called Ergonomics or Human Factors Engineering
Importance of Human Engineering:
  • Reduces accidents and errors
  • Increases efficiency and productivity
  • Reduces physical and mental fatigue
  • Improves workplace safety
Development of Human Engineering:
  • Grew during World War II when complex equipment led to accidents
  • Taylor's Scientific Management principles
  • Modern ergonomics developed post-WWII
Problems in Human Engineering:
  • Mismatch between human abilities and machine demands
  • Poorly designed tools causing musculoskeletal disorders
  • Information overload
  • Environmental factors (lighting, noise, heat)

Chapter 2: Decision Making ⭐⭐

Definition: Process of choosing among alternatives to solve a problem
Process and Steps in Decision Making:
  1. Identify the problem
  2. Gather information
  3. Generate alternatives
  4. Evaluate alternatives
  5. Choose the best alternative
  6. Implement the decision
  7. Evaluate the outcome
Individual Decision Making:
  • Based on personal values, emotions, cognitive biases
  • Heuristics used (mental shortcuts)
  • Bounded rationality (Simon): people make "good enough" decisions, not perfect ones
Decision Making in Organizations:
  • Rational model vs Administrative model
  • Group decision making: brainstorming, Delphi technique, nominal group technique
  • Advantages: more information, diverse perspectives
  • Disadvantages: groupthink, slower process

Chapter 3: Stress and Mental Health ⭐⭐

Stress and Mental Health:
  • Stress: physiological and psychological response to demands that exceed coping resources
  • Chronic stress damages mental and physical health
Causes and Reactions to Stress:
  • Physical stressors: illness, injury, noise
  • Psychological stressors: frustration, conflict, pressure, change
  • Reactions:
    • Physiological: increased cortisol, heart rate, muscle tension
    • Psychological: anxiety, depression, irritability
    • Behavioral: poor sleep, eating changes, substance use
GAS (General Adaptation Syndrome) - Selye: ⭐⭐
  1. Alarm stage: body mobilizes resources ("fight or flight")
  2. Resistance stage: body adapts to stressor
  3. Exhaustion stage: resources depleted; illness/breakdown
Stress Management: ⭐⭐
  • Relaxation techniques: deep breathing, progressive muscle relaxation, meditation
  • Cognitive strategies: positive thinking, reframing
  • Exercise: reduces cortisol, increases endorphins
  • Time management
  • Social support
  • Biofeedback
  • Professional counseling
Work Culture, Moral and Rewards of Work Discipline:
  • Positive work culture: respect, teamwork, clear communication
  • Work discipline improves productivity and mental wellbeing
  • Rewards: intrinsic (satisfaction) vs extrinsic (salary, praise)
Guidance and Counseling:
  • Guidance: Helping a person choose the right path (educational, vocational)
  • Counseling: Therapeutic relationship to help solve personal problems
  • Types: Individual counseling, group counseling, career counseling, rehabilitation counseling
  • Objectives of Counselor:
    • Help clients gain self-understanding
    • Facilitate behavior change
    • Improve decision-making skills
    • Provide emotional support

UNIT 5 - REHABILITATION PSYCHOLOGY

Chapter 1: Rehabilitation Psychology ⭐⭐

Interpersonal and Familial/Social Relationships:
  • Disability affects relationships with family, friends, and society
  • Overprotection vs rejection by family
  • Social isolation is common in disabled individuals
  • Team approach: physio + psych + social worker + family
Acceptance about Disability: ⭐⭐
  • Stages of acceptance (similar to grief): Denial → Anger → Bargaining → Depression → Acceptance
  • Psychologist's role: help patient move toward acceptance
  • Factors affecting acceptance: nature of disability, personality, social support
Psychological Aspects of Multiple Handicapped:
  • Cognitive impairment + physical disability creates complex needs
  • Self-concept and self-esteem are severely affected
  • Need for individualized psychological assessment
Contribution of Psychology in Total Rehabilitation:
  • Psychological assessment of patient
  • Motivation therapy
  • Behavior modification techniques
  • Family counseling
  • Vocational guidance
  • Stress management training

Chapter 2: Normality, Abnormality and Mental Disorders ⭐⭐⭐

Definition/Criteria of Normality:
  1. Statistical norm: Behaviors that most people show (average)
  2. Social/Cultural norm: Behaviors acceptable in a given culture
  3. Ideal norm: Perfect mental health (Jahoda's criteria - self-acceptance, growth, autonomy, etc.)
  4. Medical model: Absence of disease/disorder
Criteria of Abnormality (4 D's): ⭐⭐
  1. Distress: Personal suffering
  2. Deviance: Violation of social norms
  3. Dysfunction: Impaired ability to function in daily life
  4. Danger: Risk to self or others
Factors Contributing to Normal Mental Health:
  • Positive self-concept
  • Ability to cope with stress
  • Good interpersonal relationships
  • Realistic perception of world
  • Emotional stability
Neurotic Disorders: ⭐⭐
  • Less severe; person aware of their problem (insight preserved)
  • Examples: Anxiety disorders, Phobias, OCD, Depression (mild), Conversion disorder
  • Person functions in daily life (mostly)
Psychotic Disorders: ⭐⭐
  • Severe mental illness; loss of contact with reality
  • Examples: Schizophrenia, Bipolar disorder (manic phase), Delusional disorder
  • Hallucinations, delusions, disorganized thinking
Neurosis vs Psychosis: ⭐⭐
FeatureNeurosisPsychosis
SeverityMild to moderateSevere
Reality contactIntactLost
InsightPresentAbsent
HospitalizationRarely neededOften needed
ExamplesAnxiety, phobiaSchizophrenia
Psychosomatic Disorders:
  • Physical illness caused or worsened by psychological factors
  • Examples: Peptic ulcer, hypertension, asthma, migraine
  • Mind-body connection
Organic Mental Disorders:
  • Caused by physical/biological damage to the brain
  • Examples: Dementia, Delirium, Amnesia
  • Due to: brain injury, infection, toxins, aging
Substance Abuse Disorders:
  • Dependence (addiction) vs Abuse (harmful use without dependence)
  • Withdrawal symptoms when substance stopped
  • Psychological and physical dependence
  • Common substances: alcohol, opioids, stimulants, sedatives

Chapter 3: Old Age, Psychotherapy & Child Psychiatry

Problems in Adjustment in Old Age:
  • Physical: declining health, loss of strength
  • Psychological: depression, loneliness, fear of death, retirement adjustment
  • Social: loss of friends/spouse, reduced social roles
  • Cognitive: memory decline, slower processing
  • Rehabilitation approach: activity programs, counseling, family support
Psychotherapy: ⭐⭐⭐
Definition: Systematic use of psychological methods to treat mental and emotional disorders through therapeutic relationship
Types of Psychotherapy:
  1. Psychoanalytic Therapy (Freud)
    • Unconscious conflicts cause mental disorders
    • Techniques: free association, dream analysis, transference interpretation
    • Goals: bring unconscious to conscious awareness
  2. Behavior Therapy
    • Based on learning theory
    • Techniques: Systematic desensitization (for phobias), Token economy, Aversion therapy, Flooding
    • Based on classical and operant conditioning
  3. Cognitive-Behavioral Therapy (CBT) ⭐⭐
    • Focuses on changing negative thought patterns
    • Beck's cognitive therapy: identify and challenge cognitive distortions
    • Most evidence-based therapy today
  4. Humanistic Therapy (Carl Rogers)
    • Client-centered therapy
    • Conditions: Unconditional positive regard, Empathy, Congruence
    • Goal: self-actualization, personal growth
  5. Group Therapy
    • Multiple clients treated together
    • Benefits: peer support, social skills practice, cost-effective
Child Psychiatry: ⭐⭐
Common conditions:
  • ADHD (Attention Deficit Hyperactivity Disorder): inattention, hyperactivity, impulsivity; treated with behavioral therapy + medication
  • Autism Spectrum Disorder: impaired social communication, restricted behaviors; early intervention key
  • Intellectual Disability: IQ below 70 + adaptive behavior deficits
  • Conduct Disorder: persistent pattern of antisocial behavior
  • Childhood Depression and Anxiety: often missed; manifests differently than in adults
  • Learning Disorders: dyslexia, dyscalculia
Role of Rehabilitation professionals in child psychiatry:
  • Motor skills training
  • Sensory integration therapy
  • Social skills development
  • Parent training

⭐ QUICK REVISION - TOP EXAM ANSWERS

Most Asked Short Notes (2-5 marks each):

  1. James-Lange theory of emotion - physiological changes precede emotion
  2. Cannon-Bard theory - simultaneous emotion and physiology via thalamus
  3. STM vs LTM - table comparison
  4. Classical conditioning (Pavlov) - US, CS, UR, CR
  5. Types of Learning - 4 types with examples
  6. Maslow's hierarchy - 5 levels pyramid
  7. GAS by Selye - 3 stages
  8. Neurosis vs Psychosis - comparison table
  9. 4 D's of Abnormality - Distress, Deviance, Dysfunction, Danger
  10. Rehabilitation Psychology - acceptance stages, contribution

Most Asked Long Questions (10-15 marks):

  1. Describe theories of emotion with diagrams
  2. Explain memory - stages, STM vs LTM, causes of forgetting
  3. Types of learning with examples
  4. Stress - causes, reactions, GAS, management
  5. Psychotherapy - definition and types
  6. Normality and Abnormality - criteria and types of mental disorders
  7. Motivation - types of motives, Maslow's theory
  8. Rehabilitation psychology - acceptance of disability, contribution of psychology

🟢 LAST MINUTE TIPS:

  • Theories of Emotion: James-Lange vs Cannon-Bard is almost always asked - memorize the key difference
  • Memory: STM (7±2 items, 30 sec) vs LTM (unlimited) - draw a table
  • GAS stages: Alarm → Resistance → Exhaustion (Selye)
  • Neurosis vs Psychosis: know the comparison table cold
  • CBT is the most evidence-based psychotherapy - important for BPT
  • Maslow's hierarchy: draw the pyramid
  • 4 D's of Abnormality: Distress, Deviance, Dysfunction, Danger
  • For rehab topics: always mention the role of physiotherapist/rehab professional
Best of luck on your exam tomorrow! You've got this! 💪Here is a summary of everything covered above, organized for last-minute revision:

📋 YOUR COMPLETE SYLLABUS - AT A GLANCE

UNIT 1 (General Psychology): Definition, Branches, Methods (Introspection/Observation/Experimentation), Heredity vs Environment, Nature-Nurture
UNIT 2: Learning (Trial & Error, Classical, Operant, Insight), Memory (STM/LTM, Forgetting), Perception (Illusion vs Hallucination)
UNIT 3: Emotion (James-Lange & Cannon-Bard theories), Motivation (Types + Maslow's Hierarchy), Intelligence (IQ, theories), Personality, Child Psychology, Methods of studying child development (Baby Biography, Case History, Behavior Rating)
UNIT 4 (Applied Psychology): Human Engineering/Ergonomics, Decision Making (steps + individual vs org), Stress (GAS by Selye, management), Work Culture, Guidance & Counseling
UNIT 5 (Rehabilitation Psychology): Acceptance of disability (stages), Psychological aspects of multiple handicaps, Contribution of psychology in total rehab, Normality vs Abnormality (criteria + 4 D's), Neurotic/Psychotic/Psychosomatic/Organic/Substance abuse disorders, Old age problems, Psychotherapy (5 types), Child Psychiatry
The most frequently examined topics across BPT exams are Theories of Emotion, Memory, Learning, Stress/GAS, Neurosis vs Psychosis, Psychotherapy types, and Rehabilitation Psychology. Focus your final hours on these. All the best tomorrow! 🎯

Prepare a pdf off the topics with answers and important topics and diagrams and image's

Reading File
Now let me build the full PDF with diagrams using ReportLab:
Running Command

mkdir -p /tmp/workspace/bpt-psychology && ls /tmp/workspace/

Writing File

~/bpt-psychology/make_pdf.py

from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import inch, cm
from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Table,
                                 TableStyle, PageBreak, HRFlowable, KeepTogether)
from reportlab.platypus import Flowable
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.graphics.shapes import Drawing, Rect, String, Line, Circle, Polygon
from reportlab.graphics import renderPDF
from reportlab.platypus import Image as RLImage
import io

# ─── Color Palette ───────────────────────────────────────────────────────────
DARK_BLUE   = colors.HexColor("#1a237e")
MID_BLUE    = colors.HexColor("#1565c0")
LIGHT_BLUE  = colors.HexColor("#e3f2fd")
ACCENT      = colors.HexColor("#ff6f00")
ACCENT_LIGHT= colors.HexColor("#fff8e1")
GREEN       = colors.HexColor("#2e7d32")
GREEN_LIGHT = colors.HexColor("#e8f5e9")
RED         = colors.HexColor("#c62828")
RED_LIGHT   = colors.HexColor("#ffebee")
PURPLE      = colors.HexColor("#6a1b9a")
PURPLE_LIGHT= colors.HexColor("#f3e5f5")
TEAL        = colors.HexColor("#00695c")
TEAL_LIGHT  = colors.HexColor("#e0f2f1")
GRAY_BG     = colors.HexColor("#f5f5f5")
DARK_TEXT   = colors.HexColor("#212121")
WHITE       = colors.white

PAGE_W, PAGE_H = A4

# ─── Styles ──────────────────────────────────────────────────────────────────
styles = getSampleStyleSheet()

def S(name, **kw):
    return ParagraphStyle(name, **kw)

cover_title = S("CoverTitle", fontSize=32, textColor=WHITE,
                fontName="Helvetica-Bold", alignment=TA_CENTER, leading=40)
cover_sub   = S("CoverSub",  fontSize=16, textColor=WHITE,
                fontName="Helvetica",     alignment=TA_CENTER, leading=22)
cover_info  = S("CoverInfo", fontSize=12, textColor=WHITE,
                fontName="Helvetica",     alignment=TA_CENTER, leading=18)

unit_title  = S("UnitTitle", fontSize=18, textColor=WHITE,
                fontName="Helvetica-Bold", alignment=TA_CENTER,
                backColor=DARK_BLUE, borderPadding=(8,10,8,10), leading=26)

ch_title    = S("ChTitle",  fontSize=14, textColor=WHITE,
                fontName="Helvetica-Bold", alignment=TA_LEFT,
                backColor=MID_BLUE, borderPadding=(6,8,6,8), leading=20)

topic_title = S("TopicTitle", fontSize=13, textColor=DARK_BLUE,
                fontName="Helvetica-Bold", leading=18, spaceBefore=10)

important   = S("Important", fontSize=12, textColor=ACCENT,
                fontName="Helvetica-Bold", leading=16)

body        = S("Body", fontSize=10, textColor=DARK_TEXT,
                fontName="Helvetica", leading=15, spaceAfter=4,
                alignment=TA_JUSTIFY)

bullet      = S("Bullet", fontSize=10, textColor=DARK_TEXT,
                fontName="Helvetica", leading=15, leftIndent=18,
                spaceAfter=3, bulletIndent=8)

note_style  = S("Note", fontSize=9.5, textColor=colors.HexColor("#5d4037"),
                fontName="Helvetica-Oblique", leading=14,
                borderPadding=(6,8,6,8), backColor=ACCENT_LIGHT,
                leftIndent=10, rightIndent=10)

def_style   = S("Def", fontSize=10, textColor=DARK_TEXT,
                fontName="Helvetica", leading=15,
                borderPadding=(6,8,6,8), backColor=LIGHT_BLUE,
                leftIndent=10, rightIndent=10)

# ─── Helpers ─────────────────────────────────────────────────────────────────
def sp(h=8):
    return Spacer(1, h)

def hr(color=MID_BLUE, thickness=1):
    return HRFlowable(width="100%", thickness=thickness, color=color,
                      spaceAfter=6, spaceBefore=4)

def star_para(text, style=body):
    return Paragraph(f"<b>★</b> {text}", style)

def bullet_para(text, style=bullet):
    return Paragraph(f"• {text}", style)

def heading(text, level=1):
    if level == 1:
        return Paragraph(text, unit_title)
    elif level == 2:
        return Paragraph(text, ch_title)
    else:
        return Paragraph(text, topic_title)

def important_box(text):
    data = [[Paragraph(f"<b>⭐ IMPORTANT:</b> {text}", note_style)]]
    t = Table(data, colWidths=[450])
    t.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), ACCENT_LIGHT),
        ("BOX",        (0,0), (-1,-1), 1, ACCENT),
        ("ROUNDEDCORNERS", [6]),
        ("TOPPADDING",  (0,0), (-1,-1), 6),
        ("BOTTOMPADDING",(0,0), (-1,-1), 6),
    ]))
    return t

def section_box(title, items, bg=LIGHT_BLUE, border=MID_BLUE):
    content = [Paragraph(f"<b>{title}</b>", S("bh", fontSize=11,
               textColor=border, fontName="Helvetica-Bold", leading=16))]
    for item in items:
        content.append(Paragraph(f"• {item}", bullet))
    data = [[content]]
    t = Table(data, colWidths=[450])
    t.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), bg),
        ("BOX",        (0,0), (-1,-1), 1.5, border),
        ("TOPPADDING",  (0,0), (-1,-1), 8),
        ("BOTTOMPADDING",(0,0), (-1,-1), 8),
        ("LEFTPADDING", (0,0), (-1,-1), 10),
    ]))
    return t

def comparison_table(headers, rows, col_colors=None):
    header_row = [Paragraph(f"<b>{h}</b>",
                  S("th", fontSize=10, textColor=WHITE,
                    fontName="Helvetica-Bold", alignment=TA_CENTER, leading=14))
                  for h in headers]
    data = [header_row]
    for row in rows:
        data.append([Paragraph(str(c), S("td", fontSize=9.5,
                     textColor=DARK_TEXT, fontName="Helvetica", leading=14))
                     for c in row])
    col_w = 450 / len(headers)
    t = Table(data, colWidths=[col_w]*len(headers))
    style = [
        ("BACKGROUND",    (0,0), (-1,0), DARK_BLUE),
        ("TEXTCOLOR",     (0,0), (-1,0), WHITE),
        ("GRID",          (0,0), (-1,-1), 0.5, colors.HexColor("#90caf9")),
        ("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, LIGHT_BLUE]),
        ("TOPPADDING",    (0,0), (-1,-1), 5),
        ("BOTTOMPADDING", (0,0), (-1,-1), 5),
        ("LEFTPADDING",   (0,0), (-1,-1), 6),
        ("ALIGN",         (0,0), (-1,-1), "LEFT"),
        ("VALIGN",        (0,0), (-1,-1), "MIDDLE"),
    ]
    t.setStyle(TableStyle(style))
    return t

# ─── Diagrams ────────────────────────────────────────────────────────────────

def maslow_diagram():
    """Draw Maslow's Hierarchy of Needs pyramid."""
    d = Drawing(460, 240)
    levels = [
        ("Self-Actualization", colors.HexColor("#7b1fa2")),
        ("Esteem Needs",       colors.HexColor("#1565c0")),
        ("Love & Belonging",   colors.HexColor("#00838f")),
        ("Safety Needs",       colors.HexColor("#2e7d32")),
        ("Physiological",      colors.HexColor("#e65100")),
    ]
    base_y = 10
    level_h = 38
    cx = 230
    for i, (label, col) in enumerate(levels):
        # bottom = widest, top = narrowest
        half_w = 40 + i * 38
        inv = 4 - i  # invert so physiological is at bottom
        half_w2 = 40 + inv * 38
        y = base_y + i * level_h
        # trapezoid
        pts = [cx - half_w2, y,
               cx + half_w2, y,
               cx + half_w2 - 30, y + level_h,
               cx - half_w2 + 30, y + level_h]
        # actually draw rectangle bands with tapering
        x0 = cx - half_w2
        x1 = cx + half_w2
        rect = Rect(x0, y, x1 - x0, level_h - 1, fillColor=col,
                    strokeColor=WHITE, strokeWidth=1)
        d.add(rect)
        txt = String(cx, y + level_h/2 - 5, label,
                     fontSize=9, fillColor=WHITE,
                     fontName="Helvetica-Bold", textAnchor="middle")
        d.add(txt)
    # Label
    lbl = String(cx, 205, "MASLOW'S HIERARCHY OF NEEDS",
                 fontSize=11, fillColor=DARK_BLUE,
                 fontName="Helvetica-Bold", textAnchor="middle")
    d.add(lbl)
    return d

def gas_diagram():
    """Draw Selye's GAS 3-stage diagram."""
    d = Drawing(460, 120)
    stages = [
        ("ALARM\nSTAGE",      "Fight or Flight\nAdrenaline surge",    colors.HexColor("#c62828")),
        ("RESISTANCE\nSTAGE", "Body adapts\nResources mobilized",     colors.HexColor("#e65100")),
        ("EXHAUSTION\nSTAGE", "Resources depleted\nIllness / Breakdown", colors.HexColor("#4a148c")),
    ]
    bw = 130
    for i, (title, desc, col) in enumerate(stages):
        x = 10 + i * 150
        r = Rect(x, 20, bw, 80, fillColor=col, strokeColor=WHITE, strokeWidth=1.5,
                 rx=8, ry=8)
        d.add(r)
        for j, line in enumerate(title.split("\n")):
            d.add(String(x + bw/2, 90 - j*14, line,
                         fontSize=9, fillColor=WHITE,
                         fontName="Helvetica-Bold", textAnchor="middle"))
        for j, line in enumerate(desc.split("\n")):
            d.add(String(x + bw/2, 55 - j*12, line,
                         fontSize=8, fillColor=WHITE,
                         fontName="Helvetica", textAnchor="middle"))
        if i < 2:
            ax = x + bw + 1
            ay = 60
            d.add(Line(ax, ay, ax + 18, ay,
                       strokeColor=DARK_BLUE, strokeWidth=2))
            d.add(String(ax + 10, ay + 2, "→",
                         fontSize=14, fillColor=DARK_BLUE, textAnchor="middle"))
    d.add(String(230, 10, "SELYE'S GENERAL ADAPTATION SYNDROME (GAS)",
                 fontSize=9, fillColor=DARK_BLUE,
                 fontName="Helvetica-Bold", textAnchor="middle"))
    return d

def emotion_theory_diagram():
    """James-Lange vs Cannon-Bard flow diagram."""
    d = Drawing(460, 150)
    # JL chain
    d.add(String(10, 135, "James-Lange Theory:", fontSize=9,
                 fillColor=RED, fontName="Helvetica-Bold"))
    jl = [("Stimulus", colors.HexColor("#1565c0")),
          ("Physiological\nChange", colors.HexColor("#c62828")),
          ("EMOTION\n(Felt)", colors.HexColor("#2e7d32"))]
    for i, (lbl, col) in enumerate(jl):
        x = 10 + i*140
        d.add(Rect(x, 100, 120, 32, fillColor=col, strokeColor=WHITE,
                   strokeWidth=1, rx=5, ry=5))
        for j, ln in enumerate(lbl.split("\n")):
            d.add(String(x+60, 123 - j*12, ln, fontSize=8, fillColor=WHITE,
                         fontName="Helvetica-Bold", textAnchor="middle"))
        if i < 2:
            d.add(String(x+130, 119, "→", fontSize=14,
                         fillColor=DARK_BLUE, textAnchor="middle"))

    # CB chain
    d.add(String(10, 88, "Cannon-Bard Theory:", fontSize=9,
                 fillColor=PURPLE, fontName="Helvetica-Bold"))
    d.add(Rect(10, 50, 100, 30, fillColor=colors.HexColor("#1565c0"),
               strokeColor=WHITE, strokeWidth=1, rx=5, ry=5))
    d.add(String(60, 68, "Stimulus", fontSize=8, fillColor=WHITE,
                 fontName="Helvetica-Bold", textAnchor="middle"))
    d.add(String(120, 70, "→", fontSize=14, fillColor=DARK_BLUE,
                 textAnchor="middle"))
    d.add(Rect(130, 50, 100, 30, fillColor=PURPLE,
               strokeColor=WHITE, strokeWidth=1, rx=5, ry=5))
    d.add(String(180, 68, "Thalamus", fontSize=8, fillColor=WHITE,
                 fontName="Helvetica-Bold", textAnchor="middle"))
    # Two arrows up and down
    d.add(String(240, 78, "↗", fontSize=14, fillColor=RED,
                 textAnchor="middle"))
    d.add(String(240, 55, "↘", fontSize=14, fillColor=GREEN,
                 textAnchor="middle"))
    d.add(Rect(260, 65, 110, 24, fillColor=RED, strokeColor=WHITE,
               strokeWidth=1, rx=4, ry=4))
    d.add(String(315, 80, "EMOTION", fontSize=8, fillColor=WHITE,
                 fontName="Helvetica-Bold", textAnchor="middle"))
    d.add(Rect(260, 35, 110, 24, fillColor=GREEN, strokeColor=WHITE,
               strokeWidth=1, rx=4, ry=4))
    d.add(String(315, 50, "Body Response", fontSize=8, fillColor=WHITE,
                 fontName="Helvetica-Bold", textAnchor="middle"))
    d.add(String(230, 115, "★ Emotion and body response occur SIMULTANEOUSLY via thalamus",
                 fontSize=8, fillColor=PURPLE, fontName="Helvetica-Oblique",
                 textAnchor="middle"))
    return d

def stm_ltm_diagram():
    d = Drawing(460, 80)
    cols = [
        ("SHORT-TERM MEMORY\n(STM)", ["Duration: 15-30 sec", "Capacity: 7±2 items",
          "Acoustic encoding", "Displacement forgetting"], colors.HexColor("#1565c0")),
        ("LONG-TERM MEMORY\n(LTM)", ["Duration: Unlimited", "Capacity: Unlimited",
          "Semantic encoding", "Interference/decay"], colors.HexColor("#2e7d32")),
    ]
    for i, (title, items, col) in enumerate(cols):
        x = 10 + i*230
        d.add(Rect(x, 5, 215, 70, fillColor=col, strokeColor=WHITE,
                   strokeWidth=1.5, rx=6, ry=6))
        for j, ln in enumerate(title.split("\n")):
            d.add(String(x+107, 68 - j*12, ln, fontSize=9, fillColor=WHITE,
                         fontName="Helvetica-Bold", textAnchor="middle"))
        for j, item in enumerate(items):
            d.add(String(x+107, 42 - j*11, "• " + item, fontSize=7.5,
                         fillColor=WHITE, fontName="Helvetica",
                         textAnchor="middle"))
    d.add(String(230, 77, "STM  ←→  LTM  (via Rehearsal & Encoding)",
                 fontSize=8.5, fillColor=DARK_BLUE,
                 fontName="Helvetica-Bold", textAnchor="middle"))
    return d

def learning_diagram():
    d = Drawing(460, 90)
    types = [
        ("Trial &\nError",    "Thorndike", colors.HexColor("#e65100")),
        ("Classical\nCond.",  "Pavlov",    colors.HexColor("#1565c0")),
        ("Operant\nCond.",    "Skinner",   colors.HexColor("#2e7d32")),
        ("Insight\nLearning", "Kohler",    colors.HexColor("#6a1b9a")),
    ]
    bw = 100
    for i, (title, person, col) in enumerate(types):
        x = 10 + i*112
        d.add(Rect(x, 20, bw, 60, fillColor=col, strokeColor=WHITE,
                   strokeWidth=1.5, rx=6, ry=6))
        for j, ln in enumerate(title.split("\n")):
            d.add(String(x+50, 72 - j*12, ln, fontSize=9, fillColor=WHITE,
                         fontName="Helvetica-Bold", textAnchor="middle"))
        d.add(String(x+50, 32, person, fontSize=8, fillColor=WHITE,
                     fontName="Helvetica-Oblique", textAnchor="middle"))
    d.add(String(230, 10, "4 TYPES OF LEARNING", fontSize=10, fillColor=DARK_BLUE,
                 fontName="Helvetica-Bold", textAnchor="middle"))
    return d

def psychotherapy_diagram():
    d = Drawing(460, 110)
    types = [
        ("Psycho-\nanalytic",  "Freud",     colors.HexColor("#4a148c")),
        ("Behaviour\nTherapy", "Skinner",   colors.HexColor("#1565c0")),
        ("CBT",                "Beck",      colors.HexColor("#c62828")),
        ("Humanistic",         "Rogers",    colors.HexColor("#2e7d32")),
        ("Group\nTherapy",     "Multiple",  colors.HexColor("#e65100")),
    ]
    bw = 80
    for i, (title, person, col) in enumerate(types):
        x = 10 + i*90
        d.add(Rect(x, 20, bw, 70, fillColor=col, strokeColor=WHITE,
                   strokeWidth=1.5, rx=6, ry=6))
        for j, ln in enumerate(title.split("\n")):
            d.add(String(x+40, 80 - j*13, ln, fontSize=8.5, fillColor=WHITE,
                         fontName="Helvetica-Bold", textAnchor="middle"))
        d.add(String(x+40, 30, person, fontSize=7.5, fillColor=WHITE,
                     fontName="Helvetica-Oblique", textAnchor="middle"))
    d.add(String(230, 10, "TYPES OF PSYCHOTHERAPY", fontSize=10, fillColor=DARK_BLUE,
                 fontName="Helvetica-Bold", textAnchor="middle"))
    return d

def acceptance_stages_diagram():
    d = Drawing(460, 80)
    stages = ["Denial", "Anger", "Bargaining", "Depression", "Acceptance"]
    cols_list = [colors.HexColor("#c62828"), colors.HexColor("#e65100"),
                 colors.HexColor("#f9a825"), colors.HexColor("#1565c0"),
                 colors.HexColor("#2e7d32")]
    bw = 82
    for i, (stage, col) in enumerate(zip(stages, cols_list)):
        x = 5 + i*90
        d.add(Rect(x, 20, bw, 45, fillColor=col, strokeColor=WHITE,
                   strokeWidth=1, rx=5, ry=5))
        d.add(String(x+41, 45, stage, fontSize=9, fillColor=WHITE,
                     fontName="Helvetica-Bold", textAnchor="middle"))
        if i < 4:
            d.add(String(x+bw+3, 46, "→", fontSize=12, fillColor=DARK_BLUE,
                         textAnchor="middle"))
    d.add(String(230, 10, "STAGES OF ACCEPTANCE OF DISABILITY (Kübler-Ross)",
                 fontSize=9, fillColor=DARK_BLUE, fontName="Helvetica-Bold",
                 textAnchor="middle"))
    return d

# ─── Cover Page ──────────────────────────────────────────────────────────────

class CoverBackground(Flowable):
    def draw(self):
        c = self.canv
        w, h = PAGE_W, PAGE_H
        # background gradient simulation
        c.setFillColor(DARK_BLUE)
        c.rect(0, 0, w, h, fill=1, stroke=0)
        c.setFillColor(MID_BLUE)
        c.rect(0, h*0.35, w, h*0.65, fill=1, stroke=0)
        # decorative circles
        c.setFillColor(colors.HexColor("#ffffff18"))
        c.circle(w*0.85, h*0.8, 130, fill=1, stroke=0)
        c.circle(w*0.1, h*0.2, 90, fill=1, stroke=0)
        c.circle(w*0.5, h*0.92, 60, fill=1, stroke=0)

    def wrap(self, *args):
        return (0, 0)

# ─── Build Document ──────────────────────────────────────────────────────────

def build_pdf(output_path):
    doc = SimpleDocTemplate(
        output_path, pagesize=A4,
        leftMargin=2.2*cm, rightMargin=2.2*cm,
        topMargin=2*cm, bottomMargin=2*cm,
        title="BPT Psychology - Complete Exam Notes",
        author="Orris AI"
    )

    story = []

    # ── COVER ──────────────────────────────────────────────────────────────
    story.append(CoverBackground())
    story.append(sp(80))
    story.append(Paragraph("🧠 PSYCHOLOGY", cover_title))
    story.append(sp(12))
    story.append(Paragraph("Complete Exam Notes for BPT Students", cover_sub))
    story.append(sp(8))
    story.append(Paragraph("All 5 Units | Important Topics Highlighted | Diagrams & Tables",
                            cover_info))
    story.append(sp(20))
    story.append(Paragraph("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━", cover_info))
    story.append(sp(10))
    story.append(Paragraph("BPT Final Examination Preparation", cover_sub))
    story.append(sp(6))
    story.append(Paragraph("Prepared by Orris AI · July 2026", cover_info))
    story.append(PageBreak())

    # ── TABLE OF CONTENTS ──────────────────────────────────────────────────
    story.append(heading("TABLE OF CONTENTS", 1))
    story.append(sp(6))
    toc_data = [
        ["Unit", "Topic", "Page"],
        ["1", "General Psychology - Definition, Methods, Heredity & Environment", "3"],
        ["2", "Learning, Memory, Perceptual Process", "5"],
        ["3", "Emotion, Motivation, Intelligence, Personality, Child Psychology", "9"],
        ["4", "Applied Psychology - Human Engineering, Decision Making, Stress", "14"],
        ["5", "Rehabilitation Psychology, Mental Disorders, Psychotherapy", "18"],
        ["★", "Important Topics Quick Revision Summary", "25"],
    ]
    toc_style = [
        ("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), 10),
        ("GRID",          (0,0), (-1,-1), 0.5, colors.HexColor("#90caf9")),
        ("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, LIGHT_BLUE]),
        ("TOPPADDING",    (0,0), (-1,-1), 6),
        ("BOTTOMPADDING", (0,0), (-1,-1), 6),
        ("LEFTPADDING",   (0,0), (-1,-1), 8),
    ]
    toc_table = Table(toc_data, colWidths=[40, 350, 50])
    toc_table.setStyle(TableStyle(toc_style))
    story.append(toc_table)
    story.append(PageBreak())

    # ════════════════════════════════════════════════════════════════════════
    # UNIT 1
    # ════════════════════════════════════════════════════════════════════════
    story.append(heading("UNIT 1 - GENERAL PSYCHOLOGY", 1))
    story.append(sp(8))

    # Ch1
    story.append(heading("Chapter 1: Definition & Scope of Psychology", 2))
    story.append(sp(4))
    story.append(Paragraph("<b>Definition of Psychology</b>", topic_title))
    story.append(Paragraph(
        "Psychology is the <b>scientific study of mind, consciousness, and behavior</b>. "
        "The word derives from Greek: <i>Psyche</i> (mind/soul) + <i>Logos</i> (study).",
        body))
    story.append(Paragraph(
        "Modern definition (Watson): <i>'Psychology is the science of behavior and mental processes.'</i>",
        def_style))
    story.append(sp(6))

    story.append(Paragraph("<b>⭐ Scope and Branches of Psychology</b>", topic_title))
    branches = comparison_table(
        ["Branch", "Focus Area"],
        [["Clinical Psychology", "Mental disorders, assessment & treatment"],
         ["Rehabilitation Psychology", "Disability, recovery, adjustment"],
         ["Educational Psychology", "Learning, teaching, school behavior"],
         ["Industrial/Org. Psychology", "Workplace behavior, HR"],
         ["Social Psychology", "Group behavior, social influence"],
         ["Developmental Psychology", "Growth across the lifespan"],
         ["Health Psychology", "Mind-body relationship, illness behavior"],
         ["Neuropsychology", "Brain structure and behavior"]])
    story.append(branches)
    story.append(sp(8))

    # Ch2
    story.append(heading("Chapter 2: Methods, Heredity & Environment", 2))
    story.append(sp(4))
    story.append(Paragraph("<b>⭐ Methods of Psychology</b>", topic_title))
    for m, d in [
        ("1. Introspection",
         "Looking inward at one's own mental processes. Oldest method. <b>Limitation</b>: subjective, cannot be verified."),
        ("2. Observation",
         "Systematic watching of behavior. Naturalistic (natural setting) vs Controlled (lab setting). More objective."),
        ("3. Experimentation",
         "Most scientific method. Uses Independent Variable (IV) and Dependent Variable (DV). Establishes cause-effect relationships."),
    ]:
        story.append(Paragraph(f"<b>{m}</b> - {d}", bullet))
    story.append(sp(6))

    story.append(Paragraph("<b>⭐ Heredity vs Environment (Nature vs Nurture)</b>", topic_title))
    story.append(comparison_table(
        ["Aspect", "Heredity (Nature)", "Environment (Nurture)"],
        [["Source", "Genes from parents", "Experiences after birth"],
         ["Examples", "Eye color, blood type, temperament", "Language, culture, education"],
         ["Role in Intelligence", "~50%", "~50%"],
         ["Supporters", "Nativists (Chomsky, Descartes)", "Empiricists (Locke, Watson)"],
         ["Modern View", "Both interact (Interactionist approach)", "Both interact"]]))
    story.append(sp(4))
    story.append(important_box(
        "Nature vs Nurture: Modern view is INTERACTIONIST - both heredity and environment "
        "work together to shape personality, intelligence, and behavior."))
    story.append(PageBreak())

    # ════════════════════════════════════════════════════════════════════════
    # UNIT 2
    # ════════════════════════════════════════════════════════════════════════
    story.append(heading("UNIT 2 - LEARNING, MEMORY & PERCEPTION", 1))
    story.append(sp(8))

    story.append(heading("Chapter 1: Learning", 2))
    story.append(sp(4))
    story.append(important_box("Types of Learning is one of the MOST ASKED topics in BPT exams!"))
    story.append(sp(6))
    story.append(Paragraph("Diagram: 4 Types of Learning", important))
    story.append(learning_diagram())
    story.append(sp(8))

    learning_rows = [
        ["Trial & Error", "Thorndike", "Repeated attempts until success; Law of Effect",
         "Cat in puzzle box"],
        ["Classical Conditioning", "Pavlov", "Learning by association (CS+US→CR)",
         "Dog salivates to bell"],
        ["Operant/Instrumental", "Skinner", "Learning through consequences (reinforcement/punishment)",
         "Rat pressing lever"],
        ["Insight Learning", "Kohler", "Sudden understanding; 'Aha!' moment",
         "Ape using stick for banana"],
    ]
    story.append(comparison_table(
        ["Type", "Theorist", "Key Principle", "Example"],
        learning_rows))
    story.append(sp(6))

    story.append(Paragraph("<b>Classical Conditioning - Key Terms</b>", topic_title))
    for term, defn in [
        ("US (Unconditioned Stimulus)", "Naturally triggers a response (e.g. food)"),
        ("UR (Unconditioned Response)", "Natural response to US (e.g. salivation)"),
        ("CS (Conditioned Stimulus)", "Neutral stimulus paired with US (e.g. bell)"),
        ("CR (Conditioned Response)", "Learned response to CS (e.g. salivation to bell)"),
        ("Extinction", "CS presented without US → CR weakens and disappears"),
        ("Generalization", "Similar stimuli produce same response"),
        ("Discrimination", "Distinguishing between similar stimuli"),
    ]:
        story.append(Paragraph(f"<b>{term}</b>: {defn}", bullet))
    story.append(sp(6))

    story.append(Paragraph("<b>Operant Conditioning - Key Terms</b>", topic_title))
    story.append(comparison_table(
        ["Term", "Definition", "Effect on Behavior"],
        [["Positive Reinforcement", "Adding pleasant stimulus", "Increases behavior"],
         ["Negative Reinforcement", "Removing unpleasant stimulus", "Increases behavior"],
         ["Punishment", "Adding unpleasant / removing pleasant stimulus", "Decreases behavior"],
         ["Extinction", "Withholding reinforcement", "Behavior gradually disappears"]]))
    story.append(sp(8))

    # Memory
    story.append(heading("Chapter 2: Memory", 2))
    story.append(sp(4))
    story.append(important_box("Memory - STM vs LTM comparison is almost always asked in exams!"))
    story.append(sp(6))
    story.append(Paragraph("Diagram: STM vs LTM", important))
    story.append(stm_ltm_diagram())
    story.append(sp(8))

    story.append(Paragraph("<b>Stages/Steps of Memory</b>", topic_title))
    for s, d in [("1. Encoding", "Converting information into memory code"),
                  ("2. Storage", "Retaining encoded information over time"),
                  ("3. Retrieval", "Accessing and bringing stored info to consciousness")]:
        story.append(Paragraph(f"<b>{s}</b>: {d}", bullet))
    story.append(sp(6))

    story.append(comparison_table(
        ["Feature", "STM", "LTM"],
        [["Duration", "15-30 seconds", "Lifetime (unlimited)"],
         ["Capacity", "7 ± 2 items (Miller's Law)", "Unlimited"],
         ["Encoding type", "Acoustic (sound)", "Semantic (meaning)"],
         ["Forgetting cause", "Displacement", "Interference / Decay"],
         ["Example", "Phone number just heard", "Childhood memories, skills"]]))
    story.append(sp(6))

    story.append(Paragraph("<b>⭐ Causes of Forgetting</b>", topic_title))
    for cause, detail in [
        ("Decay Theory", "Memory trace fades with disuse over time"),
        ("Interference Theory",
         "Proactive: Old memories interfere with new | Retroactive: New memories interfere with old"),
        ("Retrieval Failure", "Tip-of-tongue phenomenon; cue-dependent forgetting"),
        ("Repression (Freud)", "Motivated forgetting - painful memories pushed into unconscious"),
        ("Organic Causes", "Brain damage, disease, aging (Dementia)"),
    ]:
        story.append(Paragraph(f"<b>{cause}</b>: {detail}", bullet))
    story.append(sp(6))

    story.append(Paragraph("<b>Measurement of Memory</b>", topic_title))
    for m, d in [
        ("Recall", "Reproduce info without cues (e.g. essay questions)"),
        ("Recognition", "Identify correct answer from options (e.g. MCQs)"),
        ("Relearning / Savings Method", "Faster relearning = more retained; measures residual memory"),
    ]:
        story.append(Paragraph(f"<b>{m}</b>: {d}", bullet))
    story.append(sp(8))

    # Perception
    story.append(heading("Chapter 3: Perceptual Process", 2))
    story.append(sp(4))
    story.append(Paragraph(
        "Perception is the process of <b>organizing and interpreting sensory information</b>. "
        "It goes beyond raw sensation - the brain adds meaning.", body))
    story.append(sp(4))
    story.append(comparison_table(
        ["Factor Type", "Examples"],
        [["Structural factors", "Stimulus intensity, size, contrast, novelty, movement"],
         ["Functional factors", "Past experience, motivation, set, emotional state, culture"]]))
    story.append(sp(6))

    story.append(Paragraph("<b>⭐ Illusion vs Hallucination</b>", topic_title))
    story.append(comparison_table(
        ["Feature", "Illusion", "Hallucination"],
        [["Definition", "Misperception of a REAL stimulus", "Perception with NO external stimulus"],
         ["Stimulus", "Present but misinterpreted", "Completely absent"],
         ["Example", "Muller-Lyer lines illusion, mirage", "Hearing voices in schizophrenia"],
         ["Normal?", "Yes - can occur in normal people", "Usually pathological"],
         ["Treatment needed?", "No (usually)", "Yes - indicates mental disorder"]]))
    story.append(sp(4))
    story.append(Paragraph(
        "<b>Gestalt Principles</b>: Figure-Ground, Proximity, Similarity, Closure, Continuity",
        bullet))
    story.append(PageBreak())

    # ════════════════════════════════════════════════════════════════════════
    # UNIT 3
    # ════════════════════════════════════════════════════════════════════════
    story.append(heading("UNIT 3 - EMOTION, MOTIVATION & INTELLIGENCE", 1))
    story.append(sp(8))

    story.append(heading("Chapter 1: Emotion", 2))
    story.append(sp(4))
    story.append(Paragraph(
        "<b>Emotion</b>: A complex psychological state involving subjective experience, "
        "physiological response, and behavioral expression.<br/>"
        "<b>Feeling</b>: The conscious, subjective experience of an emotion.", body))
    story.append(sp(6))

    story.append(Paragraph("<b>Physiological Changes in Emotion</b>", topic_title))
    story.append(section_box("Physiological Changes During Emotion", [
        "Increased heart rate and blood pressure",
        "Increased secretion of adrenaline (epinephrine) from adrenal glands",
        "Dilated pupils (sympathetic activation)",
        "Increased sweating (galvanic skin response)",
        "Faster breathing rate",
        "Muscle tension and increased blood sugar",
        "Decreased digestive activity",
    ], bg=RED_LIGHT, border=RED))
    story.append(sp(8))

    story.append(important_box("THEORIES OF EMOTION are the most frequently asked topic - "
                               "always comes in long questions!"))
    story.append(sp(6))
    story.append(Paragraph("Diagram: Theories of Emotion", important))
    story.append(emotion_theory_diagram())
    story.append(sp(8))

    story.append(comparison_table(
        ["Feature", "James-Lange Theory", "Cannon-Bard Theory"],
        [["Proposed by", "William James & Carl Lange", "Walter Cannon & Philip Bard"],
         ["Core Idea",
          "Physiological change comes FIRST, then emotion",
          "Emotion and physiology occur SIMULTANEOUSLY"],
         ["Sequence",
          "Stimulus → Body response → Emotion felt",
          "Stimulus → Thalamus → Cortex (emotion) AND Body (simultaneously)"],
         ["Key Organ", "Peripheral nervous system / body", "Thalamus (central brain)"],
         ["Famous Quote",
          "'We feel afraid because we run, not we run because we feel afraid'",
          "Criticized JL: visceral changes are too slow and similar across emotions"],
         ["Limitation",
          "Cannot explain emotions with similar physiology",
          "Does not fully explain subjective feeling quality"]]))
    story.append(sp(8))

    # Motivation
    story.append(heading("Chapter 2: Motivation", 2))
    story.append(sp(4))
    story.append(comparison_table(
        ["Term", "Definition"],
        [["Motive", "Internal state that activates and directs behavior toward a goal"],
         ["Need", "Deficit/lack within the organism (physiological or psychological)"],
         ["Drive", "Tension/arousal created by a need that pushes the organism to act"]]))
    story.append(sp(6))

    story.append(Paragraph("<b>⭐ Types of Motives</b>", topic_title))
    story.append(comparison_table(
        ["Type", "Examples", "Basis"],
        [["Physiological (Primary/Biological)", "Hunger, thirst, sex, sleep, pain avoidance",
          "Body tissue needs; homeostasis"],
         ["Psychological (Personal)", "Achievement (n-Ach), affiliation, power, curiosity",
          "Personal growth; McClelland's theory"],
         ["Social (Secondary)", "Status, prestige, conformity, approval, belonging",
          "Learned through social interaction; culturally influenced"]]))
    story.append(sp(6))

    story.append(important_box("Maslow's Hierarchy of Needs - Almost always in exams. "
                               "Draw the pyramid!"))
    story.append(sp(6))
    story.append(Paragraph("Diagram: Maslow's Hierarchy of Needs", important))
    story.append(maslow_diagram())
    story.append(sp(6))
    for lvl, ex in [
        ("1. Physiological (Base)", "Food, water, shelter, air, sleep"),
        ("2. Safety", "Security, stability, freedom from fear"),
        ("3. Love & Belonging", "Friendship, intimacy, family, sense of connection"),
        ("4. Esteem", "Self-esteem, achievement, respect from others"),
        ("5. Self-Actualization (Top)", "Reaching full potential; creativity; peak experiences"),
    ]:
        story.append(Paragraph(f"<b>{lvl}</b>: {ex}", bullet))
    story.append(sp(8))

    # Intelligence
    story.append(heading("Chapter 3: Intelligence, Personality & Child Psychology", 2))
    story.append(sp(4))
    story.append(Paragraph("<b>⭐ Intelligence</b>", topic_title))
    story.append(Paragraph(
        "<b>IQ Formula</b> (Binet): IQ = (Mental Age ÷ Chronological Age) × 100", def_style))
    story.append(sp(4))
    story.append(comparison_table(
        ["IQ Range", "Classification"],
        [["130+", "Gifted / Very Superior"],
         ["120-129", "Superior"],
         ["110-119", "High Average"],
         ["90-109", "Average (Normal)"],
         ["80-89", "Low Average"],
         ["70-79", "Borderline"],
         ["Below 70", "Intellectual Disability"]]))
    story.append(sp(6))

    story.append(Paragraph("<b>Theories of Intelligence</b>", topic_title))
    story.append(comparison_table(
        ["Theory", "Theorist", "Key Idea"],
        [["Two-Factor Theory", "Spearman",
          "G factor (general intelligence) + S factors (specific abilities)"],
         ["Primary Mental Abilities", "Thurstone",
          "7 distinct factors: verbal, numerical, spatial, memory, etc."],
         ["Multiple Intelligences", "Howard Gardner",
          "8 intelligences: linguistic, logical, spatial, musical, bodily, interpersonal, etc."],
         ["Triarchic Theory", "Sternberg",
          "Analytical + Creative + Practical intelligence"]]))
    story.append(sp(6))

    story.append(Paragraph("<b>Personality</b>", topic_title))
    story.append(Paragraph(
        "<b>Definition</b>: Unique and stable pattern of thoughts, feelings, and behaviors "
        "that characterizes an individual.", body))
    for theory, content in [
        ("Sheldon's Types",
         "Endomorph (round, relaxed, sociable) | Mesomorph (muscular, assertive) | Ectomorph (thin, anxious, introverted)"),
        ("Freud's Structure of Personality",
         "Id (instinctual drives, pleasure principle) | Ego (reality principle) | Superego (moral conscience)"),
        ("Measurement",
         "MMPI (objective), Rorschach Inkblot Test (projective), TAT (projective), 16PF (trait-based)"),
    ]:
        story.append(Paragraph(f"<b>{theory}</b>: {content}", bullet))
    story.append(sp(6))

    story.append(Paragraph("<b>⭐ Child Psychology</b>", topic_title))
    story.append(Paragraph(
        "Child psychology is the study of <b>psychological development from birth to adolescence</b>, "
        "including cognitive, emotional, social, and physical development.", body))
    story.append(section_box(
        "Importance of Child Psychology for Rehabilitation Professionals (BPT)",
        ["Identify developmental delays (motor, cognitive, language) early",
         "Set age-appropriate treatment goals in pediatric physiotherapy",
         "Guide parent counseling and home exercise programs",
         "Plan sensory integration and motor skills therapy",
         "Understand behavioral challenges in children with disability",
         "Assess readiness for school and social participation"], bg=GREEN_LIGHT, border=GREEN))
    story.append(sp(6))

    story.append(Paragraph("<b>Methods of Studying Child Development</b>", topic_title))
    story.append(comparison_table(
        ["Method", "Description", "Example"],
        [["Baby Biography", "Detailed diary records kept by parents/observers about child's development; oldest method; Darwin used it",
          "Darwin's record of his son's first year"],
         ["Case History", "Comprehensive record of individual's medical, psychological, social and developmental background",
          "Clinical file with birth history, milestones, family info"],
         ["Behavior Rating", "Structured scales to rate observed behaviors systematically",
          "Vineland Adaptive Behavior Scale; school rating forms"]]))
    story.append(PageBreak())

    # ════════════════════════════════════════════════════════════════════════
    # UNIT 4
    # ════════════════════════════════════════════════════════════════════════
    story.append(heading("UNIT 4 - APPLIED PSYCHOLOGY", 1))
    story.append(sp(8))

    story.append(heading("Chapter 1: Human Engineering", 2))
    story.append(sp(4))
    story.append(Paragraph(
        "<b>Human Engineering (Ergonomics)</b>: The scientific study of designing machines, "
        "tools, workplaces, and systems to fit human capabilities and limitations.", body))
    story.append(sp(4))
    story.append(section_box("Importance of Human Engineering", [
        "Reduces workplace accidents and human errors",
        "Increases efficiency and productivity",
        "Reduces physical and mental fatigue (MSDs prevention - important for BPT!)",
        "Improves workplace safety and comfort",
        "Lowers cost due to fewer injuries and errors",
    ], bg=TEAL_LIGHT, border=TEAL))
    story.append(sp(6))
    story.append(comparison_table(
        ["Aspect", "Details"],
        [["Development", "Grew during World War II - complex military equipment caused operator errors"],
         ["Taylor's Role", "Scientific Management principles laid foundation"],
         ["Modern scope", "Office design, tool handles, vehicle controls, software interfaces"],
         ["Problems", "Machine-human mismatch, poor tool design, information overload, bad lighting/noise"]]))
    story.append(sp(8))

    story.append(heading("Chapter 2: Decision Making", 2))
    story.append(sp(4))
    story.append(important_box(
        "Decision Making process steps are frequently asked as short notes or long questions."))
    story.append(sp(6))
    story.append(Paragraph("<b>Steps in Decision Making</b>", topic_title))
    for i, step in enumerate([
        "Identify and define the problem",
        "Gather relevant information",
        "Generate possible alternatives",
        "Evaluate each alternative",
        "Select the best alternative",
        "Implement the chosen decision",
        "Evaluate and review the outcome",
    ], 1):
        story.append(Paragraph(f"<b>Step {i}:</b> {step}", bullet))
    story.append(sp(6))

    story.append(comparison_table(
        ["Feature", "Individual Decision Making", "Organizational Decision Making"],
        [["Basis", "Personal values, emotions, experience", "Organizational goals, policies, data"],
         ["Speed", "Faster", "Slower (more people involved)"],
         ["Cognitive biases", "More prone to heuristics and biases", "Group processes can reduce individual bias"],
         ["Risk", "Individual bears consequence", "Shared responsibility"],
         ["Examples", "Choosing a career, personal treatment", "Hospital policy, budget allocation"],
         ["Theory", "Bounded Rationality (Herbert Simon): 'good enough' decisions",
          "Rational model; Administrative model; Garbage can model"]]))
    story.append(sp(8))

    story.append(heading("Chapter 3: Stress, Work Culture & Counseling", 2))
    story.append(sp(4))
    story.append(important_box(
        "Stress - GAS Stages by Selye is a HIGH PRIORITY topic. Always in exams!"))
    story.append(sp(6))
    story.append(Paragraph("<b>Causes of Stress</b>", topic_title))
    story.append(comparison_table(
        ["Type", "Examples"],
        [["Physical stressors", "Illness, injury, pain, noise, heat, sleep deprivation"],
         ["Psychological stressors", "Frustration, conflict, pressure, life changes, uncertainty"],
         ["Social stressors", "Relationship problems, work conflict, social isolation"],
         ["Occupational stressors", "Work overload, poor management, lack of control"]]))
    story.append(sp(6))

    story.append(Paragraph("<b>⭐⭐ General Adaptation Syndrome (GAS) - Hans Selye</b>", topic_title))
    story.append(Paragraph("Diagram: GAS Three Stages", important))
    story.append(gas_diagram())
    story.append(sp(6))
    for stage, detail in [
        ("Stage 1 - ALARM",
         "Body mobilizes resources; adrenaline released; 'fight or flight' response; "
         "heart rate and blood pressure rise; immune function temporarily suppressed"),
        ("Stage 2 - RESISTANCE",
         "Body adapts to stressor; cortisol secreted; resistance above normal; "
         "body appears to cope but resources are being depleted"),
        ("Stage 3 - EXHAUSTION",
         "Prolonged stress exhausts resources; immune system weakened; "
         "disease/illness/breakdown occurs; can lead to burnout or death if unrelieved"),
    ]:
        story.append(Paragraph(f"<b>{stage}</b>: {detail}", bullet))
    story.append(sp(6))

    story.append(Paragraph("<b>⭐ Stress Management Techniques</b>", topic_title))
    story.append(section_box("Stress Management Methods", [
        "Deep breathing and diaphragmatic breathing exercises",
        "Progressive Muscle Relaxation (PMR) - Jacobson's technique",
        "Meditation and mindfulness",
        "Regular physical exercise (reduces cortisol, increases endorphins)",
        "Cognitive restructuring: identify and challenge negative thoughts",
        "Time management and prioritization",
        "Social support - talking to friends/family/counselor",
        "Biofeedback - learn to control physiological responses",
        "Yoga and relaxation response techniques",
    ], bg=GREEN_LIGHT, border=GREEN))
    story.append(sp(6))

    story.append(Paragraph("<b>Guidance and Counseling</b>", topic_title))
    story.append(comparison_table(
        ["Feature", "Guidance", "Counseling"],
        [["Nature", "Directive; providing information and advice", "Non-directive; facilitating self-exploration"],
         ["Focus", "Educational, vocational, personal decisions", "Personal/emotional problems, adjustment"],
         ["Relationship", "Expert-to-client; advisor-advisee", "Collaborative therapeutic relationship"],
         ["Goal", "Help choose right path", "Promote behavior change and emotional wellbeing"],
         ["Example", "Career guidance, study skills", "Therapy for anxiety, grief counseling"]]))
    story.append(sp(4))
    story.append(Paragraph("<b>Objectives of a Counselor</b>:", topic_title))
    for obj in [
        "Help clients gain self-awareness and self-understanding",
        "Facilitate positive behavior change",
        "Improve decision-making and problem-solving skills",
        "Provide emotional support and empathy",
        "Help client utilize their own resources and strengths",
    ]:
        story.append(bullet_para(obj))
    story.append(PageBreak())

    # ════════════════════════════════════════════════════════════════════════
    # UNIT 5
    # ════════════════════════════════════════════════════════════════════════
    story.append(heading("UNIT 5 - REHABILITATION PSYCHOLOGY", 1))
    story.append(sp(8))

    story.append(heading("Chapter 1: Rehabilitation Psychology", 2))
    story.append(sp(4))
    story.append(Paragraph(
        "Rehabilitation Psychology applies psychological knowledge to help people with "
        "disabilities, chronic illness, and injury achieve maximum health and quality of life.", body))
    story.append(sp(6))

    story.append(Paragraph("<b>Interpersonal, Familial and Social Relationships in Disability</b>", topic_title))
    story.append(section_box("Impact of Disability on Relationships", [
        "Overprotection by family: reduces independence and self-efficacy",
        "Social isolation: less community participation and friendships",
        "Changed family roles: caregiver burden, altered dynamics",
        "Stigma and discrimination in social settings",
        "Adjustment in sexual and intimate relationships",
        "Team approach needed: physiotherapist + psychologist + social worker + family",
    ], bg=LIGHT_BLUE, border=MID_BLUE))
    story.append(sp(6))

    story.append(important_box("Acceptance of Disability stages - frequently asked short note!"))
    story.append(sp(4))
    story.append(Paragraph("Diagram: Stages of Acceptance", important))
    story.append(acceptance_stages_diagram())
    story.append(sp(6))
    for stage, detail in [
        ("1. Denial", "Refusing to accept the disability; 'This is not real'"),
        ("2. Anger", "Frustration and resentment; 'Why me?'"),
        ("3. Bargaining", "Seeking alternative cures or making deals"),
        ("4. Depression", "Grief, hopelessness, withdrawal from activities"),
        ("5. Acceptance", "Adjusting to new reality; moving forward with disability"),
    ]:
        story.append(Paragraph(f"<b>{stage}</b>: {detail}", bullet))
    story.append(sp(6))

    story.append(Paragraph("<b>⭐ Contribution of Psychology in Total Rehabilitation</b>", topic_title))
    story.append(section_box("Psychological Contributions", [
        "Psychological assessment (IQ, personality, emotional status)",
        "Motivation therapy to increase participation and adherence",
        "Behavior modification techniques (positive reinforcement)",
        "Family counseling and caregiver support",
        "Vocational guidance and rehabilitation planning",
        "Stress management training for patient and family",
        "Pain management through psychological techniques",
        "Social skills training and community reintegration",
    ], bg=GREEN_LIGHT, border=GREEN))
    story.append(sp(8))

    story.append(heading("Chapter 2: Normality, Abnormality & Mental Disorders", 2))
    story.append(sp(4))
    story.append(important_box(
        "Definition of Abnormality, Neurosis vs Psychosis, Types of disorders - "
        "VERY HIGH probability in long questions!"))
    story.append(sp(6))

    story.append(Paragraph("<b>⭐ Criteria of Normality</b>", topic_title))
    for crit, detail in [
        ("Statistical Norm", "Behaviors that most people show (bell curve; average is normal)"),
        ("Social/Cultural Norm", "Behaviors acceptable within a given culture and time"),
        ("Ideal Norm (Jahoda's Criteria)", "Positive mental health: self-acceptance, personal growth, autonomy, accurate perception, environmental mastery"),
        ("Medical Model", "Absence of disease, disorder or biological dysfunction"),
    ]:
        story.append(Paragraph(f"<b>{crit}</b>: {detail}", bullet))
    story.append(sp(6))

    story.append(Paragraph("<b>⭐⭐ Criteria of Abnormality - The 4 D's</b>", topic_title))
    story.append(comparison_table(
        ["'D'", "Meaning", "Example"],
        [["Distress", "Personal suffering and unhappiness", "Person feels extreme anxiety, cannot cope"],
         ["Deviance", "Violation of social and cultural norms", "Talking to oneself in public, unusual beliefs"],
         ["Dysfunction", "Impaired ability to function in daily life, work, relationships",
          "Cannot maintain job, relationships break down"],
         ["Danger", "Risk of harm to self or others", "Suicidal thoughts, aggression toward others"]]))
    story.append(sp(6))

    story.append(Paragraph("<b>⭐⭐ Neurosis vs Psychosis</b>", topic_title))
    story.append(comparison_table(
        ["Feature", "Neurotic Disorders", "Psychotic Disorders"],
        [["Severity", "Mild to moderate", "Severe"],
         ["Contact with reality", "Intact - person knows they have a problem", "Lost - person has no insight"],
         ["Insight", "Present", "Absent"],
         ["Hallucinations", "Absent (usually)", "Common (especially auditory)"],
         ["Delusions", "Absent", "Present"],
         ["Hospitalization", "Rarely required", "Often required"],
         ["Daily functioning", "Mostly maintained", "Severely impaired"],
         ["Examples",
          "Anxiety disorders, phobias, OCD, mild depression, conversion disorder",
          "Schizophrenia, delusional disorder, bipolar (manic phase)"]]))
    story.append(sp(6))

    story.append(Paragraph("<b>Types of Mental Disorders</b>", topic_title))
    story.append(comparison_table(
        ["Disorder Type", "Cause", "Examples"],
        [["Neurotic", "Psychological/stress; anxiety-based", "Phobias, OCD, GAD, conversion disorder"],
         ["Psychotic", "Biological + environmental; severe", "Schizophrenia, delusional disorder"],
         ["Psychosomatic", "Psychological factors worsening physical illness",
          "Peptic ulcer, hypertension, asthma, migraine"],
         ["Organic Mental", "Physical brain damage or disease",
          "Dementia, delirium, amnesia (brain injury/aging)"],
         ["Substance Abuse", "Repeated use of mind-altering substances",
          "Alcohol dependence, opioid addiction, sedative abuse"]]))
    story.append(sp(6))

    story.append(Paragraph("<b>Factors Contributing to Normal Mental Health</b>", topic_title))
    for f in [
        "Positive self-concept and high self-esteem",
        "Effective coping strategies for stress",
        "Satisfying interpersonal relationships",
        "Realistic perception of self and environment",
        "Emotional stability and regulation",
        "Sense of purpose and meaning in life",
        "Ability to work productively and contribute to society",
    ]:
        story.append(bullet_para(f))
    story.append(sp(8))

    story.append(heading("Chapter 3: Old Age, Psychotherapy & Child Psychiatry", 2))
    story.append(sp(4))

    story.append(Paragraph("<b>Problems in Adjustment in Old Age</b>", topic_title))
    story.append(comparison_table(
        ["Domain", "Problems", "Rehabilitation Approach"],
        [["Physical", "Declining health, reduced strength, chronic pain",
          "Exercise therapy, pain management, adaptive aids"],
         ["Psychological", "Depression, anxiety, loneliness, fear of death",
          "Counseling, psychotherapy, social activities"],
         ["Cognitive", "Memory decline, slower processing, dementia risk",
          "Cognitive rehabilitation, memory training"],
         ["Social", "Loss of friends/spouse, retirement adjustment, reduced roles",
          "Activity groups, support groups, vocational guidance"],
         ["Economic", "Fixed income, dependence on others",
          "Financial counseling, community resources"]]))
    story.append(sp(8))

    story.append(important_box(
        "PSYCHOTHERAPY - Types and definitions are almost always in the long question. "
        "Know all 5 types with their key techniques!"))
    story.append(sp(6))
    story.append(Paragraph("Diagram: Types of Psychotherapy", important))
    story.append(psychotherapy_diagram())
    story.append(sp(6))

    story.append(Paragraph("<b>⭐⭐⭐ Types of Psychotherapy</b>", topic_title))
    psych_rows = [
        ["1. Psychoanalytic\nTherapy", "Sigmund Freud",
         "Free association, dream analysis, transference interpretation",
         "Bring unconscious conflicts to conscious awareness"],
        ["2. Behaviour Therapy", "B.F. Skinner /\nWolpe",
         "Systematic desensitization, token economy, flooding, aversion therapy",
         "Modify maladaptive behavior using learning principles"],
        ["3. Cognitive Behavioral\nTherapy (CBT)", "Aaron Beck",
         "Identify cognitive distortions, thought records, behavioral experiments",
         "Change negative thought patterns and behaviors"],
        ["4. Humanistic\nTherapy", "Carl Rogers",
         "Unconditional positive regard, empathy, congruence, active listening",
         "Self-actualization, personal growth, self-acceptance"],
        ["5. Group Therapy", "Multiple",
         "Group discussion, peer support, role play, psychodrama",
         "Social skills, peer support, cost-effective treatment"],
    ]
    story.append(comparison_table(
        ["Type", "Founder", "Techniques", "Goal"],
        psych_rows))
    story.append(sp(6))

    story.append(Paragraph(
        "<b>CBT</b> is the most evidence-based psychotherapy today - important for BPT "
        "as it is used in pain management and rehabilitation psychology.", note_style))
    story.append(sp(8))

    story.append(Paragraph("<b>⭐ Child Psychiatry</b>", topic_title))
    story.append(comparison_table(
        ["Condition", "Key Features", "Treatment Approach"],
        [["ADHD", "Inattention, hyperactivity, impulsivity; before age 12",
          "Behavioral therapy + medication (stimulants); parent training"],
         ["Autism Spectrum Disorder (ASD)", "Impaired social communication, restricted/repetitive behaviors",
          "Early intervention; ABA therapy; speech and OT"],
         ["Intellectual Disability", "IQ < 70 + adaptive behavior deficits",
          "Functional skills training; special education; physiotherapy"],
         ["Conduct Disorder", "Persistent antisocial behavior, aggression, rule violations",
          "CBT; family therapy; behavior management"],
         ["Childhood Depression", "Sadness, withdrawal, sleep/appetite changes (different from adults)",
          "CBT; play therapy; family involvement"],
         ["Learning Disorders", "Dyslexia, dyscalculia, dysgraphia",
          "Remedial education; cognitive training"]]))
    story.append(PageBreak())

    # ════════════════════════════════════════════════════════════════════════
    # QUICK REVISION / SUMMARY
    # ════════════════════════════════════════════════════════════════════════
    story.append(heading("⭐ IMPORTANT TOPICS - QUICK REVISION", 1))
    story.append(sp(8))

    story.append(heading("Top 10 Short Notes (2-5 marks)", 2))
    story.append(sp(4))
    sn_data = [
        ["#", "Topic", "Key Point to Remember"],
        ["1", "James-Lange Theory", "Physiology FIRST → then emotion; 'We run, then fear'"],
        ["2", "Cannon-Bard Theory", "Thalamus → SIMULTANEOUS emotion + body response"],
        ["3", "STM vs LTM", "STM: 7±2 items, 30 sec | LTM: Unlimited, semantic"],
        ["4", "Classical Conditioning", "US+CS → CR; Pavlov's dog; bell + food = salivation"],
        ["5", "GAS by Selye", "Alarm → Resistance → Exhaustion"],
        ["6", "Maslow's Hierarchy", "5 levels: Physiological → Safety → Love → Esteem → Self-actualization"],
        ["7", "4 D's of Abnormality", "Distress, Deviance, Dysfunction, Danger"],
        ["8", "Neurosis vs Psychosis", "Neurosis: insight intact; Psychosis: reality lost"],
        ["9", "Illusion vs Hallucination", "Illusion: real stimulus misperceived; Hallucination: no stimulus"],
        ["10", "Acceptance of Disability", "Denial → Anger → Bargaining → Depression → Acceptance"],
    ]
    t = Table(sn_data, colWidths=[25, 140, 275])
    t.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), 9.5),
        ("GRID",          (0,0), (-1,-1), 0.5, colors.HexColor("#90caf9")),
        ("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, LIGHT_BLUE]),
        ("TOPPADDING",    (0,0), (-1,-1), 5),
        ("BOTTOMPADDING", (0,0), (-1,-1), 5),
        ("LEFTPADDING",   (0,0), (-1,-1), 6),
        ("VALIGN",        (0,0), (-1,-1), "MIDDLE"),
    ]))
    story.append(t)
    story.append(sp(12))

    story.append(heading("Top 8 Long Questions (10-15 marks)", 2))
    story.append(sp(4))
    lq_data = [
        ["#", "Question", "Units to Cover"],
        ["1", "Describe theories of emotion with comparison", "Unit 3 Ch 1"],
        ["2", "Explain memory - stages, STM vs LTM, causes of forgetting", "Unit 2 Ch 2"],
        ["3", "Types of learning with theories, examples and key concepts", "Unit 2 Ch 1"],
        ["4", "Stress - causes, reactions, GAS stages, management techniques", "Unit 4 Ch 3"],
        ["5", "Psychotherapy - definition and all 5 types with techniques", "Unit 5 Ch 3"],
        ["6", "Normality and Abnormality - criteria and types of mental disorders", "Unit 5 Ch 2"],
        ["7", "Motivation - types of motives and Maslow's hierarchy of needs", "Unit 3 Ch 2"],
        ["8", "Rehabilitation psychology - contribution of psychology in total rehab", "Unit 5 Ch 1"],
    ]
    t2 = Table(lq_data, colWidths=[25, 300, 115])
    t2.setStyle(TableStyle([
        ("BACKGROUND",    (0,0), (-1,0), ACCENT),
        ("TEXTCOLOR",     (0,0), (-1,0), WHITE),
        ("FONTNAME",      (0,0), (-1,0), "Helvetica-Bold"),
        ("FONTSIZE",      (0,0), (-1,-1), 9.5),
        ("GRID",          (0,0), (-1,-1), 0.5, colors.HexColor("#ffcc80")),
        ("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, ACCENT_LIGHT]),
        ("TOPPADDING",    (0,0), (-1,-1), 5),
        ("BOTTOMPADDING", (0,0), (-1,-1), 5),
        ("LEFTPADDING",   (0,0), (-1,-1), 6),
        ("VALIGN",        (0,0), (-1,-1), "MIDDLE"),
    ]))
    story.append(t2)
    story.append(sp(12))

    story.append(heading("Key Definitions to Memorize", 2))
    story.append(sp(4))
    def_data = [
        ["Term", "Definition"],
        ["Psychology", "Science of behavior and mental processes"],
        ["Perception", "Organizing and interpreting sensory information"],
        ["Emotion", "Complex state with subjective experience, physiology, and behavior"],
        ["Motivation", "Internal state activating and directing behavior toward a goal"],
        ["Intelligence", "Capacity to learn, reason, problem-solve, and adapt"],
        ["Personality", "Unique, stable pattern of thoughts, feelings, and behaviors"],
        ["Stress", "Response to demands exceeding coping resources"],
        ["Neurosis", "Mental disorder with intact reality contact and present insight"],
        ["Psychosis", "Severe mental disorder with loss of reality contact"],
        ["Rehabilitation Psychology", "Application of psychological principles to disability and recovery"],
        ["Psychotherapy", "Systematic use of psychological methods to treat mental disorders"],
    ]
    dt = Table(def_data, colWidths=[160, 280])
    dt.setStyle(TableStyle([
        ("BACKGROUND",    (0,0), (-1,0), PURPLE),
        ("TEXTCOLOR",     (0,0), (-1,0), WHITE),
        ("FONTNAME",      (0,0), (-1,0), "Helvetica-Bold"),
        ("FONTSIZE",      (0,0), (-1,-1), 9.5),
        ("GRID",          (0,0), (-1,-1), 0.5, colors.HexColor("#ce93d8")),
        ("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, PURPLE_LIGHT]),
        ("TOPPADDING",    (0,0), (-1,-1), 5),
        ("BOTTOMPADDING", (0,0), (-1,-1), 5),
        ("LEFTPADDING",   (0,0), (-1,-1), 6),
        ("VALIGN",        (0,0), (-1,-1), "MIDDLE"),
    ]))
    story.append(dt)
    story.append(sp(12))

    # Last page - Good luck
    story.append(hr(ACCENT, 2))
    story.append(sp(8))
    story.append(Paragraph("EXAM DAY TIPS", S("et", fontSize=16,
                textColor=ACCENT, fontName="Helvetica-Bold",
                alignment=TA_CENTER, leading=22)))
    story.append(sp(6))
    tips = [
        "For theory questions - always write the theorist's name (Pavlov, Selye, Maslow, etc.)",
        "Draw diagrams wherever possible - GAS diagram, Maslow's pyramid, STM-LTM flow",
        "Start every answer with a clear definition",
        "Theories of Emotion - write BOTH James-Lange AND Cannon-Bard, then compare",
        "Neurosis vs Psychosis - a comparison TABLE scores full marks",
        "In Rehabilitation questions - always mention the BPT/rehab professional's role",
        "CBT is the most evidence-based therapy - mention this in psychotherapy answers",
        "Time management - attempt sure questions first, then longer ones",
    ]
    for tip in tips:
        story.append(Paragraph(f"✓  {tip}", bullet))
    story.append(sp(16))
    story.append(Paragraph("BEST OF LUCK ON YOUR BPT EXAM! YOU'VE GOT THIS! 💪🎓",
                            S("gl", fontSize=14, textColor=DARK_BLUE,
                              fontName="Helvetica-Bold", alignment=TA_CENTER, leading=20)))

    doc.build(story)
    print("PDF built successfully!")

build_pdf("/tmp/workspace/bpt-psychology/BPT_Psychology_Exam_Notes.pdf")
Running Command

cd /tmp/workspace/bpt-psychology && python make_pdf.py 2>&1

Running Command

ls -lh /tmp/workspace/bpt-psychology/BPT_Psychology_Exam_Notes.pdf

Your PDF is ready! Download it here:

BPT Psychology Exam Notes

PDF Document · PDF


Here is what is inside the PDF (30+ pages):
Cover Page - Professional designed cover with title
Table of Contents - All 5 units with page numbers
UNIT 1 - Definition, Scope & Branches of Psychology, Methods (Introspection/Observation/Experimentation), Heredity vs Environment table
UNIT 2 - 4 Types of Learning (with diagram), Memory Stages, STM vs LTM diagram + table, Causes of Forgetting, Illusion vs Hallucination comparison
UNIT 3 - Emotion + Physiological changes, James-Lange vs Cannon-Bard diagram, Motivation types, Maslow's Hierarchy pyramid diagram, Intelligence (IQ table, theories), Personality, Child Psychology, Methods of child development
UNIT 4 - Human Engineering/Ergonomics, Decision Making (7 steps), Stress + GAS diagram (3 stages), Stress Management techniques, Guidance vs Counseling table
UNIT 5 - Rehabilitation Psychology, Acceptance of Disability (5 stages diagram), 4 D's of Abnormality, Neurosis vs Psychosis comparison table, All 5 mental disorder types, Old Age problems, Psychotherapy diagram + all 5 types table, Child Psychiatry conditions
Quick Revision Summary - Top 10 short notes, Top 8 long questions, Key definitions table, Exam day tips
All diagrams are color-coded and visual for quick reading. Best of luck tomorrow! 🎓

Make pdf with out flow chart only show heading sub heading and detail theory

Make pdf with out flow chart only show heading sub heading and detail theory as

Why file is not completeing

I apologize - my previous two responses got interrupted before I could actually write and run the new script. Let me do it properly right now.

Still not completeing

This is a shared conversation. Sign in to Orris to start your own chat.