Skip to content

kessleron/hebrew-reader

Repository files navigation

קורא עברי למסמכים וקישורים (Monorepo)

MVP לדסקטופ Windows (Electron + React) עם UI מלא בעברית/RTL, OCR ו־TTS דרך Azure, ספרייה מקומית, חידוש מיקום, סימניות, חיפוש, בחירת קול, וייצוא אודיו.

תכנון קצר

  • packages/core: מודל מסמכים, ממשקי ספקים, chunking, SQLite storage.
  • packages/extractors: חילוץ PDF/DOCX/TXT + חילוץ URL דרך Readability.
  • packages/providers-azure: Azure Vision OCR + Azure Speech TTS + קטלוג קולות.
  • apps/desktop: אפליקציית MVP מלאה ל־Windows עם auto-update.
  • apps/web / apps/cli / apps/mobile: stubs מוכנים להמשך.

דרישות מערכת

  • Windows 10/11
  • Node.js 20+
  • Corepack (מובנה ב־Node 20+)

הגדרת Azure (חובה ל־OCR/TTS)

  1. צור Azure Speech resource וקח KEY + REGION.
  2. צור Azure Vision resource וקח KEY + ENDPOINT.
  3. העתק C:\Users\USER\Workspace\hebrew-reader\.env.example ל־.env.
  4. מלא משתנים:
    • AZURE_SPEECH_KEY
    • AZURE_SPEECH_REGION
    • AZURE_VISION_KEY
    • AZURE_VISION_ENDPOINT
  5. אפשר גם להגדיר מתוך מסך הגדרות באפליקציה.

הרצה מקומית (Desktop)

Set-Location "C:\Users\USER\Workspace\hebrew-reader"
corepack enable
corepack prepare pnpm@10.4.1 --activate
pnpm install
pnpm --filter @apps/desktop dev

בניית מתקין Windows (NSIS + קיצורי דרך)

Set-Location "C:\Users\USER\Workspace\hebrew-reader"
pnpm --filter @apps/desktop build

פלט צפוי:

  • מתקין EXE: C:\Users\USER\Workspace\hebrew-reader\apps\desktop\release\*.exe
  • artifacts נוספים: C:\Users\USER\Workspace\hebrew-reader\apps\desktop\release\

המתקין יוצר:

  • קיצור דרך לשולחן העבודה
  • קיצור דרך בתפריט Start

Auto-Update דרך GitHub Releases

  1. הגדר משתני סביבה בזמן build:
    • GITHUB_OWNER
    • GITHUB_REPO
    • (לפרסום) GH_TOKEN
  2. העלה artifacts ל־GitHub Release.
  3. האפליקציה בודקת עדכון:
    • בהפעלה
    • כל 6 שעות
  4. זרימת משתמש:
    • הודעה על גרסה חדשה
    • אישור הורדה
    • הודעת "Restart to update"

ייבוא URL ואיך החילוץ עובד

  • האפליקציה מושכת HTML עם timeout + הגבלת גודל + redirect limit + User-Agent.
  • חילוץ תוכן ראשי: @mozilla/readability + jsdom.
  • fallback: ניקוי scripts/styles וחילוץ טקסט גולמי מה־DOM.
  • נשמרים: sourceUrl, siteName, fetchedAt.
  • כל URL נשמר כספר בספרייה עם חיפוש/סימניות/Resume.

PDF / OCR

  • תחילה: חילוץ טקסט רגיל דרך pdfjs-dist.
  • אם צפיפות הטקסט נמוכה: OCR דרך Azure Vision Read.
  • ב־PDF סרוק מוצגת התקדמות OCR לפי עמוד.

בדיקות

בדיקות יחידה קיימות:

  • packages/core/test/chunking.test.ts (גבולות chunking + RTL)
  • packages/core/test/storage.test.ts (שמירת מיקום/סימניות SQLite)
  • packages/core/test/provider-contract.test.ts (חוזי Provider עם mocks)
  • packages/extractors/test/url-extractor.test.ts (Readability עם fixture דטרמיניסטי)

הרצת בדיקות:

Set-Location "C:\Users\USER\Workspace\hebrew-reader"
pnpm test

CLI (ראשוני)

Set-Location "C:\Users\USER\Workspace\hebrew-reader"
pnpm --filter @apps/cli dev -- --input "https://example.com" --output "C:\Users\USER\Desktop\sample.wav"

מצב stubs

  • Web: apps/web (Next.js stub)
  • Mobile: apps/mobile (Expo stub)

הערת בדיקות אופליין

בבדיקות יחידה אין תלות רשת: URL/OCR/TTS נבדקים דרך fixtures/mocks או לוגיקה מקומית.

About

Hebrew-first document and URL reader (Electron + Azure OCR/TTS)

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages