Mehdi commited on
Commit
7a3f6e0
·
1 Parent(s): e70cc5e

move: team section to Chapter 01, right after the intro

Browse files
Files changed (1) hide show
  1. blog/index.html +52 -52
blog/index.html CHANGED
@@ -403,9 +403,54 @@ footer { position: relative; z-index: 1; max-width: 1060px; margin: 0 auto; padd
403
 
404
  <p class="reveal">So we built <strong>PaperProf</strong>: drop in any course PDF and it becomes your personal professor. It reads the material, generates exam-style questions from it, grades your answers like a patient tutor, and paints you a parting image when you finish. Everything runs on free infrastructure with <strong>zero external API calls</strong>. No OpenAI key, no rate limits, no data leaving the machine.</p>
405
 
406
- <section class="chapter reveal" id="what-it-does">
407
  <span class="ghost" aria-hidden="true">01</span>
408
  <span class="kicker">Chapter 01</span>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
409
  <h2>What it does</h2>
410
  </section>
411
 
@@ -419,8 +464,8 @@ footer { position: relative; z-index: 1; max-width: 1060px; margin: 0 auto; padd
419
  <p class="reveal">The whole loop runs on <strong>MiniCPM4-8B</strong>, an open-weight 8B model loaded once and shared between question generation and answer evaluation. PyMuPDF extracts the text, a chunker splits it into thematic sections, and the model picks up from there.</p>
420
 
421
  <section class="chapter reveal" id="real-story">
422
- <span class="ghost" aria-hidden="true">02</span>
423
- <span class="kicker">Chapter 02</span>
424
  <h2>What the git log actually says</h2>
425
  </section>
426
 
@@ -517,8 +562,8 @@ footer { position: relative; z-index: 1; max-width: 1060px; margin: 0 auto; padd
517
  <p class="reveal">And with French source PDFs, the model kept drifting into French. Polite instructions lost to the gravitational pull of the context. What finally worked: <code>IMPORTANT: Always write in English</code>, stated twice, top and bottom of the prompt. With 8B models, subtlety is wasted. Repetition is a feature.</p>
518
 
519
  <section class="chapter reveal" id="takeaways">
520
- <span class="ghost" aria-hidden="true">03</span>
521
- <span class="kicker">Chapter 03</span>
522
  <h2>What we'd tell past us</h2>
523
  </section>
524
 
@@ -531,8 +576,8 @@ footer { position: relative; z-index: 1; max-width: 1060px; margin: 0 auto; padd
531
  </ol>
532
 
533
  <section class="chapter reveal" id="stack">
534
- <span class="ghost" aria-hidden="true">04</span>
535
- <span class="kicker">Chapter 04</span>
536
  <h2>The stack</h2>
537
  </section>
538
 
@@ -550,51 +595,6 @@ footer { position: relative; z-index: 1; max-width: 1060px; margin: 0 auto; padd
550
  </table>
551
  </div>
552
 
553
- <section class="chapter reveal" id="team">
554
- <span class="ghost" aria-hidden="true">05</span>
555
- <span class="kicker">Chapter 05</span>
556
- <h2>The team</h2>
557
- </section>
558
-
559
- <p class="reveal">PaperProf was built by two EPITA students who spent ten days arguing with Gradio so you don't have to.</p>
560
-
561
- <div class="team reveal">
562
- <article class="member">
563
- <div class="member-photo"><img src="assets/ryad.jpg" alt="Portrait of Ryad Gazenay" loading="lazy" width="640" height="640"></div>
564
- <div class="member-info">
565
- <span class="role">Co-creator</span>
566
- <h4>Ryad Gazenay</h4>
567
- <div class="member-links">
568
- <a href="https://github.com/ryadg-kura" target="_blank" rel="noopener" aria-label="Ryad Gazenay on GitHub">
569
- <svg viewBox="0 0 16 16" aria-hidden="true"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27s1.36.09 2 .27c1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg>
570
- GitHub
571
- </a>
572
- <a href="https://www.linkedin.com/in/ryad-gazenay/" target="_blank" rel="noopener" aria-label="Ryad Gazenay on LinkedIn">
573
- <svg viewBox="0 0 16 16" aria-hidden="true"><path d="M14.5 0h-13C.67 0 0 .67 0 1.5v13c0 .83.67 1.5 1.5 1.5h13c.83 0 1.5-.67 1.5-1.5v-13c0-.83-.67-1.5-1.5-1.5zM4.74 13.64H2.38V6.04h2.36v7.6zM3.56 5c-.76 0-1.37-.62-1.37-1.38S2.8 2.25 3.56 2.25s1.37.62 1.37 1.37S4.32 5 3.56 5zm10.08 8.64h-2.36V9.94c0-.88-.02-2.02-1.23-2.02-1.23 0-1.42.96-1.42 1.95v3.77H6.27V6.04h2.27v1.04h.03c.32-.6 1.09-1.23 2.24-1.23 2.39 0 2.83 1.57 2.83 3.62v4.17z"/></svg>
574
- LinkedIn
575
- </a>
576
- </div>
577
- </div>
578
- </article>
579
- <article class="member">
580
- <div class="member-photo"><img src="assets/mehdi.jpg" alt="Portrait of Mehdi Azouz" loading="lazy" width="640" height="640"></div>
581
- <div class="member-info">
582
- <span class="role">Co-creator</span>
583
- <h4>Mehdi Azouz</h4>
584
- <div class="member-links">
585
- <a href="https://github.com/gitmehdii" target="_blank" rel="noopener" aria-label="Mehdi Azouz on GitHub">
586
- <svg viewBox="0 0 16 16" aria-hidden="true"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27s1.36.09 2 .27c1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg>
587
- GitHub
588
- </a>
589
- <a href="https://www.linkedin.com/in/mehdi-azouz-b3b537300/" target="_blank" rel="noopener" aria-label="Mehdi Azouz on LinkedIn">
590
- <svg viewBox="0 0 16 16" aria-hidden="true"><path d="M14.5 0h-13C.67 0 0 .67 0 1.5v13c0 .83.67 1.5 1.5 1.5h13c.83 0 1.5-.67 1.5-1.5v-13c0-.83-.67-1.5-1.5-1.5zM4.74 13.64H2.38V6.04h2.36v7.6zM3.56 5c-.76 0-1.37-.62-1.37-1.38S2.8 2.25 3.56 2.25s1.37.62 1.37 1.37S4.32 5 3.56 5zm10.08 8.64h-2.36V9.94c0-.88-.02-2.02-1.23-2.02-1.23 0-1.42.96-1.42 1.95v3.77H6.27V6.04h2.27v1.04h.03c.32-.6 1.09-1.23 2.24-1.23 2.39 0 2.83 1.57 2.83 3.62v4.17z"/></svg>
591
- LinkedIn
592
- </a>
593
- </div>
594
- </div>
595
- </article>
596
- </div>
597
-
598
  </main>
599
 
600
  <section class="cta">
 
403
 
404
  <p class="reveal">So we built <strong>PaperProf</strong>: drop in any course PDF and it becomes your personal professor. It reads the material, generates exam-style questions from it, grades your answers like a patient tutor, and paints you a parting image when you finish. Everything runs on free infrastructure with <strong>zero external API calls</strong>. No OpenAI key, no rate limits, no data leaving the machine.</p>
405
 
406
+ <section class="chapter reveal" id="team">
407
  <span class="ghost" aria-hidden="true">01</span>
408
  <span class="kicker">Chapter 01</span>
409
+ <h2>The team</h2>
410
+ </section>
411
+
412
+ <p class="reveal">PaperProf was built by two EPITA students who spent ten days arguing with Gradio so you don't have to.</p>
413
+
414
+ <div class="team reveal">
415
+ <article class="member">
416
+ <div class="member-photo"><img src="assets/ryad.jpg" alt="Portrait of Ryad Gazenay" width="640" height="640"></div>
417
+ <div class="member-info">
418
+ <span class="role">Co-creator</span>
419
+ <h4>Ryad Gazenay</h4>
420
+ <div class="member-links">
421
+ <a href="https://github.com/ryadg-kura" target="_blank" rel="noopener" aria-label="Ryad Gazenay on GitHub">
422
+ <svg viewBox="0 0 16 16" aria-hidden="true"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27s1.36.09 2 .27c1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg>
423
+ GitHub
424
+ </a>
425
+ <a href="https://www.linkedin.com/in/ryad-gazenay/" target="_blank" rel="noopener" aria-label="Ryad Gazenay on LinkedIn">
426
+ <svg viewBox="0 0 16 16" aria-hidden="true"><path d="M14.5 0h-13C.67 0 0 .67 0 1.5v13c0 .83.67 1.5 1.5 1.5h13c.83 0 1.5-.67 1.5-1.5v-13c0-.83-.67-1.5-1.5-1.5zM4.74 13.64H2.38V6.04h2.36v7.6zM3.56 5c-.76 0-1.37-.62-1.37-1.38S2.8 2.25 3.56 2.25s1.37.62 1.37 1.37S4.32 5 3.56 5zm10.08 8.64h-2.36V9.94c0-.88-.02-2.02-1.23-2.02-1.23 0-1.42.96-1.42 1.95v3.77H6.27V6.04h2.27v1.04h.03c.32-.6 1.09-1.23 2.24-1.23 2.39 0 2.83 1.57 2.83 3.62v4.17z"/></svg>
427
+ LinkedIn
428
+ </a>
429
+ </div>
430
+ </div>
431
+ </article>
432
+ <article class="member">
433
+ <div class="member-photo"><img src="assets/mehdi.jpg" alt="Portrait of Mehdi Azouz" width="640" height="640"></div>
434
+ <div class="member-info">
435
+ <span class="role">Co-creator</span>
436
+ <h4>Mehdi Azouz</h4>
437
+ <div class="member-links">
438
+ <a href="https://github.com/gitmehdii" target="_blank" rel="noopener" aria-label="Mehdi Azouz on GitHub">
439
+ <svg viewBox="0 0 16 16" aria-hidden="true"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27s1.36.09 2 .27c1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg>
440
+ GitHub
441
+ </a>
442
+ <a href="https://www.linkedin.com/in/mehdi-azouz-b3b537300/" target="_blank" rel="noopener" aria-label="Mehdi Azouz on LinkedIn">
443
+ <svg viewBox="0 0 16 16" aria-hidden="true"><path d="M14.5 0h-13C.67 0 0 .67 0 1.5v13c0 .83.67 1.5 1.5 1.5h13c.83 0 1.5-.67 1.5-1.5v-13c0-.83-.67-1.5-1.5-1.5zM4.74 13.64H2.38V6.04h2.36v7.6zM3.56 5c-.76 0-1.37-.62-1.37-1.38S2.8 2.25 3.56 2.25s1.37.62 1.37 1.37S4.32 5 3.56 5zm10.08 8.64h-2.36V9.94c0-.88-.02-2.02-1.23-2.02-1.23 0-1.42.96-1.42 1.95v3.77H6.27V6.04h2.27v1.04h.03c.32-.6 1.09-1.23 2.24-1.23 2.39 0 2.83 1.57 2.83 3.62v4.17z"/></svg>
444
+ LinkedIn
445
+ </a>
446
+ </div>
447
+ </div>
448
+ </article>
449
+ </div>
450
+
451
+ <section class="chapter reveal" id="what-it-does">
452
+ <span class="ghost" aria-hidden="true">02</span>
453
+ <span class="kicker">Chapter 02</span>
454
  <h2>What it does</h2>
455
  </section>
456
 
 
464
  <p class="reveal">The whole loop runs on <strong>MiniCPM4-8B</strong>, an open-weight 8B model loaded once and shared between question generation and answer evaluation. PyMuPDF extracts the text, a chunker splits it into thematic sections, and the model picks up from there.</p>
465
 
466
  <section class="chapter reveal" id="real-story">
467
+ <span class="ghost" aria-hidden="true">03</span>
468
+ <span class="kicker">Chapter 03</span>
469
  <h2>What the git log actually says</h2>
470
  </section>
471
 
 
562
  <p class="reveal">And with French source PDFs, the model kept drifting into French. Polite instructions lost to the gravitational pull of the context. What finally worked: <code>IMPORTANT: Always write in English</code>, stated twice, top and bottom of the prompt. With 8B models, subtlety is wasted. Repetition is a feature.</p>
563
 
564
  <section class="chapter reveal" id="takeaways">
565
+ <span class="ghost" aria-hidden="true">04</span>
566
+ <span class="kicker">Chapter 04</span>
567
  <h2>What we'd tell past us</h2>
568
  </section>
569
 
 
576
  </ol>
577
 
578
  <section class="chapter reveal" id="stack">
579
+ <span class="ghost" aria-hidden="true">05</span>
580
+ <span class="kicker">Chapter 05</span>
581
  <h2>The stack</h2>
582
  </section>
583
 
 
595
  </table>
596
  </div>
597
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
598
  </main>
599
 
600
  <section class="cta">