Prepare a perfect study method to revise for fmge stating tomorrow oct 21 to 25 . I need to study it thoroughly. Subjects include IM, PSM, OBG, MICRO, ANATOMY, PHYSIOLOGY, BIOCHEMISTRY, PHARMA . I also write full exam daily sample exam or pyq past year 300q 2 hours to study other subjects
| Time | Task |
|---|---|
| 6:30-7:00 AM | Wake up, rapid recall of yesterday’s errors |
| 7:00-10:00 AM | 300-Q exam/PYQ test in exam-like conditions |
| 10:00-10:45 AM | Breakfast and break |
| 10:45 AM-12:45 PM | Review incorrect and guessed questions from the test |
| 12:45-1:30 PM | Lunch |
| 1:30-3:30 PM | Main Subject 1 |
| 3:45-5:45 PM | Main Subject 2 |
| 5:45-6:30 PM | Break, food, walk |
| 6:30-8:30 PM | Other subjects: 2-hour fixed block |
| 8:30-9:00 PM | Dinner |
| 9:00-10:15 PM | Revise test-error notebook and active recall |
| 10:15-10:35 PM | Plan next day, make short volatile-facts list |
| 10:45 PM | Sleep |
| Topic | Your error | Correct rule |
|---|---|---|
| PPH | Chose placenta previa management | First assess hemodynamic stability; uterine atony is the commonest cause |
| TB drugs | Forgot adverse effect | Ethambutol causes optic neuritis |
| Screening | Mixed up terms | Sensitivity is ability to detect disease among diseased people |
Generate a PDF quick-reference study plan
~/
mkdir -p "/tmp/workspace/fmge-study-plan/src" "/tmp/workspace/fmge-study-plan/output" && python - <<'PY' from reportlab.lib import colors from reportlab.lib.enums import TA_CENTER, TA_LEFT from reportlab.lib.pagesizes import A4 from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import cm from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, PageBreak, KeepTogether from reportlab.pdfbase.ttfonts import TTFont from reportlab.pdfbase import pdfmetrics from reportlab.pdfbase.pdfmetrics import stringWidth from reportlab.lib.colors import HexColor out='/tmp/workspace/fmge-study-plan/output/FMGE_Quick_Reference_Study_Plan_Oct21-25.pdf' page_w,page_h=A4 styles=getSampleStyleSheet() navy=HexColor('#13233F'); teal=HexColor('#007C83'); cyan=HexColor('#DDF5F4'); gold=HexColor('#E8B24B'); pale=HexColor('#F5F7FA'); grey=HexColor('#536174'); red=HexColor('#A4343A') styles.add(ParagraphStyle(name='TitleCustom', parent=styles['Title'], fontName='Helvetica-Bold', fontSize=24, leading=28, textColor=navy, alignment=TA_CENTER, spaceAfter=7)) styles.add(ParagraphStyle(name='SubTitle', parent=styles['Normal'], fontName='Helvetica', fontSize=10.5, leading=14, textColor=grey, alignment=TA_CENTER, spaceAfter=12)) styles.add(ParagraphStyle(name='H1x', parent=styles['Heading1'], fontName='Helvetica-Bold', fontSize=16, leading=19, textColor=navy, spaceBefore=6, spaceAfter=7)) styles.add(ParagraphStyle(name='H2x', parent=styles['Heading2'], fontName='Helvetica-Bold', fontSize=11.5, leading=14, textColor=teal, spaceBefore=5, spaceAfter=4)) styles.add(ParagraphStyle(name='Bodyx', parent=styles['BodyText'], fontName='Helvetica', fontSize=8.6, leading=11, textColor=navy, spaceAfter=3)) styles.add(ParagraphStyle(name='Small', parent=styles['BodyText'], fontName='Helvetica', fontSize=7.6, leading=9.2, textColor=navy)) styles.add(ParagraphStyle(name='Tiny', parent=styles['BodyText'], fontName='Helvetica', fontSize=6.9, leading=8.1, textColor=navy)) styles.add(ParagraphStyle(name='Callout', parent=styles['BodyText'], fontName='Helvetica-Bold', fontSize=9, leading=12, textColor=navy, alignment=TA_CENTER)) def P(t, sty='Bodyx'): return Paragraph(t, styles[sty]) def bullet(t): return P('• '+t, 'Small') def footer(canvas, doc): canvas.saveState(); canvas.setStrokeColor(HexColor('#C9D2DD')); canvas.setLineWidth(.4) canvas.line(1.45*cm, 1.1*cm, page_w-1.45*cm, 1.1*cm) canvas.setFont('Helvetica',7.5); canvas.setFillColor(grey) canvas.drawString(1.45*cm,.72*cm,'FMGE Quick Reference | Oct 21-25, 2026') canvas.drawRightString(page_w-1.45*cm,.72*cm,f'Page {doc.page}') canvas.restoreState() doc=SimpleDocTemplate(out,pagesize=A4,rightMargin=1.3*cm,leftMargin=1.3*cm,topMargin=1.15*cm,bottomMargin=1.45*cm) story=[] story += [P('FMGE REVISION SPRINT','TitleCustom'), P('Quick-reference study plan | Wednesday, Oct 21 to Sunday, Oct 25, 2026','SubTitle')] call=Table([[P('<b>Target:</b> Thoroughly revise 8 core subjects, complete a full 300-question exam or PYQ daily, and protect a 2-hour block for short-subject revision.','Callout')]], colWidths=[18.3*cm]) call.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),cyan),('BOX',(0,0),(-1,-1),.7,teal),('LEFTPADDING',(0,0),(-1,-1),12),('RIGHTPADDING',(0,0),(-1,-1),12),('TOPPADDING',(0,0),(-1,-1),9),('BOTTOMPADDING',(0,0),(-1,-1),9)])) story += [call, Spacer(1,10), P('Daily non-negotiables','H1x')] rules=[['1','Full 300-Q paper / PYQ daily','Timed, closed-book, exam conditions.'],['2','Review errors the same day','Prioritize wrong and guessed answers.'],['3','Two major-subject blocks','Active recall, then topic-wise MCQs.'],['4','Fixed 2-hour other-subject block','Short, targeted revision, not passive reading.'],['5','Error notebook twice daily','Morning recall + night consolidation.']] t=Table([[P('<b>Priority</b>','Small'),P('<b>Task</b>','Small'),P('<b>Rule</b>','Small')]]+[[P(a,'Small'),P('<b>'+b+'</b>','Small'),P(c,'Small')] for a,b,c in rules], colWidths=[1.3*cm,6.2*cm,10.8*cm]) t.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,0),navy),('TEXTCOLOR',(0,0),(-1,0),colors.white),('BACKGROUND',(0,1),(-1,-1),pale),('GRID',(0,0),(-1,-1),.35,HexColor('#CBD5E1')),('VALIGN',(0,0),(-1,-1),'TOP'),('LEFTPADDING',(0,0),(-1,-1),6),('RIGHTPADDING',(0,0),(-1,-1),6),('TOPPADDING',(0,0),(-1,-1),5),('BOTTOMPADDING',(0,0),(-1,-1),5)])) story += [t, Spacer(1,10), P('Daily template','H1x')] schedule=[('06:30-07:00','Recall yesterday\'s error list'),('07:00-10:00','300-Q full mock / PYQ set'),('10:45-12:45','Review wrong + guessed questions; record only key rule'),('13:30-15:30','Major Subject 1'),('15:45-17:45','Major Subject 2'),('18:30-20:30','Other-subject block: 2 hours'),('21:00-22:15','Error notebook + active recall + plan tomorrow'),('22:45','Sleep')] t=Table([[P('<b>Time</b>','Small'),P('<b>Action</b>','Small')]]+[[P(a,'Small'),P(b,'Small')] for a,b in schedule], colWidths=[3.3*cm,15*cm]) t.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,0),teal),('TEXTCOLOR',(0,0),(-1,0),colors.white),('ROWBACKGROUNDS',(0,1),(-1,-1),[colors.white,pale]),('GRID',(0,0),(-1,-1),.3,HexColor('#D4DCE6')),('VALIGN',(0,0),(-1,-1),'MIDDLE'),('LEFTPADDING',(0,0),(-1,-1),6),('RIGHTPADDING',(0,0),(-1,-1),6),('TOPPADDING',(0,0),(-1,-1),4),('BOTTOMPADDING',(0,0),(-1,-1),4)])) story += [t, Spacer(1,8), P('Question-review triage','H2x'), P('<b>Review in this order:</b> Wrong clinical-management questions → repeated PYQ patterns → weak-subject questions → guessed answers. Do not spend time rereading easy correct answers. For each error record: <b>topic | why I missed it | correct rule.</b>','Bodyx'), Spacer(1,5), P('Use every focused subject block: <b>45 min revise → 10 min closed-book recall → 45 min topic MCQs → 10 min error log.</b>','Callout')] story.append(PageBreak()) story += [P('Five-day subject map','H1x'), P('Use one main revision source plus PYQs, marked MCQs, flashcards and your error notebook. Do not start new resources.','Bodyx')] days=[ ('Wed, Oct 21','INTERNAL MEDICINE','PHARMACOLOGY','Anatomy + Physiology','IM: cardio, respiratory, endocrine, renal, neuro, GI, hematology. Pharma: ANS, CVS, antimicrobials, CNS, endocrine, anticancer, ADRs, antidotes.'), ('Thu, Oct 22','OBSTETRICS & GYNAECOLOGY','MICROBIOLOGY','Biochemistry + Physiology','OBG: antenatal care, HTN, APH/PPH, labour, ectopic, abortion, AUB, infertility, contraception, cancers. Micro: sterilization, immunology, bacteria, viruses, fungi, parasites, stains/media.'), ('Fri, Oct 23','PSM','ANATOMY','Pharmacology + Microbiology','PSM: epi, screening, biostats, programs, vaccines, environmental health, nutrition. Anatomy: neuro, head-neck, abdomen-pelvis, limbs, embryology, histology.'), ('Sat, Oct 24','PHYSIOLOGY','BIOCHEMISTRY','OBG + PSM','Physio: cardio/ECG, respiratory, renal/acid-base, endocrine, CNS, reproduction. Biochem: carbohydrate/lipid/AA metabolism, molecular biology, vitamins, enzymes, inborn errors.'), ('Sun, Oct 25','INTEGRATED WEAK AREAS','VOLATILE FACTS + IMAGES','8-subject rapid cycle','Use errors from the first four papers. Revise algorithms, drug antidotes/ADRs, organisms/tests/vaccines, PSM formulas/schedules, diagrams, graphs and high-yield tables.')] rows=[[P('<b>Date</b>','Tiny'),P('<b>Major 1</b>','Tiny'),P('<b>Major 2</b>','Tiny'),P('<b>Other subjects<br/>2 hours</b>','Tiny'),P('<b>Focus</b>','Tiny')]] for d,a,b,c,e in days: rows.append([P('<b>'+d+'</b>','Tiny'),P(a,'Tiny'),P(b,'Tiny'),P(c,'Tiny'),P(e,'Tiny')]) t=Table(rows,colWidths=[2.35*cm,3.0*cm,3.0*cm,3.05*cm,7.0*cm],repeatRows=1) t.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,0),navy),('TEXTCOLOR',(0,0),(-1,0),colors.white),('ROWBACKGROUNDS',(0,1),(-1,-1),[colors.white,HexColor('#EFF6F6')]),('GRID',(0,0),(-1,-1),.35,HexColor('#BAC7D3')),('VALIGN',(0,0),(-1,-1),'TOP'),('LEFTPADDING',(0,0),(-1,-1),4),('RIGHTPADDING',(0,0),(-1,-1),4),('TOPPADDING',(0,0),(-1,-1),5),('BOTTOMPADDING',(0,0),(-1,-1),5)])) story += [t, Spacer(1,10), P('Final-day rapid cycle: 15 minutes each','H2x')] cycle=['IM: emergency algorithms and common next steps','PSM: formulas, national programs, vaccines','OBG: obstetric emergencies, contraception, screening','Micro: organisms, stains, culture media, serology','Anatomy: nerve lesions, cranial nerves, embryology','Physiology: graphs, values, acid-base, ECG','Biochemistry: vitamins, pathways, storage disorders','Pharmacology: drug of choice, ADRs, antidotes'] left=[bullet(x) for x in cycle[:4]]; right=[bullet(x) for x in cycle[4:]] t=Table([[left,right]],colWidths=[9.1*cm,9.3*cm]); t.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),pale),('BOX',(0,0),(-1,-1),.5,HexColor('#CBD5E1')),('VALIGN',(0,0),(-1,-1),'TOP'),('LEFTPADDING',(0,0),(-1,-1),9),('RIGHTPADDING',(0,0),(-1,-1),9),('TOPPADDING',(0,0),(-1,-1),7),('BOTTOMPADDING',(0,0),(-1,-1),7)])); story += [t] story += [Spacer(1,9), P('Rules until Oct 25','H1x')] rules2=['No new notes, coaching modules, apps, or random videos.','Keep handwritten notes to a one-line correction only.','At night list the <b>10 facts you forgot</b>; recall them next morning.','Aim for at least <b>6.5-7 hours of sleep</b>.','Mock score is feedback. Error correction is the study session.'] story += [bullet(x) for x in rules2] # checklist story += [Spacer(1,7), P('Daily completion tracker','H2x')] tracker=[['Date','300 Q done','Reviewed wrong/guessed','2 major blocks','2-hour other block','Error notebook','Sleep 6.5 h+']] for date in ['Oct 21','Oct 22','Oct 23','Oct 24','Oct 25']: tracker.append([date,'☐','☐','☐','☐','☐','☐']) t=Table([[P('<b>'+x+'</b>','Tiny') for x in tracker[0]]]+[[P(x,'Tiny') for x in r] for r in tracker[1:]],colWidths=[2.4*cm,2.4*cm,3.7*cm,2.5*cm,3.0*cm,2.7*cm,2.0*cm]) t.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,0),teal),('TEXTCOLOR',(0,0),(-1,0),colors.white),('GRID',(0,0),(-1,-1),.35,HexColor('#B7C5D3')),('ALIGN',(1,1),(-1,-1),'CENTER'),('VALIGN',(0,0),(-1,-1),'MIDDLE'),('ROWBACKGROUNDS',(0,1),(-1,-1),[colors.white,pale]),('LEFTPADDING',(0,0),(-1,-1),3),('RIGHTPADDING',(0,0),(-1,-1),3),('TOPPADDING',(0,0),(-1,-1),5),('BOTTOMPADDING',(0,0),(-1,-1),5)])) story += [t] doc.build(story,onFirstPage=footer,onLaterPages=footer) print(out) PY python - <<'PY' from pypdf import PdfReader p='/tmp/workspace/fmge-study-plan/output/FMGE_Quick_Reference_Study_Plan_Oct21-25.pdf' r=PdfReader(p) print('pages',len(r.pages),'size',__import__('os').path.getsize(p),'text_chars',sum(len(x.extract_text() or '') for x in r.pages)) PY
FMGE Quick Reference Study Plan Oct21 25
PDF Document · PDF
Generate subject-wise high-yield flashcards
According to you , if i master these 8 subjects just pyqs and pyts .how much mark can i score in fmge exam as a human😩
FMGE subject wise weightage 300 questions official information bulletin NBE 2026
| Subject | Approx. questions |
|---|---|
| Internal Medicine | 33 |
| PSM | 30 |
| OBG | 30 |
| Anatomy | 17 |
| Physiology | 17 |
| Biochemistry | 17 |
| Pharmacology | 13 |
| Microbiology | 13 |
| Total | 170 |
| Your actual command over the 8 subjects | Likely score range |
|---|---|
| Read PYQs once, remember some answers | 105-125 |
| Strong PYQ/PYT revision, moderate concept clarity | 125-145 |
| Master concepts, images, one-liners, clinical variants, and daily error review | 145-165 |
| Very strong 8 subjects plus 2 hours daily for remaining subjects | 155-175+ |
Create a website for me top notch for this
~/
~/fmge-study-plan
mkdir -p "/tmp/workspace/fmge-study-plan/website" && python - <<'PY' from pathlib import Path p=Path('/tmp/workspace/fmge-study-plan/website/index.html') p.write_text(r'''<!doctype html> <html lang="en"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width,initial-scale=1" /> <meta name="theme-color" content="#081b2b" /> <title>FMGE Sprint | Oct 21-25</title> <style> :root{--ink:#082034;--muted:#668094;--paper:#f6f8fb;--line:#e3eaf0;--navy:#071d31;--blue:#1769e0;--cyan:#14b8c9;--mint:#ddf7f2;--amber:#f0ad43;--rose:#ea6478;--white:#fff;--shadow:0 18px 50px rgba(21,55,84,.12)} *{box-sizing:border-box} body{margin:0;font:15px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--paper);color:var(--ink)} button{font:inherit;cursor:pointer}.shell{max-width:1240px;margin:auto;padding:0 24px}.top{background:var(--navy);color:white;min-height:400px;position:relative;overflow:hidden}.top:before,.top:after{content:"";position:absolute;border-radius:50%;filter:blur(1px)}.top:before{width:500px;height:500px;background:radial-gradient(circle,rgba(20,184,201,.26),transparent 67%);right:-130px;top:-280px}.top:after{width:350px;height:350px;background:radial-gradient(circle,rgba(23,105,224,.35),transparent 67%);left:35%;bottom:-280px}.nav{height:74px;display:flex;justify-content:space-between;align-items:center;position:relative;z-index:2}.brand{font-weight:800;letter-spacing:.02em;font-size:18px}.brand span{color:#42d6db}.nav-right{font-size:13px;color:#bdd1dd}.hero{position:relative;z-index:1;padding:34px 0 64px;display:grid;grid-template-columns:1.3fr .7fr;gap:30px}.eyebrow{color:#59d5d6;font-weight:800;letter-spacing:.11em;font-size:11px;text-transform:uppercase}.hero h1{font-size:clamp(38px,5vw,67px);line-height:1.02;margin:10px 0 18px;letter-spacing:-.055em}.hero p{font-size:17px;max-width:620px;color:#c4d4df;margin:0}.hero-actions{display:flex;gap:11px;margin-top:25px}.btn{border:0;border-radius:10px;padding:11px 16px;font-weight:750}.btn.primary{background:#39d1d2;color:#042438}.btn.ghost{background:transparent;border:1px solid #426077;color:#e6f1f6}.hero-card{align-self:end;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(8px);padding:22px;border-radius:18px}.hero-card strong{font-size:38px;display:block;color:#5ce2df}.hero-card p{font-size:13px;margin:4px 0 13px;color:#d5e5ed}.tiny-progress{height:7px;background:#2b4a5e;border-radius:9px;overflow:hidden}.tiny-progress i{display:block;background:#50dbd7;height:100%;width:0%;transition:.4s} main{padding:34px 0 70px}.section-title{font-size:22px;letter-spacing:-.03em;margin:0 0 3px}.section-sub{font-size:13px;color:var(--muted);margin:0 0 17px}.grid{display:grid;grid-template-columns:1.3fr .7fr;gap:20px}.panel{background:var(--white);border:1px solid var(--line);box-shadow:0 5px 20px rgba(31,55,74,.035);border-radius:16px;padding:20px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stat{padding:16px;border-radius:13px;background:#f5f8fc}.stat b{display:block;font-size:25px;letter-spacing:-.04em}.stat span{font-size:12px;color:var(--muted)}.stat:nth-child(1){background:#eaf4ff}.stat:nth-child(2){background:#e9fbf7}.stat:nth-child(3){background:#fff6e7}.stat.done b{color:#139985}.bar{height:8px;background:#e8eef3;border-radius:999px;margin:14px 0 8px;overflow:hidden}.bar i{height:100%;display:block;width:0;background:linear-gradient(90deg,var(--blue),var(--cyan));border-radius:999px;transition:width .45s}.quick ul{padding:0;margin:9px 0 0;list-style:none}.quick li{display:flex;gap:9px;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px}.quick li:last-child{border:0}.dot{color:var(--cyan);font-weight:bold}.plan-head{margin-top:30px;display:flex;align-items:end;justify-content:space-between;gap:15px}.pill{color:#087e87;background:#e1f7f4;border-radius:100px;padding:6px 10px;font-weight:700;font-size:11px}.days{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.day{min-height:280px;padding:15px;border-radius:14px;background:#fff;border:1px solid var(--line);position:relative;transition:.2s}.day:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.day.active{border:2px solid var(--cyan);background:linear-gradient(180deg,#f5ffff,#fff)}.day .date{font-size:11px;color:var(--muted);font-weight:750;text-transform:uppercase;letter-spacing:.06em}.day h3{font-size:17px;line-height:1.1;margin:8px 0 14px;letter-spacing:-.035em}.subject{font-size:12px;padding:7px 0;border-top:1px solid var(--line)}.subject b{font-size:10px;color:#0c8e99;display:block;text-transform:uppercase;letter-spacing:.06em}.focus{font-size:11px;color:var(--muted);padding-top:10px}.check{position:absolute;right:12px;top:11px;width:25px;height:25px;border-radius:50%;background:#edf2f6;border:0;color:white;font-weight:bold}.day.complete .check{background:#13ad92}.day.complete{opacity:.72}.timeline{margin-top:28px}.slot{display:grid;grid-template-columns:105px 1fr auto;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}.slot time{font-size:12px;color:#0f8790;font-weight:800}.slot span{font-size:13px}.slot label{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:5px}.slot input,.daily-check input{accent-color:#0fa99a;width:16px;height:16px}.flash-layout{margin-top:32px;display:grid;grid-template-columns:.8fr 1.2fr;gap:20px}.subjects{display:flex;flex-wrap:wrap;gap:8px}.subject-btn{border:1px solid var(--line);background:white;border-radius:9px;padding:8px 10px;font-size:12px;font-weight:700;color:var(--ink)}.subject-btn.selected{background:var(--navy);color:white;border-color:var(--navy)}.card-wrap{perspective:1000px;min-height:210px}.flashcard{min-height:210px;position:relative;transform-style:preserve-3d;transition:transform .55s;cursor:pointer}.flashcard.flip{transform:rotateY(180deg)}.face{position:absolute;inset:0;backface-visibility:hidden;border-radius:15px;padding:23px;background:var(--navy);color:white;display:flex;flex-direction:column;justify-content:space-between}.back{transform:rotateY(180deg);background:linear-gradient(145deg,#e4fbf8,#fff);color:var(--ink);border:1px solid #bdebe4}.card-kicker{font-size:11px;color:#65e2df;text-transform:uppercase;letter-spacing:.11em;font-weight:bold}.back .card-kicker{color:#078a86}.card-content{font-size:20px;line-height:1.18;font-weight:750;letter-spacing:-.03em;max-width:620px}.hint{font-size:11px;color:#bcd1dd}.back .hint{color:var(--muted)}.flash-actions{display:flex;justify-content:space-between;margin-top:12px}.flash-actions button{border:1px solid var(--line);background:white;border-radius:9px;padding:9px 13px;font-size:12px;font-weight:700}.flash-actions .next{background:var(--cyan);border-color:var(--cyan);color:#042a36}.daily-check{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:13px}.daily-check label{font-size:12px;background:#f7f9fb;border:1px solid var(--line);border-radius:9px;padding:9px;display:flex;align-items:center;gap:7px}.footer{color:var(--muted);font-size:12px;text-align:center;padding-top:36px} @media(max-width:850px){.hero,.grid,.flash-layout{grid-template-columns:1fr}.days{grid-template-columns:repeat(2,1fr)}.hero-card{display:none}.daily-check{grid-template-columns:1fr 1fr}}@media(max-width:480px){.shell{padding:0 16px}.nav-right{display:none}.days{grid-template-columns:1fr}.stat-grid{grid-template-columns:1fr}.daily-check{grid-template-columns:1fr}.slot{grid-template-columns:85px 1fr}.slot label{grid-column:2}.hero h1{font-size:42px}} </style> </head> <body> <header class="top"><div class="shell"><nav class="nav"><div class="brand">FMGE<span>SPRINT</span></div><div class="nav-right">OCT 21-25, 2026 · FOCUSED REVISION</div></nav><div class="hero"><div><div class="eyebrow">Your five-day focused revision system</div><h1>Study sharp.<br>Show up ready.</h1><p>A calm, structured FMGE dashboard for high-yield revision, daily 300-question practice, error correction, and repeatable recall.</p><div class="hero-actions"><button class="btn primary" onclick="document.querySelector('#plan').scrollIntoView({behavior:'smooth'})">View the plan</button><button class="btn ghost" onclick="document.querySelector('#flashcards').scrollIntoView({behavior:'smooth'})">Start flashcards</button></div></div><aside class="hero-card"><strong id="heroPct">0%</strong><p>daily actions completed today</p><div class="tiny-progress"><i id="heroBar"></i></div></aside></div></div></header> <main class="shell"><section class="grid"><div class="panel"><h2 class="section-title">Today's scoreboard</h2><p class="section-sub">Small completions turn revision into confidence.</p><div class="stat-grid"><div class="stat"><b id="completedCount">0/6</b><span>daily tasks complete</span></div><div class="stat"><b>300</b><span>questions every day</span></div><div class="stat"><b>150+</b><span>safe target mindset</span></div></div><div class="bar"><i id="mainBar"></i></div><p class="section-sub" id="progressText">Start with the mock. Review is where marks are built.</p><div class="daily-check" id="dailyChecks"></div></div><aside class="panel quick"><h2 class="section-title">Revision rules</h2><ul><li><span class="dot">01</span><span><b>One source only.</b> PYQs, marked MCQs and your error list.</span></li><li><span class="dot">02</span><span><b>Review wrong + guessed answers.</b> Skip long review of confident correct answers.</span></li><li><span class="dot">03</span><span><b>Recall before rereading.</b> Test yourself, then open notes.</span></li><li><span class="dot">04</span><span><b>Sleep 6.5-7 hours.</b> Make memory part of the plan.</span></li></ul></aside></section> <section id="plan"><div class="plan-head"><div><h2 class="section-title">Five-day subject map</h2><p class="section-sub">Two major blocks, a 2-hour support block, and daily paper review.</p></div><span class="pill">TAP A TICK WHEN COMPLETE</span></div><div class="days" id="days"></div></section> <section class="grid timeline"><div class="panel"><h2 class="section-title">Daily rhythm</h2><p class="section-sub">Follow this order. Shift the clock if needed, not the sequence.</p><div id="timeline"></div></div><aside class="panel"><h2 class="section-title">Error-log formula</h2><p class="section-sub">One line per question. Never make fresh long notes.</p><div style="background:#fff5e4;border-radius:12px;padding:15px;font-size:13px"><b>Topic</b><br><span style="color:#6a7480">Why I missed it</span><hr style="border:0;border-top:1px solid #f1d7a8"><b>Correct rule</b><br><span style="color:#6a7480">One clinical or factual variation</span></div><p class="section-sub" style="margin-top:14px"><b>Night task:</b> list 10 forgotten facts, then recall them tomorrow morning before the paper.</p></aside></section> <section id="flashcards" class="flash-layout"><div class="panel"><h2 class="section-title">High-yield flashcards</h2><p class="section-sub">Choose a subject. Tap the card to reveal the answer.</p><div class="subjects" id="subjectButtons"></div><p class="section-sub" style="margin-top:18px"><b id="cardIndex">1 / 3</b> cards in this quick set.</p></div><div><div class="card-wrap"><article class="flashcard" id="flashcard" onclick="flipCard()"><div class="face"><span class="card-kicker" id="frontKicker">Internal Medicine</span><div class="card-content" id="frontText"></div><span class="hint">Tap card to reveal answer</span></div><div class="face back"><span class="card-kicker">Answer</span><div class="card-content" id="backText"></div><span class="hint">Recall it aloud, then move on.</span></div></article></div><div class="flash-actions"><button onclick="flipCard()">Flip card</button><button class="next" onclick="nextCard()">Next card →</button></div></div></section> <p class="footer">FMGE Sprint · built for focused revision, not perfection · your job: return to the next question.</p></main> <script> const tasks=['300-Q timed paper','Review wrong + guessed','Major block 1','Major block 2','2-hour support block','Error log + sleep']; const schedule=[['06:30-07:00','Recall yesterday’s errors'],['07:00-10:00','300-question mock / PYQ paper'],['10:45-12:45','Review wrong and guessed questions'],['13:30-15:30','Major subject block 1'],['15:45-17:45','Major subject block 2'],['18:30-20:30','Other-subject block: 2 hours'],['21:00-22:15','Error notebook and active recall']]; const days=[ ['Wed','Oct 21','Internal Medicine','Pharmacology','Anatomy + Physiology','Cardio, respiratory, endocrine, renal, neuro; drug of choice, ADRs and antidotes.'], ['Thu','Oct 22','OBG','Microbiology','Biochemistry + Physiology','Pregnancy emergencies, labour, contraception; organisms, tests, stains and media.'], ['Fri','Oct 23','PSM','Anatomy','Pharmacology + Microbiology','Epi, biostats, vaccines and programs; neuro, limbs, embryo, histology.'], ['Sat','Oct 24','Physiology','Biochemistry','OBG + PSM','Graphs, ECG, renal/acid-base; pathways, vitamins and inborn errors.'], ['Sun','Oct 25','Integrated weak areas','Volatile facts + images','8-subject rapid cycle','Algorithms, tables, diagrams, formulas and the last four days of errors.'] ]; const cards={ 'Internal Medicine':[['ABG: pH low, HCO₃⁻ low. What is the primary disorder?','Metabolic acidosis. Then assess respiratory compensation and calculate anion gap if relevant.'],['Most common cause of death in acute MI in the first 24 hours?','Arrhythmia, especially ventricular fibrillation.'],['First bedside priority in suspected stroke?','Establish time last known well and assess airway, glucose, neurological deficit, then imaging pathway.']], 'PSM':[['Sensitivity measures what?','Ability of a test to identify people who have disease: true positives / all diseased.'],['For a screening test, which matters more: sensitivity or specificity?','Sensitivity, so fewer cases are missed. Confirmatory tests need high specificity.'],['Incidence means?','New cases occurring in a population at risk during a specified period.']], 'OBG':[['Most common cause of postpartum hemorrhage?','Uterine atony. Think 4 Ts: Tone, Trauma, Tissue, Thrombin.'],['First action in an unstable patient with ectopic pregnancy?','Resuscitation and urgent surgical management, not expectant treatment.'],['Core goal in severe pre-eclampsia management?','Stabilize mother, prevent seizures with magnesium sulfate when indicated, control severe BP, assess delivery timing.']], 'Microbiology':[['Ziehl-Neelsen stain is classically used for?','Acid-fast bacilli, especially Mycobacterium tuberculosis.'],['Which hypersensitivity type is immune-complex mediated?','Type III.'],['Autoclave standard mechanism?','Steam under pressure: moist heat denatures proteins.']], 'Anatomy':[['Erb palsy roots and typical posture?','C5-C6; “waiter’s tip” posture due to upper trunk injury.'],['Cavernous sinus thrombosis: which cranial nerve is commonly affected early?','Abducens nerve (CN VI), as it runs centrally in the sinus.'],['What is the nerve supply of diaphragm?','Phrenic nerve, C3-C5.']], 'Physiology':[['Cardiac output formula?','Heart rate × stroke volume.'],['Right shift of O₂-Hb curve causes?','Reduced hemoglobin affinity for oxygen, aiding tissue unloading.'],['Main stimulus for ventilation in healthy people?','Rise in arterial CO₂, sensed chiefly through central chemoreceptors.']], 'Biochemistry':[['Rate-limiting enzyme of cholesterol synthesis?','HMG-CoA reductase.'],['Vitamin B12 deficiency can cause which metabolite rise?','Methylmalonic acid, and homocysteine can also rise.'],['Classic enzyme deficiency in phenylketonuria?','Phenylalanine hydroxylase.']], 'Pharmacology':[['Antidote for paracetamol toxicity?','N-acetylcysteine.'],['Major toxicity of aminoglycosides?','Nephrotoxicity and ototoxicity.'],['What does atropine treat in organophosphate poisoning?','Muscarinic manifestations. Pralidoxime targets acetylcholinesterase reactivation early.']] }; let selected='Internal Medicine',ci=0; const saved=JSON.parse(localStorage.getItem('fmgeSprint')||'{}'); function renderChecks(){const x=document.getElementById('dailyChecks');x.innerHTML=tasks.map((t,i)=>`<label><input type="checkbox" ${saved['t'+i]?'checked':''} onchange="toggleTask(${i},this.checked)">${t}</label>`).join('');updateProgress()} function toggleTask(i,v){saved['t'+i]=v;localStorage.setItem('fmgeSprint',JSON.stringify(saved));updateProgress()} function updateProgress(){let n=tasks.filter((_,i)=>saved['t'+i]).length,p=Math.round(n/tasks.length*100);document.getElementById('completedCount').textContent=n+'/'+tasks.length;document.getElementById('mainBar').style.width=p+'%';document.getElementById('heroBar').style.width=p+'%';document.getElementById('heroPct').textContent=p+'%';document.getElementById('progressText').textContent=n===6?'Excellent. Protect your sleep and repeat tomorrow.':n>=3?'Keep going. Review and recall are the final scoring blocks.':'Start with the mock. Review is where marks are built.'} function renderDays(){document.getElementById('days').innerHTML=days.map((d,i)=>`<article class="day ${saved['d'+i]?'complete':''} ${i===0?'active':''}"><button class="check" onclick="toggleDay(${i})">${saved['d'+i]?'✓':''}</button><div class="date">${d[0]} · ${d[1]}</div><h3>${d[2]}</h3><div class="subject"><b>Major block 2</b>${d[3]}</div><div class="subject"><b>2-hour support</b>${d[4]}</div><div class="focus">${d[5]}</div></article>`).join('')} function toggleDay(i){saved['d'+i]=!saved['d'+i];localStorage.setItem('fmgeSprint',JSON.stringify(saved));renderDays()} function renderTimeline(){document.getElementById('timeline').innerHTML=schedule.map((x,i)=>`<div class="slot"><time>${x[0]}</time><span>${x[1]}</span><label><input type="checkbox" ${saved['s'+i]?'checked':''} onchange="saved['s${i}']=this.checked;localStorage.setItem('fmgeSprint',JSON.stringify(saved))">done</label></div>`).join('')} function renderSubjects(){document.getElementById('subjectButtons').innerHTML=Object.keys(cards).map(s=>`<button class="subject-btn ${s===selected?'selected':''}" onclick="choose('${s}')">${s}</button>`).join('')} function choose(s){selected=s;ci=0;renderSubjects();renderCard()} function renderCard(){document.getElementById('flashcard').classList.remove('flip');const c=cards[selected][ci];document.getElementById('frontKicker').textContent=selected;document.getElementById('frontText').textContent=c[0];document.getElementById('backText').textContent=c[1];document.getElementById('cardIndex').textContent=(ci+1)+' / '+cards[selected].length} function flipCard(){document.getElementById('flashcard').classList.toggle('flip')}function nextCard(){ci=(ci+1)%cards[selected].length;renderCard()} renderChecks();renderDays();renderTimeline();renderSubjects();renderCard(); </script></body></html>''',encoding='utf-8') print(p) PY python -m http.server 8088 --directory "/tmp/workspace/fmge-study-plan/website" > /tmp/workspace/fmge-study-plan/website/server.log 2>&1 & echo $! > /tmp/workspace/fmge-study-plan/website/server.pid sleep 1 curl -s -I http://127.0.0.1:8088/ | head -n 1
index
HTML File · HTML