מודל רב-דיירי
ארגון אחד יכול להפעיל מספר קניונים, וכל קניון מבודד לוגית מבחינת נתונים, הרשאות ותצורה — על אותה תשתית טכנית.
מסמך טכני ללקוח — סקירה ברמה גבוהה
מסמך זה מיועד לצוותי IT והנהלה בארגון הרוכש שימוש במערכת. הוא מסביר את הארכיטקטורה, מחסנית הטכנולוגיה, עקרונות האבטחה והיקפי העבודה האפשריים — ברמת עקרונות ופרוטוקולים, ללא פירוט על הקוד עצמו.
01 · תקציר
מערכת לניהול קמפייני מתנות רב-דיירים לקניונים: קליטת השתתפות, בדיקת זכאות אוטומטית ובקרה אנושית לפני כל אישור.
ארגון אחד יכול להפעיל מספר קניונים, וכל קניון מבודד לוגית מבחינת נתונים, הרשאות ותצורה — על אותה תשתית טכנית.
המערכת בודקת תאריך, סכום, חנות וכפילויות באופן אוטומטי, אך כל השתתפות עוברת אישור ידני לפני הענקת מתנה בפועל.
אין צורך בשרתים, גיבויים או תחזוקה בצד הארגון — האירוח, הגיבוי והעדכונים מנוהלים כחלק מהשירות.
02 · ארכיטקטורה
כל שכבה אחראית על תפקיד מוגדר בלבד, כך שתקלה או שינוי בשכבה אחת אינם פוגעים בשכבות האחרות.
דפדפן בעמדת השירות, בדפדפן הלקוח או בטלפון הנייד. אין צורך בהתקנת אפליקציה.
שרת ה-Next.js מריץ את כל הלוגיקה העסקית: הרשאות, ולידציה, כללי זכאות ותקשורת עם השירותים החיצוניים.
מסד PostgreSQL עם כללי גישה ברמת השורה, כך שגם תקלה בקוד האפליקציה לא תחשוף נתונים של דייר אחר.
ספק ה-AI לחילוץ חשבוניות ושירות ה-SMS מופעלים אך ורק מצד השרת, עם מפתחות גישה שאינם נחשפים לדפדפן.
03 · מחסנית טכנולוגית
כל הרכיבים הם טכנולוגיות בשלות, נתמכות ובשימוש נרחב בתעשייה — לא פיתוח קנייני סגור בכל שכבה.
04 · פרוטוקולים ותקשורת
כל תעבורה בין הדפדפן, השרת ומסד הנתונים מוצפנת מקצה לקצה.
הדפדפן פונה לשרת בקריאות API סטנדרטיות; השרת פונה למסד הנתונים דרך פונקציות מבוקרות (RPC) שבודקות הרשאה בכל קריאה.
שליחת הודעות אימות והתראות מתבצעת דרך ספק SMS חיצוני בפרוטוקול HTTPS, ללא חשיפת תוכן רגיש בלוגים.
תמונות חשבוניות נצפות רק דרך קישור חתום בעל תוקף מוגבל בזמן, ולא באמצעות כתובת קבועה וציבורית.
מזהי ההתחברות אינם נגישים לקוד JavaScript בצד לקוח, ומצומצמים לפי scope וזמן תפוגה.
כל קלט (טפסים, קבצים, מספרי טלפון) נבדק ומנורמל בצד השרת לפני שהוא נשמר — לא ניתן לעקוף בדיקה על ידי שינוי בדפדפן.
05 · אבטחה ופרטיות
המערכת מטפלת בפרטי קשר ובתמונות מסמכים. ההגנה נבנתה בכמה שכבות, כך שתקלה בשכבה אחת אינה חושפת נתונים.
06 · מבנה ריבוי-דיירים
המערכת פועלת במודל היררכי: מנהל־על ← ארגון ← קניון ← חנויות ועמדות. הבידוד בין דיירים אינו רק הסכמי אלא נאכף ברמת מסד הנתונים.
גוף עסקי שיכול להפעיל קניון אחד או יותר תחת אותו חשבון.
יחידת הבידוד המרכזית — קמפיין, צוות, חנויות ונתוני הרשמה שייכים לקניון ספציפי בלבד.
כל קניון מנהל את עמדות השירות והחנויות המשתתפות שלו באופן עצמאי.
כל משתמש מקבל תפקיד בקניון ספציפי (עמדה, מנהל, סוקר וכו׳); מנהל־העל בלבד רואה תמונה כוללת בין קניונים.
כל פעולה במערכת נושאת מזהה קניון, כך שנתונים לא יכולים "לדלוף" בין ארגונים שונים על אותה תשתית משותפת.
לכל קניון תצורת קמפיין, כללי זכאות וספי סכום משלו — ללא השפעה על קניונים אחרים.
07 · היקפי עבודה
שכבת האפליקציה מבוססת תשתית ענן אלסטית (serverless) שמתרחבת אוטומטית לפי עומס, ללא צורך בהזמנת שרתים מראש. מסד הנתונים הוא מופע מנוהל יחיד, שמתאים בנוחות להיקפים הבאים כיום:
| פרמטר | מצב נוכחי |
|---|---|
| מספר ארגונים/קניונים | אין תלות בתשתית נפרדת — הוספת קניון היא רשומת נתונים, לא פריסה חדשה |
| עמדות שירות במקביל | כל עמדה היא בקשת שרת עצמאית; שכבת האפליקציה מתרחבת אוטומטית לפי עומס |
| הרשמות ביום | מתאים כיום לנפח של אלפי הרשמות ביום ללא שינוי תשתית |
| חילוץ חשבוניות (OCR) | תלוי במכסת השימוש מול ספק ה-AI החיצוני — ניתן להגדיל בהתאם לתוכנית מסחרית |
| אחסון תמונות | מתרחב אוטומטית; מדיניות המחיקה השוטפת (עם קבלת החלטה) שומרת על נפח מתון גם בהיקף גדול |
08 · אמינות והמשכיות
האפליקציה ומסד הנתונים רצים על תשתיות ענן מסחריות עם רמת זמינות גבוהה, ללא תלות בחומרה פיזית של הארגון.
כל עדכון עובר בדיקות אוטומטיות ובנייה מלאה לפני שהוא מגיע לסביבת הייצור.
קביעת זכאות ומניעת כפילויות מתבצעות כטרנזקציה אחת במסד הנתונים, כך שאי אפשר לשריין אותה מתנה פעמיים בטעות.
תקלה בשירות חיצוני (למשל ספק ה-AI) מוצגת כהודעה ברורה ואינה משביתה את שאר המערכת.
09 · כיווני המשך