Hi

Hey! How can I help you today?

I am preparing for neet 2027

That's great! NEET 2027 gives you a solid runway to prepare well. I can help you across all three subjects - Physics, Chemistry, and Biology.
Here's how I can assist you:
Biology
  • Explain concepts from Botany and Zoology
  • Help with NCERT-based questions
  • Cover topics like genetics, ecology, human physiology, cell biology, etc.
Chemistry
  • Physical, Organic, and Inorganic Chemistry concepts
  • Reaction mechanisms, named reactions, periodic trends
  • Problem-solving for numerical questions
Physics
  • Concepts and derivations
  • Numerical problem practice
  • Topics like mechanics, electrostatics, optics, modern physics, etc.
Other support
  • Topic-wise notes and summaries
  • Previous year question (PYQ) analysis
  • Doubt clearing on any concept
  • Study strategy and topic prioritization

What would you like to start with? You can ask me a concept, a doubt, a question from any topic, or even ask me to suggest a study plan.

All

Asking for Preferences

What class are you currently in? ยท Which subjects do you find most challenging right now? ยท What do you need most right now?

Got it! You're in Class 12, all subjects feel tough, and you need concept clarity. That's actually the best place to start - strong concepts make everything else (PYQs, MCQs, revision) much easier.
Here's a practical approach for you:

Your NEET 2027 Game Plan

You have ~12-13 months. That's enough time to cover everything thoroughly if you're consistent.

Phase 1: Foundation (Now - Oct 2026)

Focus on Class 12 syllabus alongside your school, and revise Class 11 topics in parallel.
SubjectPriority Class 12 Topics to Start
BiologyReproduction, Genetics & Evolution, Biology in Human Welfare
ChemistryElectrochemistry, Chemical Kinetics, Coordination Compounds, Organic (Amines, Biomolecules)
PhysicsElectrostatics, Current Electricity, Magnetic Effects, Optics

Phase 2: Complete + Practice (Nov 2026 - Feb 2027)

  • Finish full syllabus
  • Start solving PYQs topic-wise
  • Focus on NCERT thoroughly (especially Biology - 90%+ questions are NCERT-based)

Phase 3: Revision + Mocks (Mar - May 2027)

  • Full syllabus revision (at least 3 rounds)
  • Daily mock tests
  • Weak area targeting

Subject-wise Tips

Biology - Most scoring (360 marks). Read NCERT line by line. Diagrams are frequently asked. Target 300+.
Chemistry - Balance theory (Inorganic = NCERT) and numericals (Physical). Organic reactions need daily practice.
Physics - Most concept-heavy. Build formula sheets. Practice at least 20 numericals per topic before moving on.

How to use me effectively

Just ask things like:
  • "Explain the mechanism of DNA replication"
  • "I don't understand coordination compounds - start from basics"
  • "Give me 5 PYQ-style questions on Ray Optics"
  • "What's the difference between Km and Vmax in enzymes?"
What topic would you like to start with today?

Ok

Pick a topic and let's dive in! ๐ŸŽฏ
What do you want to start with today?
Some popular starting points for Class 12 NEET prep:
  • Bio: Reproduction in organisms / Genetics
  • Chem: Electrochemistry / Coordination compounds
  • Physics: Electrostatics / Current electricity
Just name the topic - or ask any doubt you have right now!
attachment
attachment

I have exam of these topics

Your Minor Test is on 5th July 2026 - that's just 6 days away! Let's make the most of it.
Here's your syllabus breakdown:
SubjectTopic
PhysicsUnits and Dimensions
ChemistryMole Concept and Atomic Structure
Biology (Botany)Cell - The Unit of Life, Cell Cycle and Division (upto Mitosis)
Biology (Zoology)Breathing and Exchange of Gases

These are all high-weightage NEET topics - great that you're focusing on them early.
Where do you want to start?
  1. ๐Ÿ“ Physics - Units & Dimensions
  2. โš—๏ธ Chemistry - Mole Concept & Atomic Structure
  3. ๐ŸŒฟ Botany - Cell: Unit of Life + Cell Cycle/Mitosis
  4. ๐Ÿซ Zoology - Breathing & Exchange of Gases
  5. ๐Ÿ—‚๏ธ Give me a quick revision summary of ALL topics
Just pick a number or name the topic!

All

Let me build you a complete revision guide for all 5 topics right now!---

๐Ÿ“š COMPLETE REVISION GUIDE - Minor Test (5th July 2026)


โšก PHYSICS - Units and Dimensions

Fundamental Quantities & Units (SI)

QuantitySI UnitSymbol
LengthMetrem
MassKilogramkg
TimeSeconds
Electric CurrentAmpereA
TemperatureKelvinK
Luminous IntensityCandelacd
Amount of SubstanceMolemol

Supplementary Units

  • Plane angle โ†’ radian (rad)
  • Solid angle โ†’ steradian (sr)

Important Derived Units & Dimensions

QuantityFormulaDimensions
Forcema[MLTโปยฒ]
Work/EnergyFd[MLยฒTโปยฒ]
PowerW/t[MLยฒTโปยณ]
PressureF/A[MLโปยนTโปยฒ]
Velocityd/t[LTโปยน]
Accelerationv/t[LTโปยฒ]
Momentummv[MLTโปยน]
Densitym/V[MLโปยณ]
Frequency1/t[Tโปยน]
ChargeIt[AT]
VoltageW/q[MLยฒTโปยณAโปยน]

Rules for Significant Figures

  1. All non-zero digits are significant
  2. Zeros between non-zero digits are significant (e.g., 1007 โ†’ 4 sig figs)
  3. Leading zeros are NOT significant (e.g., 0.007 โ†’ 1 sig fig)
  4. Trailing zeros after decimal ARE significant (e.g., 1.500 โ†’ 4 sig figs)

Dimensional Analysis - Key Uses

  1. Check correctness of an equation (dimensions must match on both sides)
  2. Derive relations between physical quantities
  3. Convert units from one system to another

Dimensionless Quantities (Important for MCQs)

  • Angle, strain, relative density, refractive index, Reynolds number, coefficient of friction, all pure ratios

Quantities with Same Dimensions

  • Work, Energy, Torque โ†’ [MLยฒTโปยฒ]
  • Frequency, Angular velocity, Decay constant โ†’ [Tโปยน]
  • Impulse, Momentum โ†’ [MLTโปยน]
  • Stress, Pressure, Elastic modulus โ†’ [MLโปยนTโปยฒ]

NEET Trick

Dimensional analysis cannot determine dimensionless constants (like 2, ฯ€, ยฝ). It also cannot check equations involving addition/subtraction.

โš—๏ธ CHEMISTRY - Mole Concept & Atomic Structure

PART A: MOLE CONCEPT

The Mole - Core Idea

  • 1 mole = 6.022 ร— 10ยฒยณ particles (Avogadro's number, Nโ‚)
  • 1 mole of any gas at STP = 22.4 L
  • Molar mass = mass of 1 mole in grams (numerically = atomic/molecular weight)

Key Formulas

FormulaExpression
Molesn = mass (g) / Molar mass
Moles from particlesn = N / Nโ‚
Moles of gas (STP)n = Volume(L) / 22.4
Molarity (M)Moles of solute / Volume of solution in L
Molality (m)Moles of solute / Mass of solvent in kg
Mole fractionnโ‚ / (nโ‚ + n_b)
% by mass(mass of solute / mass of solution) ร— 100

Empirical vs Molecular Formula

  • Empirical formula = simplest whole number ratio of atoms
  • Molecular formula = actual number of atoms
  • Molecular formula = n ร— Empirical formula
  • n = Molecular mass / Empirical formula mass

Limiting Reagent

The reactant that is completely consumed first and limits the amount of product formed.

POAC (Principle of Atom Conservation)

Atoms of each element are conserved in a reaction. Very useful for mole calculations without balancing equations.

PART B: ATOMIC STRUCTURE

Discovery Timeline

DiscoveryScientistKey Point
ElectronJ.J. ThomsonCathode ray experiment, e/m ratio
ProtonGoldsteinAnode rays
NeutronChadwickBombardment of Be with ฮฑ-particles
NucleusRutherfordGold foil experiment

Atomic Models

Thomson's Model - "Plum pudding" - electrons embedded in positive sphere (failed to explain scattering)
Rutherford's Model:
  • Nucleus is small, dense, positively charged
  • Electrons revolve around nucleus
  • Failure: Couldn't explain stability (accelerating electrons should radiate energy and spiral in)
Bohr's Model (Hydrogen-like atoms):
  • Electrons in fixed circular orbits (shells)
  • Energy is quantized: Eโ‚™ = -13.6/nยฒ eV (for H)
  • Radius: rโ‚™ = 0.529 ร— nยฒ ร… (for H)
  • On absorbing energy โ†’ electron jumps to higher orbit (excitation)
  • On releasing energy โ†’ electron falls to lower orbit (emission)

Spectral Series of Hydrogen

SeriesTransition to shellRegion
Lymann = 1UV
Balmern = 2Visible
Paschenn = 3IR
Brackettn = 4IR
Pfundn = 5IR
Trick: "Let Bright People Be Positive" โ†’ Lyman, Balmer, Paschen, Brackett, Pfund

Quantum Numbers

Quantum NumberSymbolValuesDescribes
Principaln1, 2, 3...Shell/Energy level
Azimuthall0 to (n-1)Subshell (s,p,d,f)
Magneticmโ‚—-l to +lOrbital orientation
Spinmโ‚›+ยฝ or -ยฝElectron spin

Electronic Configuration Rules

  1. Aufbau principle - Fill lowest energy orbitals first
  2. Pauli Exclusion - No two electrons have same 4 quantum numbers; max 2 electrons per orbital
  3. Hund's Rule - Maximum multiplicity; one electron in each orbital of same subshell before pairing

Orbital filling order (Aufbau):

1s < 2s < 2p < 3s < 3p < 4s < 3d < 4p < 5s < 4d...

de Broglie Wavelength

ฮป = h/mv = h/p (wave nature of matter)

Heisenberg's Uncertainty Principle

ฮ”x ยท ฮ”p โ‰ฅ h/4ฯ€ (cannot know position and momentum simultaneously with perfect accuracy)

๐ŸŒฟ BIOLOGY (BOTANY) - Cell: Unit of Life + Cell Cycle & Mitosis

PART A: CELL - THE UNIT OF LIFE

Cell Theory (Schleiden, Schwann, Virchow)

  1. All living organisms are made of cells
  2. Cell is the basic structural and functional unit of life
  3. All cells arise from pre-existing cells (Virchow - Omnis cellula e cellula)

Prokaryotic vs Eukaryotic Cell

FeatureProkaryoticEukaryotic
NucleusAbsent (nucleoid)Present (membrane-bound)
Size1-10 ยตm10-100 ยตm
Membrane-bound organellesAbsentPresent
Ribosomes70S (50S + 30S)80S (60S + 40S)
Cell wallPresent (peptidoglycan in bacteria)Present in plants (cellulose); absent in animals
ExamplesBacteria, CyanobacteriaPlant, Animal, Fungi cells

Cell Organelles - Quick Reference

OrganelleKey FunctionSpecial Feature
Cell membraneSelectively permeable barrierFluid mosaic model (Singer & Nicolson)
Cell wallProtection, shapeCellulose in plants; chitin in fungi
NucleusControl center, heredityNuclear envelope has pores
MitochondriaATP production (respiration)Own DNA & ribosomes; double membrane
ChloroplastPhotosynthesisOwn DNA; double membrane; in plants only
ER (Rough)Protein synthesis & transportHas ribosomes
ER (Smooth)Lipid synthesis, detoxNo ribosomes
Golgi BodySecretion, modification"Post office of cell"; forms lysosomes
LysosomesIntracellular digestion"Suicidal bags" (de Duve)
RibosomesProtein synthesis70S (prokaryote), 80S (eukaryote)
VacuolesStorage, turgorLarge central vacuole in plants
CentrosomeCell divisionAbsent in higher plants
PeroxisomesOxidative reactionsBreak Hโ‚‚Oโ‚‚

Plasma Membrane

  • Fluid Mosaic Model - Singer & Nicolson (1972)
  • Phospholipid bilayer with embedded proteins
  • Integral proteins - span the membrane
  • Peripheral proteins - on surface
  • Membrane is selectively permeable

Cell Wall

  • Primary wall - cellulose, pectin, hemicellulose (young cells)
  • Secondary wall - lignin (mature cells, wood)
  • Middle lamella - calcium pectate; holds adjacent cells

Nucleus

  • Nuclear envelope - double membrane with pores
  • Nucleoplasm - fluid inside
  • Nucleolus - site of rRNA synthesis
  • Chromatin - DNA + histone proteins
    • Euchromatin = loosely packed, transcriptionally active
    • Heterochromatin = densely packed, inactive

Mitochondria ("Powerhouse")

  • Double membrane; inner membrane folded into cristae
  • Matrix contains enzymes for Krebs cycle
  • Contains own circular DNA โ†’ semi-autonomous organelle

Chloroplast

  • Double membrane; inner membrane forms thylakoids (stacked = grana)
  • Stroma = fluid between thylakoids (dark reactions here)
  • Contains own DNA โ†’ semi-autonomous

PART B: CELL CYCLE AND DIVISION (UPTO MITOSIS)

Cell Cycle Phases

G1 โ†’ S โ†’ G2 โ†’ M (Mitosis)
PhaseWhat Happens
G1 (Gap 1)Cell grows; proteins synthesized; organelles increase
S (Synthesis)DNA replication (2N โ†’ 4N DNA content)
G2 (Gap 2)Further growth; preparation for division
M (Mitosis)Actual cell division
G0Quiescent phase; cells exit cycle temporarily
  • G1 + S + G2 = Interphase (longest phase)
  • S phase is when DNA is replicated

Mitosis - Stages

1. Prophase

  • Chromatin condenses into chromosomes
  • Nucleolus disappears
  • Spindle fibers begin to form
  • Nuclear envelope starts to break down

2. Metaphase

  • Chromosomes align at metaphase plate (equatorial plane)
  • Spindle fibers attach to centromere (kinetochore)
  • Chromosomes are most visible - best stage for karyotyping

3. Anaphase

  • Centromeres split
  • Sister chromatids pulled to opposite poles
  • Cell elongates
  • "V", "J", "L" shapes of chromosomes visible

4. Telophase

  • Chromosomes reach poles
  • Nuclear envelope reforms
  • Nucleolus reappears
  • Chromosomes decondense

Cytokinesis

  • Animal cells - cleavage furrow (centripetal - inward)
  • Plant cells - cell plate forms (centrifugal - outward, from center to periphery)

Significance of Mitosis

  • Growth and repair of tissues
  • Maintains chromosome number (2N โ†’ 2N)
  • Asexual reproduction in lower organisms
  • Genetically identical daughter cells produced

Quick Memory Aid for Mitosis:

"PMAT" - Prophase, Metaphase, Anaphase, Telophase

๐Ÿซ BIOLOGY (ZOOLOGY) - Breathing and Exchange of Gases

Respiratory Organs in Animals

AnimalRespiratory Organ
InsectsTracheal system
FishGills
AmphibiansSkin + Lungs
Birds & MammalsLungs

Human Respiratory System

Pathway of Air

Nostrils โ†’ Nasal cavity โ†’ Pharynx โ†’ Larynx โ†’ Trachea โ†’ Bronchi โ†’ Bronchioles โ†’ Alveoli
  • Trachea - C-shaped cartilage rings; keeps airway open
  • Epiglottis - prevents food entering trachea
  • Alveoli - actual site of gas exchange; ~300 million in humans
  • Alveoli covered by capillary network and surfactant (prevents collapse)

Lungs

  • Right lung - 3 lobes; Left lung - 2 lobes (heart takes space)
  • Covered by pleura (double membrane)
  • Pleural fluid reduces friction during breathing

Mechanism of Breathing

Inspiration (Breathing In)

  • Diaphragm contracts โ†’ moves down
  • External intercostal muscles contract โ†’ ribs move up and out
  • Thoracic volume increases โ†’ Pressure decreases โ†’ Air rushes in

Expiration (Breathing Out)

  • Diaphragm relaxes โ†’ moves up
  • Internal intercostal muscles contract โ†’ ribs move down and in
  • Thoracic volume decreases โ†’ Pressure increases โ†’ Air pushed out

Respiratory Volumes (Important for MCQs!)

Volume/CapacityValueDefinition
Tidal Volume (TV)~500 mLAir in normal breath
Inspiratory Reserve Volume (IRV)~2500-3000 mLExtra air forcefully inhaled
Expiratory Reserve Volume (ERV)~1000-1100 mLExtra air forcefully exhaled
Residual Volume (RV)~1100-1200 mLAir remaining after max expiration
Inspiratory Capacity (IC)TV + IRV~3500 mL
Functional Residual Capacity (FRC)ERV + RV~2300 mL
Vital Capacity (VC)TV + IRV + ERV~4600 mL
Total Lung Capacity (TLC)VC + RV~5800 mL
RV cannot be expired - always remains in lungs

Exchange of Gases

At Alveoli (External Respiration)

  • Oโ‚‚ moves from alveoli โ†’ blood (high to low pOโ‚‚)
  • COโ‚‚ moves from blood โ†’ alveoli (high to low pCOโ‚‚)
  • Simple diffusion along pressure gradients

Partial Pressures

GasAlveolar airDeoxygenated bloodOxygenated blood
pOโ‚‚104 mmHg40 mmHg95 mmHg
pCOโ‚‚40 mmHg45 mmHg40 mmHg

Transport of Oxygen

  • 97% transported as oxyhaemoglobin (Hb + Oโ‚‚)
  • 3% dissolved in plasma
  • 1 Hb carries 4 Oโ‚‚ molecules (4 haem groups)
  • Bohr Effect - decrease in pH (more COโ‚‚) โ†’ Hb releases Oโ‚‚ more readily

Transport of COโ‚‚

  • 70% as bicarbonate ions (HCOโ‚ƒโป) in plasma
  • 20-25% as carbaminohaemoglobin (COโ‚‚ + Hb)
  • 7% dissolved in plasma

Chloride Shift (Hamburger Shift)

  • HCOโ‚ƒโป moves out of RBC โ†’ Clโป moves in to maintain electrical neutrality

Regulation of Respiration

  • Respiratory rhythm center in medulla oblongata
  • Pneumotaxic center in pons - moderates respiratory rate
  • COโ‚‚ levels (not Oโ‚‚) primarily regulate breathing rate
  • Chemoreceptors in aortic arch & carotid body detect pCOโ‚‚ and pH

Disorders

DisorderKey Feature
AsthmaInflammation of bronchioles, wheezing
EmphysemaDestruction of alveolar walls (smoking); barrel chest
PneumoniaAlveoli filled with fluid (bacterial/viral)
Occupational lung diseasesSilicosis (silica), Asbestosis (asbestos)

6-Day Study Plan Before Your Test

DayFocus
Today (June 29)Cell - Unit of Life (read + revise organelles)
June 30Cell Cycle + Mitosis (stages with diagrams)
July 1Breathing & Exchange of Gases
July 2Mole Concept + Atomic Structure
July 3Units & Dimensions + solve PYQs for all topics
July 4Full mock revision + weak areas
July 5TEST DAY - quick morning revision

Ask me anything from any of these topics - concept doubts, MCQ practice, formula help - I'm here! ๐Ÿ’ช

All in pdf so that I can take print outโ€ฆ

Let me read the PDF skill first, then generate a clean printable PDF for you!
Reading File
Running Command

mkdir -p /home/daytona/workspace/neet-revision && ls /home/daytona/workspace/neet-revision/

Writing File

~/neet-revision/generate_pdf.py

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

OUTPUT = "/home/daytona/workspace/neet-revision/NEET_Revision_Guide.pdf"

doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    rightMargin=1.8*cm, leftMargin=1.8*cm,
    topMargin=1.8*cm, bottomMargin=1.8*cm,
    title="NEET 2027 - Minor Test Revision Guide",
    author="Orris AI"
)

W, H = A4
styles = getSampleStyleSheet()

# Custom styles
def make_style(name, parent='Normal', **kwargs):
    s = ParagraphStyle(name, parent=styles[parent], **kwargs)
    return s

cover_title = make_style('CoverTitle', fontSize=26, fontName='Helvetica-Bold',
                          textColor=colors.HexColor('#1a237e'), alignment=TA_CENTER,
                          spaceAfter=8)
cover_sub = make_style('CoverSub', fontSize=14, fontName='Helvetica',
                        textColor=colors.HexColor('#37474f'), alignment=TA_CENTER, spaceAfter=6)
cover_info = make_style('CoverInfo', fontSize=12, fontName='Helvetica',
                         textColor=colors.HexColor('#e65100'), alignment=TA_CENTER, spaceAfter=4)

sec_title = make_style('SecTitle', fontSize=16, fontName='Helvetica-Bold',
                        textColor=colors.white, alignment=TA_LEFT, spaceAfter=4,
                        spaceBefore=12, leftIndent=6)
sub_title = make_style('SubTitle', fontSize=13, fontName='Helvetica-Bold',
                        textColor=colors.HexColor('#1a237e'), spaceAfter=4, spaceBefore=8)
sub2_title = make_style('Sub2Title', fontSize=11, fontName='Helvetica-Bold',
                         textColor=colors.HexColor('#37474f'), spaceAfter=3, spaceBefore=6)
body = make_style('Body', fontSize=9.5, leading=14, spaceAfter=3)
bullet = make_style('Bullet', fontSize=9.5, leading=14, leftIndent=14,
                     bulletIndent=4, spaceAfter=2)
note_style = make_style('Note', fontSize=9, fontName='Helvetica-Oblique',
                         textColor=colors.HexColor('#b71c1c'), leftIndent=10,
                         borderPad=4, spaceAfter=4)

# Table style helper
def plain_table(data, col_widths, header_color='#1a237e', alt_row=True):
    t = Table(data, colWidths=col_widths, repeatRows=1)
    style_cmds = [
        ('BACKGROUND', (0,0), (-1,0), colors.HexColor(header_color)),
        ('TEXTCOLOR', (0,0), (-1,0), colors.white),
        ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
        ('FONTSIZE', (0,0), (-1,0), 9),
        ('FONTSIZE', (0,1), (-1,-1), 9),
        ('FONTNAME', (0,1), (-1,-1), 'Helvetica'),
        ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#f5f5f5'), colors.white] if alt_row else [colors.white]),
        ('GRID', (0,0), (-1,-1), 0.4, colors.HexColor('#bdbdbd')),
        ('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
        ('TOPPADDING', (0,0), (-1,-1), 4),
        ('BOTTOMPADDING', (0,0), (-1,-1), 4),
        ('LEFTPADDING', (0,0), (-1,-1), 6),
        ('RIGHTPADDING', (0,0), (-1,-1), 6),
        ('ALIGN', (0,0), (-1,-1), 'LEFT'),
    ]
    t.setStyle(TableStyle(style_cmds))
    return t

def section_header(text, color='#1a237e'):
    """Colored section header block."""
    data = [[Paragraph(text, sec_title)]]
    t = Table(data, colWidths=[W - 3.6*cm])
    t.setStyle(TableStyle([
        ('BACKGROUND', (0,0), (-1,-1), colors.HexColor(color)),
        ('TOPPADDING', (0,0), (-1,-1), 6),
        ('BOTTOMPADDING', (0,0), (-1,-1), 6),
        ('LEFTPADDING', (0,0), (-1,-1), 8),
    ]))
    return t

def tip_box(text, bg='#fff8e1', border='#f9a825'):
    data = [[Paragraph(text, make_style('TipInner', fontSize=9, fontName='Helvetica-Oblique',
                                         textColor=colors.HexColor('#4e342e'), leading=13))]]
    t = Table(data, colWidths=[W - 3.6*cm])
    t.setStyle(TableStyle([
        ('BACKGROUND', (0,0), (-1,-1), colors.HexColor(bg)),
        ('BOX', (0,0), (-1,-1), 1, colors.HexColor(border)),
        ('TOPPADDING', (0,0), (-1,-1), 6),
        ('BOTTOMPADDING', (0,0), (-1,-1), 6),
        ('LEFTPADDING', (0,0), (-1,-1), 10),
    ]))
    return t

story = []

# โ”€โ”€โ”€ COVER PAGE โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Spacer(1, 2*cm))
story.append(Paragraph("NEET 2027", cover_title))
story.append(Paragraph("Minor Test - Complete Revision Guide", cover_sub))
story.append(Spacer(1, 0.4*cm))
story.append(HRFlowable(width="80%", thickness=2, color=colors.HexColor('#1a237e'), hAlign='CENTER'))
story.append(Spacer(1, 0.4*cm))
story.append(Paragraph("TEST DATE: 5th July 2026 (Sunday) | 2:00 PM - 5:00 PM", cover_info))
story.append(Paragraph("EUROSE BATCH - Pre Medical Session 2026-27", cover_sub))
story.append(Spacer(1, 1.2*cm))

# syllabus table on cover
syl_data = [
    ['Subject', 'Topics'],
    ['Physics', 'Units and Dimensions'],
    ['Chemistry', 'Mole Concept & Atomic Structure'],
    ['Biology - Botany', 'Cell: Unit of Life | Cell Cycle & Mitosis'],
    ['Biology - Zoology', 'Breathing and Exchange of Gases'],
]
syl_t = plain_table(syl_data, [5*cm, 11*cm], header_color='#37474f')
story.append(syl_t)
story.append(Spacer(1, 0.8*cm))

study_data = [
    ['Day', 'Focus Area'],
    ['Today (June 29)', 'Cell - Unit of Life (organelles & structure)'],
    ['June 30', 'Cell Cycle + Mitosis (stages with diagrams)'],
    ['July 1', 'Breathing & Exchange of Gases'],
    ['July 2', 'Mole Concept + Atomic Structure'],
    ['July 3', 'Units & Dimensions + PYQ practice all topics'],
    ['July 4', 'Full mock revision + weak areas'],
    ['July 5 (TEST DAY)', 'Quick morning revision only'],
]
study_t = plain_table(study_data, [5*cm, 11*cm], header_color='#2e7d32')
story.append(Paragraph("6-Day Study Plan", sub_title))
story.append(study_t)
story.append(PageBreak())

# โ”€โ”€โ”€ PHYSICS โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(section_header("โšก  PHYSICS - Units and Dimensions", '#1565c0'))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Fundamental SI Units", sub_title))
si_data = [
    ['Quantity', 'SI Unit', 'Symbol'],
    ['Length', 'Metre', 'm'],
    ['Mass', 'Kilogram', 'kg'],
    ['Time', 'Second', 's'],
    ['Electric Current', 'Ampere', 'A'],
    ['Temperature', 'Kelvin', 'K'],
    ['Luminous Intensity', 'Candela', 'cd'],
    ['Amount of Substance', 'Mole', 'mol'],
]
story.append(plain_table(si_data, [6*cm, 6*cm, 4*cm], header_color='#1565c0'))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Supplementary Units", sub2_title))
story.append(Paragraph("โ€ข Plane angle โ†’ radian (rad)", bullet))
story.append(Paragraph("โ€ข Solid angle โ†’ steradian (sr)", bullet))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Important Derived Units & Dimensions", sub_title))
dim_data = [
    ['Quantity', 'Formula', 'Dimensions'],
    ['Force', 'ma', '[MLTโปยฒ]'],
    ['Work / Energy', 'Fd', '[MLยฒTโปยฒ]'],
    ['Power', 'W/t', '[MLยฒTโปยณ]'],
    ['Pressure', 'F/A', '[MLโปยนTโปยฒ]'],
    ['Velocity', 'd/t', '[LTโปยน]'],
    ['Acceleration', 'v/t', '[LTโปยฒ]'],
    ['Momentum', 'mv', '[MLTโปยน]'],
    ['Density', 'm/V', '[MLโปยณ]'],
    ['Frequency', '1/t', '[Tโปยน]'],
    ['Charge', 'It', '[AT]'],
    ['Voltage', 'W/q', '[MLยฒTโปยณAโปยน]'],
]
story.append(plain_table(dim_data, [5.5*cm, 4.5*cm, 6*cm], header_color='#1565c0'))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Quantities with Same Dimensions", sub_title))
same_dim = [
    ['Dimensions', 'Quantities'],
    ['[MLยฒTโปยฒ]', 'Work, Energy, Torque'],
    ['[Tโปยน]', 'Frequency, Angular velocity, Decay constant'],
    ['[MLTโปยน]', 'Impulse, Momentum'],
    ['[MLโปยนTโปยฒ]', 'Stress, Pressure, Elastic modulus'],
]
story.append(plain_table(same_dim, [6*cm, 10*cm], header_color='#1565c0'))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Rules for Significant Figures", sub_title))
for s in [
    "1. All non-zero digits are significant.",
    "2. Zeros <b>between</b> non-zero digits are significant. (e.g., 1007 โ†’ 4 sig figs)",
    "3. <b>Leading</b> zeros are NOT significant. (e.g., 0.007 โ†’ 1 sig fig)",
    "4. <b>Trailing</b> zeros after decimal ARE significant. (e.g., 1.500 โ†’ 4 sig figs)",
]:
    story.append(Paragraph(s, bullet))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Uses of Dimensional Analysis", sub_title))
for s in [
    "1. Check correctness of an equation (dimensions must balance on both sides).",
    "2. Derive relations between physical quantities.",
    "3. Convert units from one system to another.",
]:
    story.append(Paragraph(s, bullet))
story.append(Spacer(1, 0.2*cm))

story.append(tip_box("NEET TIP: Dimensional analysis CANNOT determine dimensionless constants (2, ฯ€, ยฝ) and CANNOT check equations involving addition or subtraction."))
story.append(PageBreak())

# โ”€โ”€โ”€ CHEMISTRY โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(section_header("โš—๏ธ  CHEMISTRY - Mole Concept & Atomic Structure", '#4a148c'))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("PART A: MOLE CONCEPT", sub_title))
story.append(Paragraph("1 mole = <b>6.022 ร— 10ยฒยณ</b> particles (Avogadro's number). "
                        "1 mole of any gas at STP = <b>22.4 L</b>. "
                        "Molar mass = mass of 1 mole in grams.", body))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Key Formulas", sub2_title))
mol_data = [
    ['Formula', 'Expression'],
    ['Moles (from mass)', 'n = mass (g) / Molar mass'],
    ['Moles (from particles)', 'n = N / Nโ‚'],
    ['Moles of gas at STP', 'n = Volume (L) / 22.4'],
    ['Molarity (M)', 'Moles of solute / Volume of solution (L)'],
    ['Molality (m)', 'Moles of solute / Mass of solvent (kg)'],
    ['Mole fraction', 'nโ‚ / (nโ‚ + n_b)'],
    ['% by mass', '(mass of solute / mass of solution) ร— 100'],
]
story.append(plain_table(mol_data, [7*cm, 9*cm], header_color='#4a148c'))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Empirical vs Molecular Formula", sub2_title))
story.append(Paragraph("โ€ข <b>Empirical formula</b> = simplest whole number ratio of atoms.", bullet))
story.append(Paragraph("โ€ข <b>Molecular formula</b> = actual number of atoms.", bullet))
story.append(Paragraph("โ€ข Molecular formula = n ร— Empirical formula &nbsp;&nbsp; where n = Molecular mass / Empirical formula mass", bullet))
story.append(Spacer(1, 0.2*cm))

story.append(tip_box("POAC (Principle of Atom Conservation): Atoms of each element are conserved in a reaction. Very useful for mole calculations without balancing equations."))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("PART B: ATOMIC STRUCTURE", sub_title))

story.append(Paragraph("Discovery Timeline", sub2_title))
disc_data = [
    ['Discovery', 'Scientist', 'Key Point'],
    ['Electron', 'J.J. Thomson', 'Cathode ray experiment; e/m ratio measured'],
    ['Proton', 'Goldstein', 'Anode rays (canal rays)'],
    ['Neutron', 'Chadwick', 'Bombardment of Be with ฮฑ-particles'],
    ['Nucleus', 'Rutherford', 'Gold foil (ฮฑ-scattering) experiment'],
]
story.append(plain_table(disc_data, [4*cm, 4.5*cm, 7.5*cm], header_color='#4a148c'))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Bohr's Model (Hydrogen-like atoms)", sub2_title))
story.append(Paragraph("โ€ข Electrons in fixed circular orbits (shells); energy is quantized.", bullet))
story.append(Paragraph("โ€ข Energy: E_n = โˆ’13.6 / nยฒ eV &nbsp;&nbsp;&nbsp; Radius: r_n = 0.529 ร— nยฒ ร… (for H)", bullet))
story.append(Paragraph("โ€ข Absorbs energy โ†’ jumps to higher orbit. Releases energy โ†’ falls to lower orbit.", bullet))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Spectral Series of Hydrogen", sub2_title))
spec_data = [
    ['Series', 'Transition to Shell', 'Region'],
    ['Lyman', 'n = 1', 'Ultraviolet (UV)'],
    ['Balmer', 'n = 2', 'Visible'],
    ['Paschen', 'n = 3', 'Infrared (IR)'],
    ['Brackett', 'n = 4', 'Infrared (IR)'],
    ['Pfund', 'n = 5', 'Infrared (IR)'],
]
story.append(plain_table(spec_data, [5*cm, 5.5*cm, 5.5*cm], header_color='#4a148c'))
story.append(tip_box("Memory Trick: \"Let Bright People Be Positive\" โ†’ Lyman, Balmer, Paschen, Brackett, Pfund"))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Quantum Numbers", sub2_title))
qn_data = [
    ['Quantum Number', 'Symbol', 'Values', 'Describes'],
    ['Principal', 'n', '1, 2, 3...', 'Shell / Energy level'],
    ['Azimuthal', 'l', '0 to (nโˆ’1)', 'Subshell (s, p, d, f)'],
    ['Magnetic', 'mโ‚—', 'โˆ’l to +l', 'Orbital orientation'],
    ['Spin', 'mโ‚›', '+ยฝ or โˆ’ยฝ', 'Direction of electron spin'],
]
story.append(plain_table(qn_data, [4*cm, 2.5*cm, 4*cm, 5.5*cm], header_color='#4a148c'))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Electronic Configuration Rules", sub2_title))
for s in [
    "<b>Aufbau Principle</b>: Fill lowest energy orbitals first.",
    "<b>Pauli Exclusion Principle</b>: No two electrons have same 4 quantum numbers; max 2 electrons per orbital.",
    "<b>Hund's Rule</b>: One electron in each orbital of same subshell before pairing (maximum multiplicity).",
]:
    story.append(Paragraph("โ€ข " + s, bullet))
story.append(Paragraph("Filling order: 1s &lt; 2s &lt; 2p &lt; 3s &lt; 3p &lt; 4s &lt; 3d &lt; 4p &lt; 5s &lt; 4d...", body))
story.append(Spacer(1, 0.2*cm))
story.append(tip_box("de Broglie: ฮป = h/mv (wave nature of matter) | Heisenberg: ฮ”x ยท ฮ”p โ‰ฅ h/4ฯ€ (position & momentum cannot both be exact)"))
story.append(PageBreak())

# โ”€โ”€โ”€ BIOLOGY BOTANY โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(section_header("๐ŸŒฟ  BIOLOGY (BOTANY) - Cell: Unit of Life + Cell Cycle & Mitosis", '#1b5e20'))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("PART A: CELL - THE UNIT OF LIFE", sub_title))

story.append(Paragraph("Cell Theory", sub2_title))
story.append(Paragraph("Proposed by <b>Schleiden</b> (plants) and <b>Schwann</b> (animals); Virchow added:", body))
for s in [
    "All living organisms are made of cells.",
    "Cell is the basic structural and functional unit of life.",
    "All cells arise from pre-existing cells โ€” <i>\"Omnis cellula e cellula\"</i> (Virchow).",
]:
    story.append(Paragraph("โ€ข " + s, bullet))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Prokaryotic vs Eukaryotic Cell", sub2_title))
prok_data = [
    ['Feature', 'Prokaryotic', 'Eukaryotic'],
    ['Nucleus', 'Absent (nucleoid)', 'Present (membrane-bound)'],
    ['Size', '1โ€“10 ยตm', '10โ€“100 ยตm'],
    ['Membrane-bound organelles', 'Absent', 'Present'],
    ['Ribosomes', '70S (50S + 30S)', '80S (60S + 40S)'],
    ['Cell wall', 'Peptidoglycan (bacteria)', 'Cellulose (plants); absent in animals'],
    ['Examples', 'Bacteria, Cyanobacteria', 'Plant, Animal, Fungal cells'],
]
story.append(plain_table(prok_data, [5*cm, 5.5*cm, 5.5*cm], header_color='#1b5e20'))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Cell Organelles - Quick Reference", sub_title))
org_data = [
    ['Organelle', 'Key Function', 'Special Feature'],
    ['Cell membrane', 'Selectively permeable barrier', 'Fluid mosaic model (Singer & Nicolson, 1972)'],
    ['Cell wall', 'Protection, shape', 'Cellulose (plants); chitin (fungi)'],
    ['Nucleus', 'Control centre, heredity', 'Double membrane; nuclear pores'],
    ['Mitochondria', 'ATP production (respiration)', 'Own DNA & ribosomes; double membrane'],
    ['Chloroplast', 'Photosynthesis', 'Own DNA; double membrane; plants only'],
    ['Rough ER', 'Protein synthesis & transport', 'Has ribosomes on surface'],
    ['Smooth ER', 'Lipid synthesis, detox', 'No ribosomes'],
    ['Golgi Body', 'Secretion, modification', '"Post office of cell"; forms lysosomes'],
    ['Lysosomes', 'Intracellular digestion', '"Suicidal bags" (de Duve)'],
    ['Ribosomes', 'Protein synthesis', '70S prokaryotes; 80S eukaryotes'],
    ['Vacuoles', 'Storage, turgor pressure', 'Large central vacuole in plants'],
    ['Centrosome', 'Cell division', 'Absent in higher plants'],
    ['Peroxisomes', 'Oxidative reactions', 'Break down Hโ‚‚Oโ‚‚'],
]
story.append(plain_table(org_data, [3.5*cm, 5*cm, 7.5*cm], header_color='#1b5e20'))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Nucleus", sub2_title))
for s in [
    "<b>Nuclear envelope</b>: double membrane with pores for RNA/protein transport.",
    "<b>Nucleolus</b>: site of rRNA synthesis.",
    "<b>Chromatin</b>: DNA + histone proteins.",
    "<b>Euchromatin</b>: loosely packed, transcriptionally active.",
    "<b>Heterochromatin</b>: densely packed, transcriptionally inactive.",
]:
    story.append(Paragraph("โ€ข " + s, bullet))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("PART B: CELL CYCLE & MITOSIS", sub_title))

story.append(Paragraph("Cell Cycle Phases", sub2_title))
cc_data = [
    ['Phase', 'What Happens'],
    ['G1 (Gap 1)', 'Cell grows; proteins synthesized; organelles increase in number'],
    ['S (Synthesis)', 'DNA replication occurs (2N DNA content โ†’ 4N)'],
    ['G2 (Gap 2)', 'Further growth; preparation for division; proteins for mitosis made'],
    ['M (Mitosis)', 'Actual nuclear and cell division'],
    ['G0', 'Quiescent phase; cells exit cycle temporarily (e.g., nerve cells)'],
]
story.append(plain_table(cc_data, [4*cm, 12*cm], header_color='#1b5e20'))
story.append(Paragraph("G1 + S + G2 = <b>Interphase</b> (longest phase of cell cycle). DNA replication occurs in S phase.", body))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Stages of Mitosis (PMAT)", sub_title))
mit_data = [
    ['Stage', 'Key Events'],
    ['Prophase', 'Chromatin condenses into chromosomes; nucleolus disappears; spindle forms; nuclear envelope breaks down'],
    ['Metaphase', 'Chromosomes align at metaphase plate (equatorial plane); spindle attaches at centromere (kinetochore). BEST stage for karyotyping.'],
    ['Anaphase', 'Centromeres split; sister chromatids pulled to opposite poles; cell elongates; V/J/L chromosome shapes'],
    ['Telophase', 'Chromosomes reach poles; nuclear envelope reforms; nucleolus reappears; chromosomes decondense'],
    ['Cytokinesis', 'Animal cells: cleavage furrow (centripetal - inward). Plant cells: cell plate (centrifugal - outward from center)'],
]
story.append(plain_table(mit_data, [3.5*cm, 12.5*cm], header_color='#1b5e20'))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Significance of Mitosis", sub2_title))
for s in [
    "Growth and repair of body tissues.",
    "Maintains chromosome number (2N โ†’ 2N); daughter cells genetically identical to parent.",
    "Asexual reproduction in lower organisms.",
]:
    story.append(Paragraph("โ€ข " + s, bullet))
story.append(tip_box("Memory: PMAT = Prophase โ†’ Metaphase โ†’ Anaphase โ†’ Telophase | Metaphase = best stage for karyotyping | Cytokinesis: cleavage furrow (animal), cell plate (plant)"))
story.append(PageBreak())

# โ”€โ”€โ”€ BIOLOGY ZOOLOGY โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(section_header("๐Ÿซ  BIOLOGY (ZOOLOGY) - Breathing and Exchange of Gases", '#b71c1c'))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Respiratory Organs in Animals", sub2_title))
resp_data = [
    ['Animal Group', 'Respiratory Organ'],
    ['Insects', 'Tracheal system'],
    ['Fish', 'Gills'],
    ['Amphibians', 'Skin + Lungs'],
    ['Birds & Mammals', 'Lungs'],
]
story.append(plain_table(resp_data, [7*cm, 9*cm], header_color='#b71c1c'))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Pathway of Air", sub_title))
story.append(Paragraph("Nostrils โ†’ Nasal cavity โ†’ Pharynx โ†’ Larynx โ†’ Trachea โ†’ Bronchi โ†’ Bronchioles โ†’ <b>Alveoli</b>", body))
story.append(Spacer(1, 0.1*cm))
for s in [
    "<b>Trachea</b>: C-shaped cartilage rings; keeps airway open.",
    "<b>Epiglottis</b>: prevents food from entering trachea.",
    "<b>Alveoli</b>: actual site of gas exchange; ~300 million in humans; covered by capillary network and surfactant.",
    "Right lung = 3 lobes; Left lung = 2 lobes (heart takes space on left).",
    "<b>Pleura</b>: double membrane covering lungs; pleural fluid reduces friction.",
]:
    story.append(Paragraph("โ€ข " + s, bullet))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Mechanism of Breathing", sub_title))
mech_data = [
    ['Phase', 'Diaphragm', 'Intercostal muscles', 'Thoracic volume', 'Pressure', 'Air'],
    ['Inspiration\n(Breathing in)', 'Contracts\n(moves down)', 'External muscles contract\n(ribs up & out)', 'Increases', 'Decreases', 'Rushes IN'],
    ['Expiration\n(Breathing out)', 'Relaxes\n(moves up)', 'Internal muscles contract\n(ribs down & in)', 'Decreases', 'Increases', 'Pushed OUT'],
]
story.append(plain_table(mech_data, [2.5*cm, 3*cm, 4*cm, 2.8*cm, 2.5*cm, 2.2*cm], header_color='#b71c1c'))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Respiratory Volumes & Capacities (IMPORTANT for MCQs)", sub_title))
vol_data = [
    ['Volume / Capacity', 'Approx. Value', 'Definition'],
    ['Tidal Volume (TV)', '~500 mL', 'Air moved in a normal breath'],
    ['IRV (Inspiratory Reserve)', '~2500โ€“3000 mL', 'Extra air forcefully inhaled above TV'],
    ['ERV (Expiratory Reserve)', '~1000โ€“1100 mL', 'Extra air forcefully exhaled below TV'],
    ['Residual Volume (RV)', '~1100โ€“1200 mL', 'Air remaining after maximum expiration'],
    ['Inspiratory Capacity (IC)', '~3500 mL', 'TV + IRV'],
    ['Functional Residual Capacity (FRC)', '~2300 mL', 'ERV + RV'],
    ['Vital Capacity (VC)', '~4600 mL', 'TV + IRV + ERV'],
    ['Total Lung Capacity (TLC)', '~5800 mL', 'VC + RV'],
]
story.append(plain_table(vol_data, [4.5*cm, 3*cm, 8.5*cm], header_color='#b71c1c'))
story.append(tip_box("KEY: RV (Residual Volume) can NEVER be expired โ€” always remains in the lungs."))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Exchange of Gases - Partial Pressures", sub_title))
pp_data = [
    ['Gas', 'Alveolar Air', 'Deoxygenated Blood', 'Oxygenated Blood'],
    ['pOโ‚‚', '104 mmHg', '40 mmHg', '95 mmHg'],
    ['pCOโ‚‚', '40 mmHg', '45 mmHg', '40 mmHg'],
]
story.append(plain_table(pp_data, [4*cm, 4*cm, 4.5*cm, 3.5*cm], header_color='#b71c1c'))
story.append(Paragraph("Gas exchange occurs by <b>simple diffusion</b> along pressure gradients at the alveolar surface.", body))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Transport of Gases", sub_title))
transport_data = [
    ['Gas', 'Form', 'Percentage'],
    ['Oโ‚‚', 'As oxyhaemoglobin (Hb + Oโ‚‚)', '97%'],
    ['Oโ‚‚', 'Dissolved in plasma', '3%'],
    ['COโ‚‚', 'As bicarbonate ions (HCOโ‚ƒโป) in plasma', '70%'],
    ['COโ‚‚', 'As carbaminohaemoglobin (COโ‚‚ + Hb)', '20โ€“25%'],
    ['COโ‚‚', 'Dissolved in plasma', '7%'],
]
story.append(plain_table(transport_data, [2.5*cm, 9.5*cm, 4*cm], header_color='#b71c1c'))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph("โ€ข 1 Hb carries <b>4 Oโ‚‚ molecules</b> (4 haem groups).", bullet))
story.append(Paragraph("โ€ข <b>Bohr Effect</b>: decrease in pH (more COโ‚‚) โ†’ Hb releases Oโ‚‚ more readily.", bullet))
story.append(Paragraph("โ€ข <b>Chloride Shift (Hamburger Shift)</b>: HCOโ‚ƒโป moves out of RBC โ†’ Clโป moves in to maintain electrical neutrality.", bullet))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Regulation of Respiration", sub2_title))
story.append(Paragraph("โ€ข <b>Respiratory rhythm centre</b>: medulla oblongata (primary control).", bullet))
story.append(Paragraph("โ€ข <b>Pneumotaxic centre</b>: in pons; moderates respiratory rate.", bullet))
story.append(Paragraph("โ€ข COโ‚‚ levels (NOT Oโ‚‚) primarily regulate breathing rate.", bullet))
story.append(Paragraph("โ€ข Chemoreceptors in <b>aortic arch</b> and <b>carotid body</b> detect pCOโ‚‚ and pH changes.", bullet))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Respiratory Disorders", sub2_title))
dis_data = [
    ['Disorder', 'Key Feature'],
    ['Asthma', 'Inflammation of bronchioles; wheezing; reversible'],
    ['Emphysema', 'Destruction of alveolar walls (caused by smoking); barrel chest; irreversible'],
    ['Pneumonia', 'Alveoli filled with fluid (bacterial or viral infection)'],
    ['Silicosis', 'Occupational lung disease from silica dust exposure'],
    ['Asbestosis', 'Occupational lung disease from asbestos fibre inhalation'],
]
story.append(plain_table(dis_data, [4*cm, 12*cm], header_color='#b71c1c'))
story.append(Spacer(1, 0.5*cm))
story.append(HRFlowable(width="100%", thickness=1, color=colors.HexColor('#bdbdbd')))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph("All the best for your test on 5th July 2026! | Prepared with Orris AI", make_style('Footer', fontSize=8, textColor=colors.grey, alignment=TA_CENTER)))

# โ”€โ”€โ”€ BUILD โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
doc.build(story)
print(f"PDF saved to: {OUTPUT}")
Running Command

cd /home/daytona/workspace/neet-revision && python generate_pdf.py

Your printable revision guide is ready! ๐ŸŽ‰

NEET Revision Guide

PDF Document ยท PDF

What's inside the PDF:
  • Cover page with syllabus table + 6-day study plan
  • Physics - SI units, dimensions table, significant figures, dimensional analysis tips
  • Chemistry - Mole concept formulas, atomic structure, spectral series, quantum numbers, electronic config rules
  • Biology Botany - Cell theory, prokaryote vs eukaryote, all organelles, nucleus, mitosis stages (PMAT)
  • Biology Zoology - Breathing mechanism, all respiratory volumes/capacities, gas transport %, Bohr effect, respiratory disorders
All topics are color-coded by subject and formatted for clean A4 printing. Good luck on 5th July! ๐Ÿ’ช
This is a shared conversation. Sign in to Orris to start your own chat.