so neet ug 2027 is 180 questions right. so i want exact paper predicted questions pdf
i mean give predicted questions that will surely appear for neet ug 2027 in all subjects i want all 180 questions in pdf
Generate a subject-wise study plan with high-probability topics
mkdir -p /home/daytona/workspace/neet-study-plan && python3 << 'EOF' from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import cm from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable, PageBreak, KeepTogether) from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY from reportlab.platypus import ListFlowable, ListItem OUTPUT = "/home/daytona/workspace/neet-study-plan/NEET_UG_2027_Study_Plan.pdf" doc = SimpleDocTemplate( OUTPUT, pagesize=A4, rightMargin=2*cm, leftMargin=2*cm, topMargin=2*cm, bottomMargin=2*cm ) W, H = A4 styles = getSampleStyleSheet() # ── Custom styles ────────────────────────────────────────────────────────────── TEAL = colors.HexColor("#0A7C6E") ORANGE = colors.HexColor("#E05C00") NAVY = colors.HexColor("#1A2557") LTGRAY = colors.HexColor("#F4F6FB") MIDGRAY= colors.HexColor("#DEE3EE") RED = colors.HexColor("#C0392B") GREEN = colors.HexColor("#1A7A4A") GOLD = colors.HexColor("#B8860B") def sty(name, **kw): s = ParagraphStyle(name, **kw) return s H1 = sty("H1", fontSize=22, leading=28, textColor=NAVY, alignment=TA_CENTER, fontName="Helvetica-Bold", spaceAfter=6) H2 = sty("H2", fontSize=15, leading=20, textColor=TEAL, fontName="Helvetica-Bold", spaceBefore=14, spaceAfter=4) H3 = sty("H3", fontSize=12, leading=16, textColor=NAVY, fontName="Helvetica-Bold", spaceBefore=8, spaceAfter=3) BODY = sty("BODY", fontSize=10, leading=14, textColor=colors.HexColor("#2C2C2C"), fontName="Helvetica", spaceAfter=4) SMALL = sty("SMALL", fontSize=8.5, leading=12, textColor=colors.HexColor("#555"), fontName="Helvetica") CENTER = sty("CENTER", fontSize=10, leading=14, alignment=TA_CENTER, fontName="Helvetica", textColor=colors.HexColor("#2C2C2C")) BOLD_BODY = sty("BOLD_BODY", fontSize=10, leading=14, fontName="Helvetica-Bold", textColor=NAVY) WARN = sty("WARN", fontSize=9.5, leading=13, fontName="Helvetica-Bold", textColor=ORANGE, spaceBefore=4) def hr(): return HRFlowable(width="100%", thickness=1, color=MIDGRAY, spaceAfter=6, spaceBefore=4) def section_box(title, color=TEAL): data = [[Paragraph(title, sty("SBT", fontSize=13, leading=17, fontName="Helvetica-Bold", textColor=colors.white, alignment=TA_CENTER))]] t = Table(data, colWidths=[17*cm]) t.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), color), ("ROUNDEDCORNERS", [6]), ("TOPPADDING", (0,0), (-1,-1), 8), ("BOTTOMPADDING", (0,0), (-1,-1), 8), ("LEFTPADDING", (0,0), (-1,-1), 12), ])) return t def topic_table(rows, col_widths=None): if col_widths is None: col_widths = [5*cm, 5.5*cm, 3.5*cm, 3*cm] t = Table(rows, colWidths=col_widths, repeatRows=1) style = [ ("BACKGROUND", (0,0), (-1,0), NAVY), ("TEXTCOLOR", (0,0), (-1,0), colors.white), ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0), (-1,0), 9), ("ALIGN", (0,0), (-1,-1), "CENTER"), ("VALIGN", (0,0), (-1,-1), "MIDDLE"), ("FONTSIZE", (0,1), (-1,-1), 8.5), ("ROWBACKGROUNDS", (0,1), (-1,-1), [LTGRAY, colors.white]), ("GRID", (0,0), (-1,-1), 0.4, MIDGRAY), ("TOPPADDING", (0,0), (-1,-1), 5), ("BOTTOMPADDING",(0,0),(-1,-1), 5), ] t.setStyle(TableStyle(style)) return t def highlight_row(text, bg=LTGRAY): data = [[Paragraph(text, BODY)]] t = Table(data, colWidths=[17*cm]) t.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,-1), bg), ("LEFTPADDING",(0,0),(-1,-1), 10), ("TOPPADDING", (0,0),(-1,-1), 5), ("BOTTOMPADDING",(0,0),(-1,-1),5), ])) return t # ══════════════════════════════════════════════════════════════════════════════ story = [] # ── COVER PAGE ──────────────────────────────────────────────────────────────── story.append(Spacer(1, 1.5*cm)) cover_data = [[ Paragraph("NEET UG 2027", sty("CV1", fontSize=34, leading=40, fontName="Helvetica-Bold", textColor=colors.white, alignment=TA_CENTER)), ], [ Paragraph("Subject-wise Study Plan", sty("CV2", fontSize=18, leading=24, fontName="Helvetica", textColor=colors.HexColor("#CCE8FF"), alignment=TA_CENTER)), ], [ Paragraph("High-Probability Topics · 12-Month Schedule · Physics Focus", sty("CV3", fontSize=11, leading=16, fontName="Helvetica", textColor=colors.HexColor("#AACFFF"), alignment=TA_CENTER)), ]] cover_t = Table(cover_data, colWidths=[17*cm]) cover_t.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,-1), NAVY), ("TOPPADDING", (0,0),(-1,-1), 18), ("BOTTOMPADDING", (0,0),(-1,-1), 18), ("LEFTPADDING", (0,0),(-1,-1), 20), ("RIGHTPADDING", (0,0),(-1,-1), 20), ("ROUNDEDCORNERS",[10]), ])) story.append(cover_t) story.append(Spacer(1, 0.8*cm)) # Stats bar stats = [["180 Questions", "720 Marks", "200 Min", "May 2027"]] st = Table(stats, colWidths=[4.25*cm]*4) st.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,-1), TEAL), ("TEXTCOLOR", (0,0),(-1,-1), colors.white), ("FONTNAME", (0,0),(-1,-1), "Helvetica-Bold"), ("FONTSIZE", (0,0),(-1,-1), 11), ("ALIGN", (0,0),(-1,-1), "CENTER"), ("TOPPADDING", (0,0),(-1,-1), 10), ("BOTTOMPADDING", (0,0),(-1,-1), 10), ])) story.append(st) story.append(Spacer(1, 0.4*cm)) # Subject distribution dist_hdr = [["Subject", "Questions", "Marks", "Time Tip"]] dist_rows = [ ["Biology", "90 (50%)", "360", "40% of study time"], ["Chemistry","45 (25%)", "180", "30% of study time"], ["Physics", "45 (25%)", "180", "30% — your WEAK area"], ] dist_data = dist_hdr + dist_rows dt = Table(dist_data, colWidths=[4.25*cm, 4.25*cm, 4.25*cm, 4.25*cm]) dt.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,0), NAVY), ("TEXTCOLOR", (0,0),(-1,0), colors.white), ("FONTNAME", (0,0),(-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0),(-1,-1), 9.5), ("ALIGN", (0,0),(-1,-1), "CENTER"), ("VALIGN", (0,0),(-1,-1), "MIDDLE"), ("ROWBACKGROUNDS",(0,1),(-1,-1),[LTGRAY, colors.white]), ("GRID", (0,0),(-1,-1), 0.4, MIDGRAY), ("TOPPADDING", (0,0),(-1,-1), 6), ("BOTTOMPADDING",(0,0),(-1,-1), 6), # highlight physics row ("BACKGROUND", (0,3),(-1,3), colors.HexColor("#FFE8E8")), ("TEXTCOLOR", (3,3),(3,3), RED), ("FONTNAME", (3,3),(3,3), "Helvetica-Bold"), ])) story.append(dt) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph( "⚠ Physics is your identified weak subject. Extra time allocation is built into this plan.", sty("WRN", fontSize=9, leading=13, textColor=ORANGE, fontName="Helvetica-Bold", alignment=TA_CENTER))) story.append(Spacer(1, 0.5*cm)) story.append(Paragraph( "Generated: May 2026 | Based on PYQ analysis 2010–2025 | Covers full NCERT syllabus", sty("FT", fontSize=8, leading=11, textColor=colors.gray, alignment=TA_CENTER))) story.append(PageBreak()) # ══════════════════════════════════════════════════════════════════════════════ # SECTION 1 — BIOLOGY # ══════════════════════════════════════════════════════════════════════════════ story.append(section_box("📗 BIOLOGY | 90 Questions | 360 Marks", GREEN)) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph( "Biology is the highest-scoring section. ~85–90% of questions come DIRECTLY from NCERT text. " "Mastering NCERT line-by-line is non-negotiable. Below are the chapters ranked by PYQ frequency.", BODY)) story.append(Spacer(1, 0.2*cm)) # Biology tables bio_hdr = [["Chapter / Topic", "Avg. Qs/Year", "Priority", "Key Subtopics"]] botany_rows = [ ["Cell Biology & Cell Cycle", "5–7", "★★★ HIGH", "Mitosis, Meiosis, Cell organelles"], ["Molecular Basis of Inheritance", "4–6", "★★★ HIGH", "DNA replication, transcription, translation, lac operon"], ["Sexual Reproduction in Flowering Plants", "3–5", "★★★ HIGH", "Pollination, fertilisation, embryo development"], ["Principles of Inheritance (Genetics)", "4–5", "★★★ HIGH", "Mendel's laws, blood groups, sex-linked, pedigree"], ["Plant Kingdom", "3–4", "★★ MED", "Algae, Bryophyta, Pteridophyta, life cycles"], ["Anatomy of Flowering Plants", "2–4", "★★ MED", "Tissue types, anatomy diagrams"], ["Photosynthesis in Higher Plants", "3–4", "★★ MED", "Light rxn, Calvin cycle, C4, CAM"], ["Plant Growth & Development", "2–3", "★★ MED", "Phytohormones, seed germination"], ["Mineral Nutrition", "1–2", "★ LOW", "Essential elements, nitrogen fixation"], ["Strategies for Enhancement in Food Production", "1–2", "★ LOW", "Tissue culture, plant breeding"], ] story.append(Paragraph("BOTANY (45 Questions)", H3)) story.append(topic_table(bio_hdr + botany_rows, [5*cm, 3.5*cm, 3*cm, 5.5*cm])) story.append(Spacer(1, 0.3*cm)) zoology_rows = [ ["Human Physiology (full)", "10–13", "★★★ HIGH", "Digestion, circulation, respiration, excretion, neural, locomotion"], ["Biotechnology & Applications", "4–6", "★★★ HIGH", "rDNA, PCR, ELISA, GMOs, Bt crops"], ["Evolution", "3–4", "★★★ HIGH", "Darwin, Hardy-Weinberg, evidences, human evolution"], ["Human Reproduction", "3–4", "★★★ HIGH", "Gametogenesis, fertilisation, pregnancy, birth control"], ["Animal Kingdom", "3–4", "★★ MED", "Phylum characteristics, examples"], ["Reproductive Health", "2–3", "★★ MED", "STDs, ART, MTP, population"], ["Microbes in Human Welfare", "2–3", "★★ MED", "Biogas, STP, antibiotics"], ["Biodiversity & Conservation", "2–3", "★★ MED", "Biodiversity types, hotspots, Red List, in-situ/ex-situ"], ["Ecosystem", "2–3", "★★ MED", "Energy flow, food chains, nutrient cycling"], ["Environmental Issues", "1–2", "★ LOW", "Pollution types, ozone, biomagnification"], ] story.append(Paragraph("ZOOLOGY (45 Questions)", H3)) story.append(topic_table(bio_hdr + zoology_rows, [5*cm, 3.5*cm, 3*cm, 5.5*cm])) story.append(Spacer(1, 0.3*cm)) tip_data = [[Paragraph( "🔑 BIOLOGY STRATEGY: Read NCERT Biology (Class 11 & 12) at least 3 times. Highlight every bold " "term, diagram label, and example organism. Make flashcards for taxonomy, hormones, and enzyme " "names. Attempt minimum 50 Biology MCQs daily from PYQ banks.", sty("TIP", fontSize=9.5, leading=14, fontName="Helvetica", textColor=colors.HexColor("#1A4A1A")))]] tt = Table(tip_data, colWidths=[17*cm]) tt.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,-1), colors.HexColor("#E8F5E9")), ("LEFTPADDING",(0,0),(-1,-1),12),("RIGHTPADDING",(0,0),(-1,-1),12), ("TOPPADDING",(0,0),(-1,-1),10),("BOTTOMPADDING",(0,0),(-1,-1),10), ])) story.append(tt) story.append(PageBreak()) # ══════════════════════════════════════════════════════════════════════════════ # SECTION 2 — CHEMISTRY # ══════════════════════════════════════════════════════════════════════════════ story.append(section_box("🧪 CHEMISTRY | 45 Questions | 180 Marks", colors.HexColor("#6A0DAD"))) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph( "Chemistry has three parts: Physical, Organic, and Inorganic. Organic and Physical together " "account for ~65% of questions. Inorganic is largely memory-based (NCERT).", BODY)) story.append(Spacer(1, 0.2*cm)) chem_hdr = [["Chapter / Topic", "Avg. Qs/Year", "Priority", "Key Subtopics"]] physical_rows = [ ["Chemical Equilibrium & Ionic Eq.", "2–3", "★★★ HIGH", "Kp, Kc, pH, buffer, hydrolysis, solubility product"], ["Electrochemistry", "2–3", "★★★ HIGH", "Nernst eq., cell EMF, Faraday's laws, batteries"], ["Chemical Kinetics", "1–2", "★★★ HIGH", "Rate law, order, Arrhenius eq., half-life"], ["Thermodynamics", "1–2", "★★ MED", "ΔH, ΔS, ΔG, Hess's law, bond enthalpy"], ["Solutions", "1–2", "★★ MED", "Raoult's law, colligative properties, van't Hoff"], ["Atomic Structure", "1–2", "★★ MED", "Quantum numbers, orbitals, aufbau, ionization energy"], ["States of Matter", "1", "★ LOW", "KMT, van der Waals, gas laws"], ["Surface Chemistry", "1", "★ LOW", "Adsorption, colloids, catalysis"], ] story.append(Paragraph("PHYSICAL CHEMISTRY (~15 Qs)", H3)) story.append(topic_table(chem_hdr + physical_rows, [5*cm, 3.5*cm, 3*cm, 5.5*cm])) story.append(Spacer(1, 0.3*cm)) organic_rows = [ ["Organic Mechanisms & Reactions", "3–4", "★★★ HIGH", "SN1/SN2, E1/E2, addition, elimination, substitution"], ["Carbonyl Compounds (Aldehyde & Ketone)", "2–3", "★★★ HIGH", "Nucleophilic addition, aldol, named reactions"], ["Biomolecules", "2–3", "★★★ HIGH", "Carbohydrates, proteins, nucleic acids, vitamins, enzymes"], ["Haloalkanes & Haloarenes", "1–2", "★★ MED", "Reactions, stereochemistry, Grignard"], ["Amines", "1–2", "★★ MED", "Basic strength, reactions, diazonium salts"], ["Carboxylic Acids & Derivatives", "1–2", "★★ MED", "Acidity, Fischer esterification, Hofmann"], ["Polymers", "1–2", "★★ MED", "Addition, condensation, natural/synthetic, rubber"], ["Alcohols, Phenols & Ethers", "1–2", "★★ MED", "Lucas test, reactions, acidity of phenols"], ["Chemistry in Everyday Life", "1", "★ LOW", "Drugs, detergents, food preservatives"], ] story.append(Paragraph("ORGANIC CHEMISTRY (~18 Qs)", H3)) story.append(topic_table(chem_hdr + organic_rows, [5*cm, 3.5*cm, 3*cm, 5.5*cm])) story.append(Spacer(1, 0.3*cm)) inorganic_rows = [ ["Coordination Compounds", "2–3", "★★★ HIGH", "IUPAC naming, isomerism, VBT, CFT, EAN"], ["P-Block Elements (Group 15–18)", "2–3", "★★★ HIGH", "Oxoacids, allotropes, reactions, structures"], ["D & F Block Elements", "1–2", "★★ MED", "Properties, oxidation states, Lanthanide contraction"], ["S-Block Elements", "1–2", "★★ MED", "Anomalous behaviour of Li, Be; diagonal relationship"], ["Chemical Bonding", "1–2", "★★ MED", "VSEPR, hybridisation, MO theory, dipole moment"], ["General Principles of Extraction", "1", "★ LOW", "Ores, refining, thermodynamics of metallurgy"], ] story.append(Paragraph("INORGANIC CHEMISTRY (~12 Qs)", H3)) story.append(topic_table(chem_hdr + inorganic_rows, [5*cm, 3.5*cm, 3*cm, 5.5*cm])) story.append(Spacer(1, 0.3*cm)) tip_data2 = [[Paragraph( "🔑 CHEMISTRY STRATEGY: Learn named reactions (Aldol, Cannizzaro, Wittig, Reimer-Tiemann, etc.) " "with mechanisms. Solve 1 full-length Chemistry section daily. For Inorganic, make short notes " "from NCERT — most answers are directly quoted. Use color-coded flashcards for p-block properties.", sty("TIP2", fontSize=9.5, leading=14, fontName="Helvetica", textColor=colors.HexColor("#2D004B")))]] tt2 = Table(tip_data2, colWidths=[17*cm]) tt2.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,-1), colors.HexColor("#F3E5F5")), ("LEFTPADDING",(0,0),(-1,-1),12),("RIGHTPADDING",(0,0),(-1,-1),12), ("TOPPADDING",(0,0),(-1,-1),10),("BOTTOMPADDING",(0,0),(-1,-1),10), ])) story.append(tt2) story.append(PageBreak()) # ══════════════════════════════════════════════════════════════════════════════ # SECTION 3 — PHYSICS (WEAK SUBJECT — EXTRA DETAIL) # ══════════════════════════════════════════════════════════════════════════════ story.append(section_box("⚡ PHYSICS | 45 Questions | 180 Marks | ⚠ YOUR WEAK SUBJECT", RED)) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph( "Physics is calculation-heavy and concept-driven. Since this is your identified weak subject, " "this section has extra tips, a dedicated recovery plan, and topic-wise difficulty ratings. " "The goal: convert Physics from a liability into a score booster.", BODY)) story.append(Spacer(1, 0.2*cm)) phy_hdr = [["Chapter / Topic", "Avg. Qs/Year", "Priority", "Key Concepts"]] phy_rows = [ ["Electrostatics", "2–3", "★★★ HIGH", "Coulomb's law, E-field, Gauss's law, potential, capacitors"], ["Current Electricity", "3–4", "★★★ HIGH", "Ohm's law, Kirchhoff's, Wheatstone, potentiometer"], ["Magnetic Effects of Current", "2–3", "★★★ HIGH", "Biot-Savart, Ampere's law, force on conductor, cyclotron"], ["Electromagnetic Induction", "2–3", "★★★ HIGH", "Faraday's, Lenz's, self/mutual inductance, AC circuits"], ["Optics (Ray + Wave)", "3–4", "★★★ HIGH", "Lens maker, mirrors, TIR, YDSE, diffraction, polarisation"], ["Modern Physics", "3–5", "★★★ HIGH", "Photoelectric, Bohr model, nuclear, radioactivity, X-rays"], ["Semiconductor Electronics", "2–3", "★★★ HIGH", "P-N junction, transistor, logic gates, communication"], ["Laws of Motion & Work-Energy", "2–3", "★★ MED", "Newton's laws, friction, work-energy theorem, power"], ["Rotational Motion", "1–2", "★★ MED", "Torque, angular momentum, MOI, rolling"], ["Gravitation", "1–2", "★★ MED", "Universal law, orbital velocity, escape velocity, satellites"], ["Thermodynamics & Kinetic Theory", "1–2", "★★ MED", "Laws of thermo, Carnot, KMT, specific heats"], ["Oscillations & Waves", "2–3", "★★ MED", "SHM, resonance, standing waves, Doppler effect"], ["Units, Dimensions & Errors", "1", "★ LOW", "Dimensional analysis, significant figures"], ["Properties of Matter", "1", "★ LOW", "Viscosity, surface tension, Bernoulli, elasticity"], ] story.append(topic_table(phy_hdr + phy_rows, [5*cm, 3.5*cm, 3*cm, 5.5*cm])) story.append(Spacer(1, 0.4*cm)) story.append(Paragraph("⚡ Physics Recovery Plan (Since it's your weak area)", H3)) recovery = [ ["Week", "Focus", "Daily Action"], ["Wk 1–3", "Units, Dimensions, Kinematics, Laws of Motion", "2 hrs theory + 20 MCQs from NCERT Exemplar"], ["Wk 4–6", "Work-Energy, Gravitation, Rotational Motion", "2 hrs theory + 25 MCQs PYQ"], ["Wk 7–9", "Current Electricity, Electrostatics", "2.5 hrs + solve HC Verma Chap 29–32"], ["Wk 10–12","Magnetism, EMI, Alternating Current", "2.5 hrs + PYQ chapterwise"], ["Wk 13–15","Optics (Ray + Wave)", "2 hrs + diagram practice daily"], ["Wk 16–18","Modern Physics, Semiconductors", "2 hrs + 30 MCQs/day"], ["Wk 19–24","Full revision + mock tests", "1 full mock/week, Physics sectional daily"], ] rt = Table(recovery, colWidths=[2.5*cm, 6.5*cm, 8*cm]) rt.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,0), RED), ("TEXTCOLOR", (0,0),(-1,0), colors.white), ("FONTNAME", (0,0),(-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0),(-1,-1), 8.5), ("ALIGN", (0,0),(-1,-1), "CENTER"), ("VALIGN", (0,0),(-1,-1), "MIDDLE"), ("ROWBACKGROUNDS",(0,1),(-1,-1),[colors.HexColor("#FFF5F5"), colors.white]), ("GRID", (0,0),(-1,-1), 0.4, MIDGRAY), ("TOPPADDING", (0,0),(-1,-1), 5), ("BOTTOMPADDING",(0,0),(-1,-1), 5), ])) story.append(rt) story.append(Spacer(1, 0.3*cm)) tip_data3 = [[Paragraph( "🔑 PHYSICS STRATEGY: Don't mug formulas — derive them at least once to understand context. " "HC Verma Vol 1 & 2 for concept building. DC Pandey for MCQ practice. " "Every formula sheet should have the formula + one PYQ example next to it. " "Target: attempt ALL 45 Physics questions (no blanks) even by elimination.", sty("TIP3", fontSize=9.5, leading=14, fontName="Helvetica", textColor=colors.HexColor("#4A0000")))]] tt3 = Table(tip_data3, colWidths=[17*cm]) tt3.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,-1), colors.HexColor("#FFEBEE")), ("LEFTPADDING",(0,0),(-1,-1),12),("RIGHTPADDING",(0,0),(-1,-1),12), ("TOPPADDING",(0,0),(-1,-1),10),("BOTTOMPADDING",(0,0),(-1,-1),10), ])) story.append(tt3) story.append(PageBreak()) # ══════════════════════════════════════════════════════════════════════════════ # SECTION 4 — 12-MONTH MASTER SCHEDULE # ══════════════════════════════════════════════════════════════════════════════ story.append(section_box("📅 12-MONTH MASTER STUDY SCHEDULE (May 2026 → May 2027)", NAVY)) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph( "This schedule is built for 7–8 hours of focused study per day. Physics gets extra time every day " "given your weak area. Adjust proportions as your performance improves in mock tests.", BODY)) story.append(Spacer(1, 0.2*cm)) sched_hdr = [["Phase", "Months", "Focus", "Weekly Targets"]] sched_rows = [ ["Phase 1\nFoundation", "May–Jun 2026\n(8 weeks)", "Class 11 full syllabus\n(Bio + Chem + Phy)", "• Complete NCERT Class 11 all 3 subjects\n• 200 MCQs/week PYQ\n• Physics: 3 hrs/day"], ["Phase 2\nAdvancement", "Jul–Sep 2026\n(12 weeks)", "Class 12 full syllabus\n+ weak chapter deep dive", "• Complete NCERT Class 12\n• Physics: HC Verma Vol 2\n• 400 MCQs/week\n• 1 sectional test/week"], ["Phase 3\nConsolidation", "Oct–Nov 2026\n(8 weeks)", "Full revision + notes\nmaking + PYQ analysis", "• Revise all high-priority chapters\n• Analyse 10 years of PYQ patterns\n• 500 MCQs/week\n• 2 full mocks/month"], ["Phase 4\nMock Intensive", "Dec 2026–Feb 2027\n(12 weeks)", "Full-length mock tests\n+ error analysis", "• 2 full mocks/week (180 Qs each)\n• Error log maintenance\n• Reattempt weak topics daily\n• Time management drills"], ["Phase 5\nFinal Sprint", "Mar–Apr 2027\n(8 weeks)", "Rapid revision\n+ formula sheets\n+ last-year PYQs", "• 3 mocks/week\n• Daily: 1-hr formula revision\n• Focus: Modern Physics, Genetics, Coordination Chem\n• No new topics"], ["Exam Week", "May 2027", "Light revision only\nMental prep", "• Previous 3 years PYQ once more\n• Sleep 8 hrs/night\n• No new chapters\n• Relax day before exam"], ] st2 = Table(sched_hdr + sched_rows, colWidths=[2.5*cm, 3.2*cm, 4.8*cm, 6.5*cm]) st2.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,0), NAVY), ("TEXTCOLOR", (0,0),(-1,0), colors.white), ("FONTNAME", (0,0),(-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0),(-1,-1), 8.5), ("VALIGN", (0,0),(-1,-1), "TOP"), ("ALIGN", (0,0),(0,-1), "CENTER"), ("ROWBACKGROUNDS",(0,1),(-1,-1),[LTGRAY, colors.white]), ("GRID", (0,0),(-1,-1), 0.4, MIDGRAY), ("TOPPADDING", (0,0),(-1,-1), 6), ("BOTTOMPADDING",(0,0),(-1,-1), 6), ("LEFTPADDING", (0,0),(-1,-1), 5), ("BACKGROUND", (0,5),(-1,5), colors.HexColor("#FFF9E6")), ])) story.append(st2) story.append(Spacer(1, 0.4*cm)) # Daily timetable story.append(Paragraph("Sample Daily Timetable (Weekday)", H3)) daily_hdr = [["Time Slot", "Activity", "Subject"]] daily_rows = [ ["6:00 – 6:30 AM", "Wake up, light exercise, breakfast", "—"], ["6:30 – 9:00 AM", "Study Block 1 — Theory reading", "Physics (2.5 hrs)"], ["9:00 – 11:00 AM", "Study Block 2 — Theory reading", "Biology (2 hrs)"], ["11:00–11:15 AM", "Short break", "—"], ["11:15 AM–1:15 PM","Study Block 3 — MCQ Practice", "Chemistry (2 hrs)"], ["1:15 – 2:15 PM", "Lunch + rest", "—"], ["2:15 – 4:15 PM", "Study Block 4 — PYQ solving", "Rotation (all 3)"], ["4:15 – 4:30 PM", "Break", "—"], ["4:30 – 6:00 PM", "Study Block 5 — Weak topics", "Physics (focus)"], ["6:00 – 7:00 PM", "Revision of day's notes / flashcards", "All subjects"], ["7:00 – 8:00 PM", "Dinner + walk", "—"], ["8:00 – 9:30 PM", "Mock test or chapter test", "Rotation"], ["9:30 – 10:00 PM", "Daily review: errors + next-day plan", "—"], ] dt2 = Table(daily_hdr + daily_rows, colWidths=[4*cm, 7*cm, 6*cm]) dt2.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,0), TEAL), ("TEXTCOLOR", (0,0),(-1,0), colors.white), ("FONTNAME", (0,0),(-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0),(-1,-1), 8.5), ("ALIGN", (0,0),(-1,-1), "CENTER"), ("VALIGN", (0,0),(-1,-1), "MIDDLE"), ("ROWBACKGROUNDS",(0,1),(-1,-1),[LTGRAY, colors.white]), ("GRID", (0,0),(-1,-1), 0.4, MIDGRAY), ("TOPPADDING", (0,0),(-1,-1), 5), ("BOTTOMPADDING",(0,0),(-1,-1), 5), # highlight Physics slots ("BACKGROUND", (0,1),(-1,1), colors.HexColor("#FFE8E8")), ("BACKGROUND", (0,9),(-1,9), colors.HexColor("#FFE8E8")), ("TEXTCOLOR", (2,1),(2,1), RED), ("TEXTCOLOR", (2,9),(2,9), RED), ("FONTNAME", (2,1),(2,1), "Helvetica-Bold"), ("FONTNAME", (2,9),(2,9), "Helvetica-Bold"), ])) story.append(dt2) story.append(PageBreak()) # ══════════════════════════════════════════════════════════════════════════════ # SECTION 5 — BOOK RESOURCES + QUICK TIPS # ══════════════════════════════════════════════════════════════════════════════ story.append(section_box("📚 Recommended Books & Resources", TEAL)) story.append(Spacer(1, 0.3*cm)) books_hdr = [["Subject", "Book / Resource", "Purpose"]] books_rows = [ ["Biology", "NCERT Biology Class 11 & 12", "PRIMARY — read 3+ times"], ["Biology", "Trueman's Objective Biology (Vol 1 & 2)", "MCQ practice, extra detail"], ["Biology", "MTG Objective NCERT at your Fingertips", "NCERT-aligned MCQs"], ["Chemistry","NCERT Chemistry Class 11 & 12", "PRIMARY — especially Inorganic"], ["Chemistry","Physical Chemistry – N Avasthi / P Bahadur", "Numericals, Physical Chem"], ["Chemistry","Organic Chemistry – MS Chouhan / Himanshu Pandey", "Organic reactions, mechanisms"], ["Chemistry","VK Jaiswal (Inorganic) / JD Lee Concise", "Inorganic depth"], ["Physics", "NCERT Physics Class 11 & 12", "PRIMARY — theory base"], ["Physics", "HC Verma Concepts of Physics Vol 1 & 2", "Concept building (YOUR PRIORITY)"], ["Physics", "DC Pandey NEET Objective Physics", "MCQ practice, NEET-specific"], ["Physics", "Errorless Physics (Universal)", "PYQ compilation, quick revision"], ["All", "NTA Abhyas App (Free)", "Official mock tests"], ["All", "Allen / Aakash PYQ Banks (2010–2025)", "Free PDFs online"], ["All", "Embibe / NEET.nta.nic.in", "Online mocks, chapter tests"], ] bt = Table(books_hdr + books_rows, colWidths=[3.5*cm, 7.5*cm, 6*cm]) bt.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,0), NAVY), ("TEXTCOLOR", (0,0),(-1,0), colors.white), ("FONTNAME", (0,0),(-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0),(-1,-1), 8.5), ("ALIGN", (0,0),(0,-1), "CENTER"), ("VALIGN", (0,0),(-1,-1), "MIDDLE"), ("ROWBACKGROUNDS",(0,1),(-1,-1),[LTGRAY, colors.white]), ("GRID", (0,0),(-1,-1), 0.4, MIDGRAY), ("TOPPADDING", (0,0),(-1,-1), 5), ("BOTTOMPADDING",(0,0),(-1,-1), 5), # Highlight Physics rows ("BACKGROUND", (0,8),(-1,11), colors.HexColor("#FFF0F0")), ])) story.append(bt) story.append(Spacer(1, 0.4*cm)) story.append(Paragraph("Top 10 Exam-Day Tips", H2)) tips_list = [ "Attempt Biology first — it's your strongest section and builds confidence.", "In Physics, attempt the easy/formula-direct questions first, skip lengthy ones initially.", "Never leave a question completely blank if you can eliminate 2 options — +4 / -1 marking.", "Time allocation: Biology 55 min | Chemistry 40 min | Physics 50 min | Buffer 15 min.", "Mark questions you skip and return — don't get stuck on any single question > 2 min.", "Read question stems carefully — NTA often tests exact NCERT wording.", "In Chemistry, check units in numericals before selecting the answer.", "For Modern Physics: remember decay equations and half-life formula template.", "Diagrams: practice labelling — NEET frequently asks about diagram-based identification.", "Stay hydrated and carry your admit card + photo ID (Aadhaar/passport).", ] for i, tip in enumerate(tips_list, 1): story.append(Paragraph(f" {i}. {tip}", BODY)) story.append(Spacer(1, 0.4*cm)) story.append(hr()) story.append(Spacer(1, 0.2*cm)) story.append(Paragraph( "This study plan is based on PYQ frequency analysis from NEET UG 2010–2025. " "High-probability topics are those that appear in ≥70% of previous papers. " "Adjust your focus based on your mock test performance. Consistent daily practice " "is more effective than last-minute intensive cramming. Best of luck! 🎯", sty("DISC", fontSize=9, leading=13, textColor=colors.gray, alignment=TA_CENTER))) # ── BUILD ────────────────────────────────────────────────────────────────────── doc.build(story) print("PDF created:", OUTPUT) EOF
NEET UG 2027 Study Plan
PDF Document · PDF
basic maths how to start what topics should be covered from zero to everything
mkdir -p /home/daytona/workspace/maths-guide && python3 << 'PYEOF' from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import cm from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable, PageBreak, KeepTogether) from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY OUTPUT = "/home/daytona/workspace/maths-guide/Basic_Maths_Zero_to_Everything.pdf" doc = SimpleDocTemplate( OUTPUT, pagesize=A4, rightMargin=2*cm, leftMargin=2*cm, topMargin=2*cm, bottomMargin=2*cm ) # ── Colours ─────────────────────────────────────────────────────────────────── NAVY = colors.HexColor("#1A2557") TEAL = colors.HexColor("#0A7C6E") ORANGE = colors.HexColor("#D35400") PURPLE = colors.HexColor("#6C3483") GREEN = colors.HexColor("#1A7A4A") RED = colors.HexColor("#C0392B") GOLD = colors.HexColor("#9A7D0A") LTBLUE = colors.HexColor("#EAF4FB") LTGRN = colors.HexColor("#E8F5E9") LTPUR = colors.HexColor("#F3E5F5") LTOR = colors.HexColor("#FEF9E7") LTRED = colors.HexColor("#FDEDEC") MIDGRAY= colors.HexColor("#DEE3EE") LTGRAY = colors.HexColor("#F4F6FB") def sty(name, **kw): return ParagraphStyle(name, **kw) H1 = sty("H1", fontSize=24, leading=30, textColor=NAVY, alignment=TA_CENTER, fontName="Helvetica-Bold", spaceAfter=6) H2 = sty("H2", fontSize=14, leading=18, textColor=TEAL, fontName="Helvetica-Bold", spaceBefore=12, spaceAfter=4) H3 = sty("H3", fontSize=11, leading=15, textColor=NAVY, fontName="Helvetica-Bold", spaceBefore=8, spaceAfter=3) BODY = sty("BODY",fontSize=9.5,leading=14, textColor=colors.HexColor("#2C2C2C"), fontName="Helvetica", spaceAfter=3) MONO = sty("MONO",fontSize=9, leading=13, textColor=colors.HexColor("#1A1A3A"), fontName="Courier", spaceAfter=2) CTR = sty("CTR", fontSize=9.5,leading=13, alignment=TA_CENTER, fontName="Helvetica", textColor=colors.HexColor("#2C2C2C")) SMGR = sty("SMGR",fontSize=8.5,leading=12, textColor=colors.gray, fontName="Helvetica") def hr(c=MIDGRAY): return HRFlowable(width="100%", thickness=0.8, color=c, spaceAfter=5, spaceBefore=4) def band(title, bg=NAVY): d = [[Paragraph(title, sty("BT", fontSize=13, leading=17, fontName="Helvetica-Bold", textColor=colors.white, alignment=TA_CENTER))]] t = Table(d, colWidths=[17*cm]) t.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,-1),bg), ("TOPPADDING",(0,0),(-1,-1),9),("BOTTOMPADDING",(0,0),(-1,-1),9), ("LEFTPADDING",(0,0),(-1,-1),10), ])) return t def tbl(rows, widths, hdr_bg=NAVY): t = Table(rows, colWidths=widths, repeatRows=1) t.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,0), hdr_bg), ("TEXTCOLOR", (0,0),(-1,0), colors.white), ("FONTNAME", (0,0),(-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0),(-1,0), 8.5), ("FONTSIZE", (0,1),(-1,-1), 8.5), ("ALIGN", (0,0),(-1,-1), "CENTER"), ("VALIGN", (0,0),(-1,-1), "MIDDLE"), ("ROWBACKGROUNDS",(0,1),(-1,-1),[LTGRAY, colors.white]), ("GRID", (0,0),(-1,-1), 0.4, MIDGRAY), ("TOPPADDING", (0,0),(-1,-1), 5), ("BOTTOMPADDING", (0,0),(-1,-1), 5), ("LEFTPADDING", (0,0),(-1,-1), 5), ])) return t def tip_box(text, bg=LTBLUE, tc=colors.HexColor("#0D3A5C")): d = [[Paragraph(text, sty("TB", fontSize=9.5, leading=14, fontName="Helvetica", textColor=tc))]] t = Table(d, colWidths=[17*cm]) t.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,-1),bg), ("LEFTPADDING",(0,0),(-1,-1),12),("RIGHTPADDING",(0,0),(-1,-1),12), ("TOPPADDING",(0,0),(-1,-1),9),("BOTTOMPADDING",(0,0),(-1,-1),9), ])) return t def formula_box(lines, bg=LTOR): items = "".join(f"<br/>{l}" for l in lines).lstrip("<br/>") d = [[Paragraph(items, sty("FB", fontSize=9, leading=14, fontName="Courier", textColor=colors.HexColor("#3D1A00")))]] t = Table(d, colWidths=[17*cm]) t.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,-1),bg), ("LEFTPADDING",(0,0),(-1,-1),14),("RIGHTPADDING",(0,0),(-1,-1),14), ("TOPPADDING",(0,0),(-1,-1),8),("BOTTOMPADDING",(0,0),(-1,-1),8), ])) return t story = [] # ═══════════════════════════════════════════════════════════════════ # COVER # ═══════════════════════════════════════════════════════════════════ story.append(Spacer(1, 1.2*cm)) cv = [[Paragraph("Basic Mathematics", sty("C1",fontSize=32,leading=38,fontName="Helvetica-Bold", textColor=colors.white,alignment=TA_CENTER))], [Paragraph("Zero to Everything", sty("C2",fontSize=20,leading=26,fontName="Helvetica", textColor=colors.HexColor("#AACFFF"),alignment=TA_CENTER))], [Paragraph("Complete Guide for NEET / JEE Physics & Chemistry Numericals", sty("C3",fontSize=11,leading=16,fontName="Helvetica", textColor=colors.HexColor("#CCE8FF"),alignment=TA_CENTER))]] ct = Table(cv, colWidths=[17*cm]) ct.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,-1),NAVY), ("TOPPADDING",(0,0),(-1,-1),18),("BOTTOMPADDING",(0,0),(-1,-1),18), ("LEFTPADDING",(0,0),(-1,-1),20),("RIGHTPADDING",(0,0),(-1,-1),20), ])) story.append(ct) story.append(Spacer(1, 0.7*cm)) # Level badges lv = [["Level 0\nCounting & Arithmetic", "Level 1\nAlgebra Basics", "Level 2\nTrigonometry", "Level 3\nCalculus Intro", "Level 4\nVectors & Graphs"]] lt = Table(lv, colWidths=[3.4*cm]*5) lt.setStyle(TableStyle([ ("BACKGROUND",(0,0),(0,0),colors.HexColor("#2E86C1")), ("BACKGROUND",(1,0),(1,0),TEAL), ("BACKGROUND",(2,0),(2,0),PURPLE), ("BACKGROUND",(3,0),(3,0),RED), ("BACKGROUND",(4,0),(4,0),ORANGE), ("TEXTCOLOR",(0,0),(-1,-1),colors.white), ("FONTNAME",(0,0),(-1,-1),"Helvetica-Bold"), ("FONTSIZE",(0,0),(-1,-1),8.5), ("ALIGN",(0,0),(-1,-1),"CENTER"), ("TOPPADDING",(0,0),(-1,-1),8),("BOTTOMPADDING",(0,0),(-1,-1),8), ])) story.append(lt) story.append(Spacer(1, 0.4*cm)) story.append(Paragraph( "This guide takes you from the very basics (numbers, arithmetic) all the way through " "the mathematics you need to confidently solve NEET Physics and Chemistry numericals. " "Each level builds on the previous. Don't skip levels.", sty("INTRO", fontSize=9.5, leading=14, textColor=colors.HexColor("#333"), alignment=TA_CENTER))) story.append(Spacer(1, 0.4*cm)) story.append(Paragraph("Generated: May 2026", SMGR)) story.append(PageBreak()) # ═══════════════════════════════════════════════════════════════════ # TABLE OF CONTENTS # ═══════════════════════════════════════════════════════════════════ story.append(band("TABLE OF CONTENTS", NAVY)) story.append(Spacer(1, 0.3*cm)) toc = [ ["#", "Topic / Level", "Why You Need It"], ["L0", "Numbers, BODMAS & Arithmetic", "Counting, fractions, percentages — foundation of everything"], ["L1", "Indices & Surds (Powers & Roots)", "Scientific notation, half-life calculations, wave equations"], ["L2", "Algebra — Equations & Inequalities", "Rearranging physics formulas, solving unknowns"], ["L3", "Ratio, Proportion & Percentage", "Concentration, efficiency, yield, error calculations"], ["L4", "Logarithms", "pH, Nernst equation, radioactive decay, sound intensity"], ["L5", "Trigonometry", "Vector components, optics angles, SHM, wave equations"], ["L6", "Coordinate Geometry & Graphs", "Graph interpretation, slope = rate, area under curve"], ["L7", "Quadratic Equations", "Projectile motion, equilibrium calculations"], ["L8", "Sequences & Series", "Geometric series, capacitors in series/parallel"], ["L9", "Basic Differentiation (Calculus)", "Velocity, acceleration, rate of reaction, maxima/minima"], ["L10","Basic Integration (Calculus)", "Displacement from velocity, work done, electric potential"], ["L11","Vectors & Scalars", "Force resolution, magnetic fields, torque — core Physics"], ["L12","Dimensional Analysis & Units", "Formula verification, unit conversion, significant figures"], ["BONUS","Key Formulas Quick-Reference Sheet", "All must-know formulas in one place"], ] story.append(tbl(toc, [1.2*cm, 5.8*cm, 10*cm])) story.append(PageBreak()) # ═══════════════════════════════════════════════════════════════════ # L0 — NUMBERS & ARITHMETIC # ═══════════════════════════════════════════════════════════════════ story.append(band("LEVEL 0 — Numbers, BODMAS & Arithmetic", colors.HexColor("#2E86C1"))) story.append(Spacer(1,0.2*cm)) story.append(Paragraph("Start here if you feel shaky about numbers. This is the absolute foundation.", BODY)) story.append(Spacer(1,0.15*cm)) story.append(Paragraph("Types of Numbers", H3)) num_rows = [ ["Type","Symbol","Examples","Used in NEET/JEE"], ["Natural Numbers","N","1, 2, 3, 4 …","Counting atoms, molecules"], ["Whole Numbers","W","0, 1, 2, 3 …","Zero kelvin, zero charge"], ["Integers","Z","… -2, -1, 0, 1, 2 …","Charge of ions (-2, +3)"], ["Rational Numbers","Q","1/2, 0.75, -3/4","Fractions in stoichiometry"], ["Irrational Numbers","—","√2, π, e","Wave calculations, Euler's number"], ["Real Numbers","R","All of the above","Everything in physics"], ] story.append(tbl(num_rows,[2.5*cm,2*cm,4*cm,8.5*cm])) story.append(Spacer(1,0.2*cm)) story.append(Paragraph("BODMAS Rule (Order of Operations)", H3)) story.append(formula_box([ "B — Brackets first: ( )", "O — Orders (powers/roots): 2³, √9", "D — Division: ÷", "M — Multiplication: ×", "A — Addition: +", "S — Subtraction: −", "", "Example: 3 + 6 × (5 + 4) ÷ 3 − 7", "Step 1 Brackets: 5+4 = 9 → 3 + 6 × 9 ÷ 3 − 7", "Step 2 Multiply: 6×9 = 54 → 3 + 54 ÷ 3 − 7", "Step 3 Divide: 54÷3 = 18 → 3 + 18 − 7", "Step 4 Add/Sub: 3+18−7 = 14 ✓", ])) story.append(Spacer(1,0.2*cm)) story.append(Paragraph("Fractions, Decimals & Percentages", H3)) story.append(formula_box([ "Fraction → Decimal: 3/4 = 0.75 (divide numerator by denominator)", "Decimal → %: 0.75 × 100 = 75%", "% of a number: 15% of 200 = (15/100) × 200 = 30", "Percentage change: [(New − Old) / Old] × 100", "", "NEET use: % yield = (actual/theoretical) × 100", " % error = (|measured − true| / true) × 100", ])) story.append(tip_box("🔑 Tip: Always simplify fractions before calculating. Cross-multiply to compare fractions quickly.", LTBLUE)) story.append(PageBreak()) # ═══════════════════════════════════════════════════════════════════ # L1 — INDICES & SURDS # ═══════════════════════════════════════════════════════════════════ story.append(band("LEVEL 1 — Indices & Surds (Powers & Roots)", TEAL)) story.append(Spacer(1,0.2*cm)) story.append(Paragraph("Powers and roots appear everywhere: Avogadro's number (6.022×10²³), half-life, rate laws.", BODY)) story.append(Paragraph("Laws of Indices", H3)) story.append(formula_box([ "a^m × a^n = a^(m+n) e.g. 10² × 10³ = 10⁵", "a^m ÷ a^n = a^(m−n) e.g. 10⁵ ÷ 10² = 10³", "(a^m)^n = a^(m×n) e.g. (10²)³ = 10⁶", "a^0 = 1 e.g. 5⁰ = 1", "a^(−n) = 1/a^n e.g. 10⁻³ = 0.001", "a^(1/n) = ⁿ√a e.g. 8^(1/3) = ∛8 = 2", "a^(m/n) = ⁿ√(a^m) e.g. 8^(2/3) = (∛8)² = 4", ])) story.append(Paragraph("Scientific Notation", H3)) story.append(formula_box([ "Write as: N × 10^n where 1 ≤ N < 10", "", "0.000034 = 3.4 × 10⁻⁵", "602200000000000000000000 = 6.022 × 10²³ (Avogadro's number)", "", "Multiplying: (3 × 10⁴) × (2 × 10³) = 6 × 10⁷", "Dividing: (6 × 10⁸) ÷ (3 × 10⁵) = 2 × 10³", ])) story.append(tip_box("🔑 NEET/JEE: You must be fluent with 10⁻³ to 10²⁴ range. Practice converting without a calculator.", LTGRN, colors.HexColor("#1A3A1A"))) story.append(Spacer(1,0.2*cm)) story.append(Paragraph("Square Roots & Cube Roots to Memorise", H3)) sqrt_rows = [ ["Number","√ (square root)","³√ (cube root)"], ["1","1","1"],["4","2","—"],["8","—","2"],["9","3","—"], ["16","4","—"],["25","5","—"],["27","—","3"],["36","6","—"], ["49","7","—"],["64","8","4"],["81","9","—"],["100","10","—"], ["121","11","—"],["144","12","—"],["169","13","—"],["225","15","—"], ] story.append(tbl(sqrt_rows,[4*cm,6*cm,7*cm])) story.append(PageBreak()) # ═══════════════════════════════════════════════════════════════════ # L2 — ALGEBRA # ═══════════════════════════════════════════════════════════════════ story.append(band("LEVEL 2 — Algebra: Equations & Rearrangement", PURPLE)) story.append(Spacer(1,0.2*cm)) story.append(Paragraph("In Physics, you rarely memorise every formula in one form — you rearrange. Algebra is that skill.", BODY)) story.append(Paragraph("Golden Rule of Equations", H3)) story.append(formula_box([ "Whatever you do to one side, do the same to the other side.", "", "v = u + at → solve for a:", " v − u = at", " a = (v − u) / t ✓", "", "PV = nRT → solve for T:", " T = PV / nR ✓", "", "E = hf → solve for f:", " f = E / h ✓", ])) story.append(Paragraph("Algebraic Identities (memorise these)", H3)) story.append(formula_box([ "(a + b)² = a² + 2ab + b²", "(a − b)² = a² − 2ab + b²", "(a + b)(a − b) = a² − b²", "(a + b)³ = a³ + 3a²b + 3ab² + b³", "(a − b)³ = a³ − 3a²b + 3ab² − b³", "a³ + b³ = (a + b)(a² − ab + b²)", "a³ − b³ = (a − b)(a² + ab + b²)", ])) story.append(Paragraph("Linear Equations — Simultaneous (Two unknowns)", H3)) story.append(formula_box([ "Method: Elimination or Substitution", "", "Example (Kirchhoff's circuit laws style):", " I₁ + I₂ = 5 ...(1)", " 2I₁ − I₂ = 1 ...(2)", "", "Add (1)+(2): 3I₁ = 6 → I₁ = 2", "Substitute in (1): 2 + I₂ = 5 → I₂ = 3", ])) story.append(tip_box("🔑 NEET: Every formula rearrangement IS algebra. Practise isolating each variable from every physics formula you learn.", LTPUR, colors.HexColor("#2D004B"))) story.append(PageBreak()) # ═══════════════════════════════════════════════════════════════════ # L3 — RATIO, PROPORTION, % # ═══════════════════════════════════════════════════════════════════ story.append(band("LEVEL 3 — Ratio, Proportion & Percentage", ORANGE)) story.append(Spacer(1,0.2*cm)) story.append(formula_box([ "Ratio a:b = a/b", "", "Direct proportion: y ∝ x → y = kx", "Inverse proportion: y ∝ 1/x → y = k/x", "", "Combined gas law (proportion): P₁V₁/T₁ = P₂V₂/T₂", "", "Mole fraction: χ_A = n_A / (n_A + n_B)", "Mass fraction: w_A = mass_A / total mass", "", "Percentage composition: % of element = (mass of element / molar mass) × 100", ])) story.append(Spacer(1,0.15*cm)) story.append(tip_box("🔑 Chemistry: Stoichiometry ratios, molarity, normality, and mole concept ALL use ratio-proportion.", LTOR, colors.HexColor("#4A1A00"))) story.append(PageBreak()) # ═══════════════════════════════════════════════════════════════════ # L4 — LOGARITHMS # ═══════════════════════════════════════════════════════════════════ story.append(band("LEVEL 4 — Logarithms", colors.HexColor("#1A6B2A"))) story.append(Spacer(1,0.2*cm)) story.append(Paragraph("Logarithms are ESSENTIAL for Chemistry (pH, Nernst equation, rate constants) and Physics (sound, optics).", BODY)) story.append(formula_box([ "Definition: log_b(x) = n means b^n = x", "", "Common log (base 10): log₁₀ or just log", "Natural log (base e): ln (e ≈ 2.718)", "", "KEY RULES:", " log(AB) = log A + log B", " log(A/B) = log A − log B", " log(Aⁿ) = n·log A", " log_b(b) = 1 e.g. log 10 = 1", " log_b(1) = 0 e.g. log 1 = 0", " ln(e) = 1", " log A = ln A / ln 10 = ln A / 2.303", " ln A = 2.303 × log A", ])) story.append(Spacer(1,0.15*cm)) story.append(Paragraph("Where You'll Use Logs in NEET/JEE", H3)) story.append(formula_box([ "pH = −log[H⁺] (Chemistry — Acids & Bases)", "pH = −log(1.0×10⁻⁷) = 7 (neutral water)", "", "Nernst Equation: (Chemistry — Electrochemistry)", " E = E° − (RT/nF)·ln Q", " E = E° − (0.0592/n)·log Q at 25°C", "", "Radioactive decay: (Physics — Modern Physics)", " N = N₀ · e^(−λt)", " ln(N/N₀) = −λt", " t½ = 0.693 / λ", "", "Rate constant (1st order): (Chemistry — Kinetics)", " k = (2.303/t) · log(a/(a−x))", ])) story.append(Paragraph("Log Values to Memorise", H3)) log_rows = [ ["x","log x (base 10)","ln x (base e)"], ["1","0","0"],["2","0.301","0.693"],["3","0.477","1.099"], ["4","0.602","1.386"],["5","0.699","1.609"],["10","1","2.303"], ["100","2","4.606"],["e ≈ 2.718","0.434","1"], ] story.append(tbl(log_rows,[4*cm,6.5*cm,6.5*cm])) story.append(tip_box("🔑 Memorise log 2 = 0.301 and log 3 = 0.477 — you can derive all others from these two.", LTGRN, colors.HexColor("#1A3A1A"))) story.append(PageBreak()) # ═══════════════════════════════════════════════════════════════════ # L5 — TRIGONOMETRY # ═══════════════════════════════════════════════════════════════════ story.append(band("LEVEL 5 — Trigonometry", PURPLE)) story.append(Spacer(1,0.2*cm)) story.append(Paragraph("Trig is the language of waves, optics, and vectors. You cannot solve Physics without it.", BODY)) story.append(Paragraph("Basic Ratios (SOH-CAH-TOA)", H3)) story.append(formula_box([ "In a right-angled triangle with angle θ:", "", " sin θ = Opposite / Hypotenuse (SOH)", " cos θ = Adjacent / Hypotenuse (CAH)", " tan θ = Opposite / Adjacent (TOA)", "", " cosec θ = 1/sin θ", " sec θ = 1/cos θ", " cot θ = 1/tan θ", "", "Pythagorean Identity: sin²θ + cos²θ = 1", " 1 + tan²θ = sec²θ", " 1 + cot²θ = cosec²θ", ])) story.append(Paragraph("Standard Angles — Values Table (MEMORISE)", H3)) trig_rows = [ ["Angle","0°","30°","45°","60°","90°","180°","270°","360°"], ["sin","0","1/2","1/√2","√3/2","1","0","-1","0"], ["cos","1","√3/2","1/√2","1/2","0","-1","0","1"], ["tan","0","1/√3","1","√3","∞","0","∞","0"], ] tt = Table(trig_rows, colWidths=[2*cm]+[1.875*cm]*8) tt.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,0),PURPLE),("TEXTCOLOR",(0,0),(-1,0),colors.white), ("BACKGROUND",(0,0),(0,-1),NAVY),("TEXTCOLOR",(0,0),(0,-1),colors.white), ("FONTNAME",(0,0),(-1,0),"Helvetica-Bold"),("FONTNAME",(0,0),(0,-1),"Helvetica-Bold"), ("FONTSIZE",(0,0),(-1,-1),8.5),("ALIGN",(0,0),(-1,-1),"CENTER"), ("ROWBACKGROUNDS",(0,1),(-1,-1),[LTPUR,colors.white]), ("GRID",(0,0),(-1,-1),0.4,MIDGRAY), ("TOPPADDING",(0,0),(-1,-1),5),("BOTTOMPADDING",(0,0),(-1,-1),5), ])) story.append(tt) story.append(Spacer(1,0.15*cm)) story.append(Paragraph("Key Identities for NEET/JEE", H3)) story.append(formula_box([ "sin(A±B) = sinA·cosB ± cosA·sinB", "cos(A±B) = cosA·cosB ∓ sinA·sinB", "sin 2A = 2 sinA cosA", "cos 2A = cos²A − sin²A = 1−2sin²A = 2cos²A−1", "", "PHYSICS USE:", " Component of force F at angle θ:", " Horizontal: F·cos θ", " Vertical: F·sin θ", "", " Projectile: Range R = v²·sin2θ / g (max at θ=45°)", " Wave: y = A·sin(ωt − kx)", ])) story.append(tip_box("🔑 NEET Physics: At 30°, sin=0.5, cos=0.866. At 45°, sin=cos=0.707. You use these EVERY paper.", LTBLUE)) story.append(PageBreak()) # ═══════════════════════════════════════════════════════════════════ # L6 — COORDINATE GEOMETRY & GRAPHS # ═══════════════════════════════════════════════════════════════════ story.append(band("LEVEL 6 — Coordinate Geometry & Graph Reading", TEAL)) story.append(Spacer(1,0.2*cm)) story.append(formula_box([ "Cartesian plane: x-axis (horizontal), y-axis (vertical), origin (0,0)", "", "Distance between (x₁,y₁) and (x₂,y₂):", " d = √[(x₂−x₁)² + (y₂−y₁)²]", "", "Slope (gradient) of a line:", " m = (y₂−y₁)/(x₂−x₁) = Δy/Δx", "", "Equation of straight line: y = mx + c", " m = slope, c = y-intercept", "", "PHYSICS: slope of velocity-time graph = ACCELERATION", " slope of displacement-time graph = VELOCITY", " area under v-t graph = DISPLACEMENT", " area under F-x graph = WORK DONE", ])) story.append(tip_box("🔑 Graph questions in Physics are EASY marks — identify slope and area under curve. Practice 10 graph MCQs weekly.", LTGRN, colors.HexColor("#1A3A1A"))) story.append(PageBreak()) # ═══════════════════════════════════════════════════════════════════ # L7 — QUADRATIC EQUATIONS # ═══════════════════════════════════════════════════════════════════ story.append(band("LEVEL 7 — Quadratic Equations", ORANGE)) story.append(Spacer(1,0.2*cm)) story.append(formula_box([ "Standard form: ax² + bx + c = 0", "", "Quadratic formula:", " x = [−b ± √(b²−4ac)] / 2a", "", "Discriminant D = b²−4ac:", " D > 0 → 2 real distinct roots", " D = 0 → 2 equal real roots", " D < 0 → no real roots", "", "Sum of roots: α + β = −b/a", "Product of roots: α × β = c/a", "", "PHYSICS use: Time of flight in projectile → quadratic in t", "CHEMISTRY use: Equilibrium concentration calculations (ICE table)", " e.g. Ka = x²/(C−x) → x² + Ka·x − Ka·C = 0", ])) story.append(PageBreak()) # ═══════════════════════════════════════════════════════════════════ # L8 — SEQUENCES & SERIES # ═══════════════════════════════════════════════════════════════════ story.append(band("LEVEL 8 — Sequences & Series", colors.HexColor("#1A5276"))) story.append(Spacer(1,0.2*cm)) story.append(formula_box([ "ARITHMETIC PROGRESSION (AP):", " aₙ = a + (n−1)d", " Sₙ = n/2 × [2a + (n−1)d]", "", "GEOMETRIC PROGRESSION (GP):", " aₙ = a·r^(n−1)", " Sₙ = a(rⁿ−1)/(r−1) for r ≠ 1", " S∞ = a/(1−r) for |r| < 1", "", "PHYSICS use:", " Resistors in series: R_total = R₁ + R₂ + R₃ (AP-like)", " Capacitors in parallel: C_total = C₁ + C₂ + C₃", " Capacitors in series: 1/C = 1/C₁ + 1/C₂ + ... (harmonic)", "", "BINOMIAL APPROXIMATION (very useful for small x):", " (1+x)ⁿ ≈ 1 + nx when x << 1", ])) story.append(PageBreak()) # ═══════════════════════════════════════════════════════════════════ # L9 — DIFFERENTIATION # ═══════════════════════════════════════════════════════════════════ story.append(band("LEVEL 9 — Basic Differentiation (Calculus Part 1)", RED)) story.append(Spacer(1,0.2*cm)) story.append(Paragraph( "You DON'T need full calculus for NEET Biology/Chemistry, but Physics (JEE & NEET advanced) " "requires understanding what a derivative means and basic rules.", BODY)) story.append(formula_box([ "Derivative = rate of change = slope of graph at a point", "", "Notation: dy/dx or f'(x) or d/dx [f(x)]", "", "BASIC RULES:", " d/dx (constant) = 0", " d/dx (xⁿ) = n·x^(n−1) [Power rule]", " d/dx (sin x) = cos x", " d/dx (cos x) = −sin x", " d/dx (tan x) = sec²x", " d/dx (eˣ) = eˣ", " d/dx (ln x) = 1/x", " d/dx (uv) = u·dv/dx + v·du/dx [Product rule]", " d/dx (u/v) = (v·du/dx − u·dv/dx)/v² [Quotient rule]", " d/dx [f(g(x))] = f'(g(x))·g'(x) [Chain rule]", ])) story.append(Paragraph("Physics Applications of Derivatives", H3)) story.append(formula_box([ "If x(t) = displacement, v = dx/dt = velocity, a = dv/dt = d²x/dt²", "", "Work: P = dW/dt (power = rate of work)", "", "At maximum/minimum: dy/dx = 0 (set derivative to zero)", "e.g. Maximum range of projectile → differentiate R w.r.t. angle → R is max at 45°", "", "Simple example:", " x = 5t³ − 3t", " v = dx/dt = 15t² − 3", " a = dv/dt = 30t", ])) story.append(PageBreak()) # ═══════════════════════════════════════════════════════════════════ # L10 — INTEGRATION # ═══════════════════════════════════════════════════════════════════ story.append(band("LEVEL 10 — Basic Integration (Calculus Part 2)", RED)) story.append(Spacer(1,0.2*cm)) story.append(Paragraph("Integration = reverse of differentiation = area under a curve.", BODY)) story.append(formula_box([ "Notation: ∫f(x)dx", "", "BASIC RULES:", " ∫xⁿ dx = x^(n+1)/(n+1) + C [n ≠ −1]", " ∫1/x dx = ln|x| + C", " ∫eˣ dx = eˣ + C", " ∫sin x dx = −cos x + C", " ∫cos x dx = sin x + C", " ∫k dx = kx + C [constant]", "", "DEFINITE INTEGRAL (gives a number, not a function):", " ∫[a to b] f(x)dx = F(b) − F(a) [F = antiderivative]", "", "PHYSICS use:", " Displacement = ∫v dt", " Velocity = ∫a dt", " Work = ∫F dx", " Electric potential from field: V = −∫E dr", " Charge: q = ∫I dt", ])) story.append(tip_box("🔑 For NEET: You mostly need to recognise what integration means physically (area under graph). Full calculus is more JEE-level.", LTRED, colors.HexColor("#4A0000"))) story.append(PageBreak()) # ═══════════════════════════════════════════════════════════════════ # L11 — VECTORS # ═══════════════════════════════════════════════════════════════════ story.append(band("LEVEL 11 — Vectors & Scalars", NAVY)) story.append(Spacer(1,0.2*cm)) story.append(Paragraph("Vectors have magnitude AND direction. Scalars have only magnitude. Critical for all of Physics.", BODY)) story.append(formula_box([ "SCALARS: mass, speed, temperature, energy, time, distance", "VECTORS: displacement, velocity, acceleration, force, momentum, electric field", "", "VECTOR ADDITION (Triangle / Parallelogram law):", " |R| = √(A² + B² + 2AB·cosθ) (resultant magnitude)", " tan α = B·sinθ / (A + B·cosθ) (direction of resultant)", "", "Special cases:", " θ=0°: R = A + B (same direction)", " θ=180°: R = |A − B| (opposite direction)", " θ=90°: R = √(A²+B²) (Pythagoras)", "", "COMPONENTS (resolve into x and y):", " Aₓ = A·cosθ Ay = A·sinθ", " |A| = √(Aₓ²+Ay²) θ = tan⁻¹(Ay/Aₓ)", "", "DOT PRODUCT (scalar result):", " A·B = |A||B|cosθ", " Work = F·d = F·d·cosθ", "", "CROSS PRODUCT (vector result):", " |A×B| = |A||B|sinθ", " Torque τ = r × F, |τ| = rF·sinθ", ])) story.append(tip_box("🔑 NEET/JEE: Every force, field, velocity problem uses vectors. Draw a diagram, resolve components, then calculate.", LTBLUE)) story.append(PageBreak()) # ═══════════════════════════════════════════════════════════════════ # L12 — DIMENSIONAL ANALYSIS # ═══════════════════════════════════════════════════════════════════ story.append(band("LEVEL 12 — Dimensional Analysis & Units", TEAL)) story.append(Spacer(1,0.2*cm)) story.append(formula_box([ "FUNDAMENTAL QUANTITIES & SI UNITS:", " Mass [M] — kilogram (kg)", " Length [L] — metre (m)", " Time [T] — second (s)", " Current [A] — ampere (A)", " Temperature[θ] — kelvin (K)", " Amount [N] — mole (mol)", "", "DERIVED QUANTITIES (examples):", " Velocity: [LT⁻¹] m/s", " Acceleration: [LT⁻²] m/s²", " Force: [MLT⁻²] N = kg·m/s²", " Energy/Work: [ML²T⁻²] J = kg·m²/s²", " Pressure: [ML⁻¹T⁻²] Pa = N/m²", " Power: [ML²T⁻³] W = J/s", " Charge: [AT] C = A·s", " Voltage: [ML²T⁻³A⁻¹] V = J/C", "", "DIMENSIONAL ANALYSIS uses:", " 1. Check if a formula is correct (both sides must match)", " 2. Derive relationships between quantities", " 3. Convert between units", "", "Example — verify v = u + at:", " LHS: [v] = LT⁻¹", " RHS: [u]+[a][t] = LT⁻¹ + (LT⁻²)(T) = LT⁻¹ + LT⁻¹ ✓", ])) story.append(tip_box("🔑 Dimensional analysis can eliminate wrong answer options instantly in MCQs — always check units.", LTGRN, colors.HexColor("#1A3A1A"))) story.append(PageBreak()) # ═══════════════════════════════════════════════════════════════════ # BONUS — QUICK REFERENCE FORMULA SHEET # ═══════════════════════════════════════════════════════════════════ story.append(band("BONUS — Quick Reference Formula Sheet", GOLD)) story.append(Spacer(1,0.15*cm)) story.append(Paragraph("Tear out (or screenshot) this page. Stick it above your study table.", CTR)) story.append(Spacer(1,0.15*cm)) qr_rows = [ ["Category", "Formula", "Variables"], ["Logs","log(AB)=logA+logB; log(A/B)=logA−logB; log Aⁿ=n logA","A,B,n"], ["Logs","pH = −log[H⁺] ; ln A = 2.303 log A","H⁺ conc"], ["Trig","sin²θ+cos²θ=1 ; sin2θ=2sinθcosθ","θ=angle"], ["Trig","Fx=Fcosθ ; Fy=Fsinθ (component resolution)","F=force"], ["Vectors","R=√(A²+B²+2ABcosθ) ; Work=F·d·cosθ","A,B,θ"], ["Quadratic","x=[−b±√(b²−4ac)]/2a","a,b,c coefficients"], ["Indices","aᵐ·aⁿ=aᵐ⁺ⁿ ; (aᵐ)ⁿ=aᵐⁿ ; a⁰=1","a=base"], ["Sci Notation","N×10ⁿ ; multiply→add exponents","N∈[1,10)"], ["Calculus","d/dx(xⁿ)=nxⁿ⁻¹ ; ∫xⁿdx=xⁿ⁺¹/(n+1)+C","n≠−1"], ["Calculus","v=dx/dt ; a=dv/dt ; x=∫v dt","x,v,a,t"], ["Dimensions","Force=[MLT⁻²] ; Energy=[ML²T⁻²] ; Power=[ML²T⁻³]","M,L,T"], ["Decay","N=N₀e^(−λt) ; t½=0.693/λ ; λ=decay constant","N,t,λ"], ["Nernst Eq","E=E°−(0.0592/n)logQ at 25°C","n=electrons"], ["Kinetics","k=(2.303/t)·log(a/(a−x)) (1st order)","k,t,a,x"], ["% Yield","% yield = (actual/theoretical)×100","masses"], ["% Error","% error = |measured−true|/true × 100","values"], ] story.append(tbl(qr_rows, [3*cm, 8*cm, 6*cm])) story.append(Spacer(1,0.3*cm)) story.append(hr()) story.append(Spacer(1,0.15*cm)) # Learning path reminder path_data = [[Paragraph( "RECOMMENDED LEARNING PATH: L0 Numbers → L1 Indices → L2 Algebra → L3 Ratio/% → " "L4 Logs → L5 Trigonometry → L6 Graphs → L7 Quadratics → L8 Series → " "L9 Differentiation → L10 Integration → L11 Vectors → L12 Dimensions\n\n" "Spend 1 week per level. After each level, immediately apply it to 20 Physics/Chemistry MCQs. " "By the end of 13 weeks (~3 months), you will have all the maths you need for NEET/JEE.", sty("PR", fontSize=9, leading=14, fontName="Helvetica", textColor=NAVY))]] pt = Table(path_data, colWidths=[17*cm]) pt.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,-1),LTBLUE), ("LEFTPADDING",(0,0),(-1,-1),12),("RIGHTPADDING",(0,0),(-1,-1),12), ("TOPPADDING",(0,0),(-1,-1),10),("BOTTOMPADDING",(0,0),(-1,-1),10), ])) story.append(pt) story.append(Spacer(1,0.2*cm)) story.append(Paragraph("Generated by Orris · May 2026 · For NEET UG / JEE aspirants", sty("FT2",fontSize=8,leading=11,textColor=colors.gray,alignment=TA_CENTER))) doc.build(story) print("PDF created:", OUTPUT) PYEOF