🙏

מערכת תפילות

אפיון לג'וניוריות — גרסה 1.0
📅 יוני 2026 🌐 Web + iOS + Android 🐍 Python FastAPI 📱 Expo Router 💳 Stripe 🌍 6 שפות
1

מה המערכת הזו עושה?

מערכת תפילות היא פלטפורמה דיגיטלית שמאפשרת לכל אדם — בכל מקום בעולם — למצוא תפילה מתאימה למצבו, לשלוח את שמו לתפילה, ולתרום בקלות ובמינימום פעולות.

הרעיון בשורה אחת: אדם מחפש בגוגל "תפילה לפני מבחן" — מגיע לאתר שלנו, קורא את התפילה, לוחץ 2 פעמים — ותרומה נשלחת. הכל בפחות מ-60 שניות.

המערכת מורכבת משלושה חלקים

חלקמה הוא עושהמי משתמש
🌐 אתר Web מציג תפילות בכל שפה, ממוטב לגוגל (SEO), כולל כפתורי תרומה כל גולש שמגיע מגוגל
📱 אפליקציה iOS + Android — כפתורי תרומה מהירים, תרומה בלחיצה אחת עם כרטיס שמור משתמשים חוזרים
🐍 Backend API שרת Python שמנהל תפילות, משתמשים, תשלומים, ואימות פנימי — שרת בלבד
2

מה אנחנו רוצים להשיג?

🔍

כיסוי SEO מקסימלי

כל מי שמחפש בגוגל כל תפילה שהיא — בכל שפה — יגיע לאתר שלנו. זה ערוץ הגיוס העיקרי.

💳

מינימום חיכוך לתרומה

מרגע כניסה לאתר — מקסימום 2 קליקים עד תרומה. כל קליק נוסף = פחות תרומות.

תרומה מהירה לפי אירוע

לפני מבחן / טיסה / ניתוח — כפתור אחד שולח שם לתפילה ומחייב כרטיס שמור אוטומטית.

🌍

קהל יהודי עולמי

6 שפות, מטבע לפי מיקום, ממשק מותאם לכל תרבות — RTL לעברית וערבית, LTR לשאר.

הגדרת הצלחה: משתמש שמחפש "תפילה לרפואה" בגוגל מגיע לאתר, קורא את התפילה, ותורם ₪72 — הכל בפחות מ-3 דקות, מבלי להירשם.
3

קהל היעד

הגדרה חשובה: החרדים לא מחפשים תפילות בגוגל — יש להם סידור. הקהל שלנו הוא היהודי המסורתי-חילוני שרוצה שמישהו יתפלל בשבילו ומוכן לשלם על זה.
סגמנטמיהומה הוא מחפששפה
🇮🇱 ישראלי מסורתי לא דתי אבל מאמין, מחפש תפילות לפי מצב "תפילה לרפואה", "תפילה להצלחה במבחן" עברית
🇫🇷 דיאספורה צרפת יהודי צרפתי, קשר לישראל, מחפש בצרפתית "prière pour la guérison" צרפתית / עברית
🇺🇸 דיאספורה ארה"ב Reform / Conservative, אנגלית "prayer for healing", "prayer for success" אנגלית
🇦🇷 דיאספורה ארגנטינה קהילה ספרדית גדולה "oración para la curación" ספרדית
🇷🇺 עולים מרוסיה דור שני-שלישי בישראל/ארה"ב "молитва за здоровье" רוסית / עברית
4

סיפורי משתמש (User Stories)

אלה הסיפורים שצריך שהמערכת תממש. כל feature שתבנו צריך לשרת לפחות אחד מהם.

👩 שרה, ישראלית, 42
חיפשה בגוגל "תפילה לרפואה שלמה" לפני ניתוח של אמא שלה. מצאה את האתר, קראה את התפילה, שלחה את שם האמא לתפילה ותרמה ₪72 — בלי הרשמה, בלי סיסמה.
→ מממש: דף SEO לכל תפילה + זרימת תרומה אנונימית
👨 דוד, סטודנט, 22
הוריד את האפליקציה אחרי ביקור ראשון באתר. שמר כרטיס. עכשיו לפני כל מבחן לוחץ על "יש לי מבחן" — תרומה של ₪72 יוצאת אוטומטית תוך 5 שניות.
→ מממש: Quick Buttons + כרטיס שמור + Stripe charge
👩‍💼 ז'קלין, פריז, 55
מחפשת "prière pour mon fils" בגוגל. מגיעה לאתר בצרפתית, קוראת את התפילה בצרפתית, תורמת €18. הכל בצרפתית.
→ מממש: i18n + זיהוי שפה אוטומטי + מטבע לפי מיקום
👦 מייקל, ניו-יורק, 35
מגיע לאתר בנייד דרך גוגל, מתרגש, לוחץ "Download App". מגיע לApp Store, מוריד, נרשם עם Google, שומר כרטיס. מעכשיו מקישור ישיר לאפליקציה.
→ מממש: App Download Banner + Firebase Google Auth
5

עקרונות מוצר — חוקים שאסור לשבור

#עיקרוןהמשמעות המעשית
1 2 קליקים לתרומה מרגע כניסה לדף תפילה — מקסימום 2 קליקים עד תרומה מאושרת. כל עיצוב שמוסיף קליק — נדחה.
2 🔍 SEO First כל עמוד תפילה = דף HTML מלא עם כותרת, תיאור, ומילות מפתח. גוגל צריך לאנדקס כל תפילה.
3 🔒 אף פעם לא שומרים כרטיס רק טוקן מוצפן מ-Stripe + 4 ספרות אחרונות. מספר כרטיס מלא לא נוגע לשרת שלנו.
4 🌍 כל שפה = חוויה מלאה ממשק, תפילות, ודיווחי שגיאות — הכל בשפת המשתמש. לא מקובל "חלקית בעברית".
5 📶 עובד offline תפילות שנצפו בעבר זמינות גם ללא אינטרנט (cache מקומי באפליקציה).
6 👻 אנונימי לגיטימי תרומה ללא הרשמה = לגיטימי לחלוטין. לא לכפות רישום.
6

טכנולוגיות — למה בחרנו מה שבחרנו

Frontend + Web + Mobile — Expo Router

עיקרון מרכזי: קוד אחד → iOS + Android + Web. שתיכן כותבות TypeScript אחד ומקבלות את שלושתם.
Expo Router v3ניהול דפים — כמו next.js
TypeScriptשפת הפרויקט
NativeWindעיצוב — Tailwind למובייל
i18nextריבוי שפות
Zustandניהול state
Firebase SDKAuth בצד הלקוח
Stripe SDKתשלומים בצד הלקוח

Backend — Python + FastAPI

FastAPIשרת REST API
SQLAlchemyORM למסד נתונים
Pydantic v2Validation של נתונים
Alembicשינויים בDB
PostgreSQLמסד נתונים
Firebase Adminבדיקת tokens
Stripe SDKתשלומים בצד השרת

שירותי צד שלישי

שירותלמהתוכנית
Firebase AuthGoogle / Apple / SMS / Anonymous loginSpark (חינם)
Stripeתשלומים — ישראל + בינ"ל, כרטיסים שמוריםPay-as-you-go (~2.9%)
Sanity.ioCMS — ניהול תפילות ותוכןFree tier
VercelDeploy לWebFree tier
EAS Build (Expo)Build לApp Store + Google PlayFree tier
ipapi.coזיהוי מדינה לפי IP (למטבע)Free (1,000/day)
7

מסד הנתונים — מה שומרים ולמה

חשוב לדעת: כל הטבלאות נמצאות בPostgreSQL. הגישה אליהן דרך SQLAlchemy בלבד — לא כותבים SQL ידני.

טבלת תפילות — Prayer

שדהסוגלמה
idUUIDמזהה ייחודי
slugTEXT יחודיה-URL: /prayer/health
title_he, title_en, title_fr...TEXTכותרת בכל שפה
body_he, body_en, body_fr...TEXTטקסט תפילה מלא בכל שפה
seo_keywords_he, seo_keywords_enTEXT[]מילות מפתח לגוגל
seo_description_he, seo_description_enTEXTתיאור לגוגל (150 תווים)
category_idFK → Categoryשייכות לקטגוריה
view_countINTEGERכמה פעמים נצפה
is_activeBOOLEANלהסתיר תפילה בלי למחוק

טבלת משתמשים — User

שדהסוגלמה
idUUIDמזהה פנימי
firebase_uidTEXT יחודימזהה מFirebase Auth
emailTEXT מוצפןלקבלות ותקשורת
display_nameTEXTשם לתצוגה
preferred_langENUMhe / en / fr / ru / es / ar
preferred_currencyENUMILS / USD / EUR / GBP / ARS
stripe_customer_idTEXTמזהה הלקוח בStripe (לכרטיס שמור)
saved_card_last4TEXT4 ספרות — להצגה בלבד, לא לשימוש!
saved_card_brandTEXTVISA / Mastercard
has_saved_cardBOOLEANהאם יש כרטיס שמור
is_anonymousBOOLEANFirebase Anonymous user

טבלת תרומות — Donation

שדהסוגלמה
idUUID
user_idFK → User (nullable)NULL = תרומה אנונימית
prayer_idFK → Prayerאיזו תפילה
quick_button_idFK → QuickButton (nullable)NULL = תרומה ידנית
amountINTEGERבאגורות/סנטים — 7200 = ₪72
currencyTEXTILS / USD / EUR...
stripe_payment_intent_idTEXTלבדיקת סטטוס מול Stripe
statusENUMpending / success / failed / refunded
donor_nameTEXTשם לתפילה
receipt_emailTEXTלשליחת קבלה
created_atTIMESTAMP

טבלת כפתורי מהיר — QuickButton

שדהערך לדוגמהלמה
slugexamמזהה ייחודי
label_heיש לי מבחןתווית בעברית
label_enI have an examתווית באנגלית
prayer_idFK → Prayerאיזו תפילה תישלח
default_amount_ils7200סכום ברירת מחדל בשקלים
default_amount_usd1800סכום ברירת מחדל בדולרים
icon🎓אייקון לתצוגה
8

SEO — איך גוגל ימצא אותנו

SEO הוא הלב של הפרויקט. אין SEO = אין גולשים = אין תרומות. כל עמוד תפילה חייב להיות עמוד HTML מלא שגוגל יכול לקרוא — לא JavaScript שנטען אחר כך.

מבנה כתובות (URLs)

URLתפילהשפה
/prayer/healthתפילה לרפואה שלמהעברית (ברירת מחדל)
/prayer/examתפילה להצלחה במבחןעברית
/prayer/travelתפילה לנסיעה בטוחהעברית
/prayer/successתפילה להצלחהעברית
/prayer/babyתפילה להריון ולידהעברית
/en/prayer/healthPrayer for healingאנגלית
/fr/prayer/healthPrière pour la guérisonצרפתית
/ru/prayer/healthМолитва за здоровьеרוסית

מה חייב להיות בכל עמוד תפילה

אלמנטדוגמהלמה
<title>תפילה לרפואה שלמה | [שם האתר]מופיע בתוצאות גוגל
meta descriptionתפילה עוצמתית לרפואה... (150 תווים)הטקסט מתחת לכותרת בגוגל
hreflanglink rel="alternate" hreflang="en"גוגל יודע שיש גרסת אנגלית
JSON-LDschema.org/ArticleRich Snippets בגוגל
canonical URLhttps://domain.com/prayer/healthמונע duplicate content

מילות מפתח ראשוניות

שפהמילות מפתח
עבריתתפילה לרפואה, תפילה לרפואה שלמה, תפילה להצלחה, תפילה לפני מבחן, תפילה לנסיעה
Englishprayer for healing, prayer for success, prayer before exam, prayer for safe travel
Françaisprière pour la guérison, prière pour la réussite, prière avant un examen
Españoloración para la curación, oración para el éxito
9

אימות משתמשים — Firebase Auth

ספקי כניסה

ספקפלטפורמהחשיבות
🍎 Apple Sign-IniOSחובה — App Store דורש זאת
🔵 Google Sign-InAndroid + Webמומלץ ראשון
📱 Phone / SMS OTPכולםטוב לישראל
✉️ Email + Passwordכולםfallback
👻 Anonymousכולםלתרומה ללא הרשמה

Anonymous Auth — תרומה בלי הרשמה

כשמשתמש נכנס לאתר בפעם הראשונה — Firebase יוצר לו מזהה אנונימי אוטומטית ברקע. הוא יכול לתרום בלי להירשם. אם אחר כך רוצה לשמור כרטיס — מציעים לו להתחבר עם Google ואז מחברים את שני החשבונות.

זרימת Auth

פתיחת אפליקציה / כניסה לאתר
Firebase Anonymous Auto-Login (שקט, ברקע)
משתמש בוחר סכום תרומה
יש כרטיס שמור?
✅ כן → אשר בקליק ❌ לא → הזן כרטיס + הצע שמירה
✨ תפילה נשלחה!
10

מנגנון התרומות

כפתורי סכומים

בכל עמוד תפילה יש שורת כפתורים עם סכומים מוגדרים + כפתור "סכום אחר":

┌─────────────────────────────────────────┐ │ בחר סכום לתרומה: │ │ │ │ [ ₪18 ] [ ₪36 ] [ ₪72 ] [ ₪180 ] [ + ] │ │ חי ל"ו ע"ב ק"ף אחר │ └─────────────────────────────────────────┘
הסכומים משתנים לפי מטבע — ₪18 / $5 / €5 / £4 — כולם שווי ערך ל"חי".

זרימת תרומה — משתמש חדש (ללא כרטיס שמור)

לחיצה על ₪72
Bottom Sheet: שדה "שמך לתפילה" + Stripe Payment Sheet
☑ "שמור כרטיס לפעם הבאה?" — checkbox
לחיצה: ✅ שלח ותרום ₪72
Stripe מחייב → Backend מאשר → DB שומר
✨ "תפילתך נשלחה! אנו מתפללים בשבילך"

זרימת תרומה — משתמש חוזר (כרטיס שמור)

לחיצה על ₪72
Bottom Sheet: "שמך לתפילה" + "VISA ****1234"
✅ אשר
✨ "תפילתך נשלחה!"
2 קליקים בלבד למשתמש עם כרטיס שמור.
🔒 PCI DSS — חשוב מאוד: אנחנו לא שומרים שום פרט כרטיס אשראי. Stripe מחזיר לנו customer_id ו-last4 בלבד. הכרטיס עצמו אצלם.

למה Stripe ולא ספק ישראלי?

StripeMeshulam / Cardcom
תמיכה בינ"ל✅ 40+ מדינות❌ ישראל בלבד
ILS (שקל)✅ מ-2023
SDK לExpo✅ רשמי❌ אין
עמלה~2.9%~1.8%

הפרש של 1.1% עמלה לא מצדיק שתי אינטגרציות שונות + עבודת פיתוח כפולה.

11

כפתורי אירוע מהיר (Quick Buttons)

פיצ'ר ייחודי: כפתורים לפי מצב חיים. לחיצה אחת שולחת תפילה + מחייבת כרטיס — אוטומטית.

┌──────────────────────────────────────────┐ │ מה קורה עכשיו? │ │ │ │ [ 🎓 יש לי מבחן ] [ ✈️ אני טס ] │ │ [ 🏥 לפני ניתוח ] [ 👶 לפני לידה ] │ │ [ 💼 ראיון עבודה ] │ └──────────────────────────────────────────┘

מה קורה בלחיצה על "יש לי מבחן"

לחיצה: 🎓 יש לי מבחן
Bottom Sheet: שמך / שם הנבחן + אישור ₪72 עם VISA ****1234
✅ שלח לתפילה + תרום
שם → מאגר תפילות | Stripe → מחייב ₪72 לכרטיס שמור
🎓 "בהצלחה! תפילתך נשלחה"

כפתורים מוגדרים מראש

Slugתווית (עברית)תפילהסכום ברירת מחדל
exam🎓 יש לי מבחן/prayer/exam₪72 / $18
flight✈️ אני יוצא לטיסה/prayer/travel₪72 / $18
surgery🏥 לפני ניתוח/prayer/health₪180 / $50
birth👶 לפני לידה/prayer/baby₪72 / $18
job_interview💼 ראיון עבודה/prayer/success₪72 / $18
12

ריבוי שפות (i18n)

שפות נתמכות — גרסה 1

קודשפהכיווןקהל
heעבריתRTL ←ישראל
enEnglishLTR →ברירת מחדל בינ"ל
frFrançaisLTR →צרפת, קנדה, מרוקו
ruРусскийLTR →רוסיה, עולים
esEspañolLTR →ארגנטינה, ארה"ב לטינו
arعربيRTL ←מזרח תיכון
להוספת שפה חדשה בעתיד: מוסיפים קובץ JSON אחד בתיקיית i18n/ — אין שינוי בקוד.

זיהוי שפה אוטומטי — סדר עדיפויות

עדיפותמקורדוגמה
1בחירה שמורה של המשתמשבחר FR בעבר → תמיד FR
2שפת המכשיר / דפדפןiPhone בצרפתית → FR
3TimezoneAsia/Jerusalem → HE
4ברירת מחדלEN תמיד

מה מתורגם

סוג תוכןאיפהכיצד
UI — כפתורים, שגיאות, הודעותקבצי JSON: i18n/he.jsonתרגום ידני מלא
תפילות — עבריתDB — עמודת body_heנוסח ידני ומאומת
תפילות — אנגליתDB — עמודת body_enתרגום + מקורות (Chabad.org)
תפילות — שאר שפותDBתרגום AI + flag "בבדיקה"
13

זיהוי מטבע לפי מיקום

כשמשתמש נכנס לאתר — קוראים ל-ipapi.co כדי לדעת באיזו מדינה הוא נמצא, ומציגים את הסכומים במטבע שלו.

מדינה / אזורמטבעסמלסכומי ברירת מחדל
🇮🇱 ישראלILS₪18 / ₪36 / ₪72 / ₪180 / ₪360
🇺🇸 ארה"ב + שאר העולםUSD$$5 / $10 / $18 / $50 / $100
🇪🇺 אירופהEUR€5 / €10 / €18 / €50 / €100
🇬🇧 בריטניהGBP££4 / £9 / £15 / £40 / £80
🇦🇷 ארגנטינהARS$$500 / $1,000 / $2,000...
שימו לב: כל הסכומים נשמרים בDB ובStripe באגורות / סנטים — לא שקלים שלמים. ₪72 = 7200, $18 = 1800. זה standard של Stripe.
מסמך זה מיועד לג'וניוריות הפרויקט · יוני 2026 · גרסה 1.0