אפליקציית מובייל לתורים אלקטרוניים: סוף לכאוס ההמתנה
כאשר מבקר מתרחק מהתור ומפספס את הקריאה אליו, כל המערכת נעצרת. המפעילים מבזבזים זמן בהקצאה מחדש של כרטיסים, והתפוקה יורדת. אפליקציית מובייל עם סנכרון בזמן אמת פותרת זאת: הכרטיסים מתעדכנים באופן מיידי באמצעות WebSocket, והודעות push מותאמות אישית מתריעות למשתמשים כשהם במרחק 3, 2 או 1 מקום בתור. באחד הפרויקטים שלנו עבור MFC אזורי עם 15 דלפקים ו-2,000 מבקרים יומיים, זמן ההמתנה ירד ב-40% (מ-8 דקות ל-4.8 דקות למבקר), והזמן שהמפעילים הקדישו להקצאה מחדש ירד ב-20%.
אתגרים טכניים שאנו פותרים
WebSocket לעומת SSE לעומת Polling
האתגר המרכזי הוא לשמור על מצב התור מסונכרן מבלי להעמיס על השרת. אנו משתמשים ב-WebSocket לתקשורת דו-כיוונית עם חביון נמוך. עם חיבור קבוע, השרת דוחף אירועים ברגע שמספר נקרא. ב-Flutter, אנו משתמשים ב-web_socket_channel ומנהלים את המצב באמצעות Riverpod StreamProvider או BLoC. WebSocket מספק עדכונים תוך פחות מ-100 אלפיות שנייה — פי שלושה מהר יותר מ-SSE ומהיר בסדרי גודל מ-Polling.
| גישה | מהירות | מורכבות | חביון |
|---|---|---|---|
| WebSocket | גבוהה | בינונית | 50–100 אלפיות שנייה |
| SSE | בינונית | נמוכה | 200–300 אלפיות שנייה |
| Polling | נמוכה | נמוכה מאוד | 5–10 שניות |
אפליקציה ברקע והודעות Push
כאשר האפליקציה עוברת לרקע, חיבור ה-WebSocket נסגר. כדי למנוע קריאות שהוחמצו, אנו מיישמים מערכת התראות דו-שכבתית:
- "3 אנשים לפניך" — התראה מוקדמת.
- "המספר שלך הוא הבא!" — הגיע הזמן לגשת.
- "אתה נקרא לדלפק 5" — פעולה מיידית.
פרטי הגדרת הודעות push
עבור iOS אנו משתמשים ב-APNs, ועבור Android — ב-FCM. הגדרת אישורים נכונה ב-App Store Connect וב-Firebase Console היא קריטית. הודעות push חייבות לעמוד בסעיף 5.1 של הנחיות בדיקת ה-App Store. חתימת קוד ופרופילי provisioning מוסיפים שכבת אבטחה נוספת.
הזמנה מראש ותזכורות
תרחיש מתקדם: משתמשים מזמינים משבצת זמן ספציפית. השרת (באמצעות Bull Queue על Redis) מתזמן תזכורות push 30 דקות ו-10 דקות לפני המשבצת. זה מפחית אי-הגעה ב-35%, כפי שנראה בפריסות שלנו במרכזים רפואיים.
הגישה שלנו: בניית מערכת תורים אמינה
טכנולוגיות וארכיטקטורה
- צד שרת: Node.js + PostgreSQL + Redis + Bull Queue
- מובייל: Flutter (או React Native) עם קוד בסיס יחיד ל-iOS ו-Android
- Push: FCM + APNs עם מיקוד אישי
- CI/CD: Fastlane + Shorebird לעדכונים Over-the-Air
מקרה בוחן: פריסת MFC
MFC גדול עם 20 דלפקים ו-3,000 מבקרים יומיים נזקק להפחתת הכאוס. בנינו אפליקציית Flutter עם סנכרון WebSocket והודעות push. המדדים המרכזיים לאחר ההשקה:
- זמן המתנה ממוצע למבקר: מ-12 דקות ל-7 דקות (הפחתה של 41%)
- קריאות שהוחמצו: מ-18% ל-4% (הפחתה של 78%)
- עומס על המפעילים: קוצץ ב-22% הודות לניהול קריאות אוטומטי
המערכת טיפלה ב-5,000 חיבורי WebSocket במקביל ללא ירידה בביצועים.
איך אנחנו עובדים: מגילוי להשקה
- ניתוח: לימוד זרימת המבקרים, מספר הדלפקים, סוגי השירותים ותרחישי המשתמש.
- עיצוב: ארכיטקטורה לניהול תורים (תור Redis בזיכרון), סכמות API, אבות-טיפוס לממשק.
- יישום: צד שרת על Node.js + PostgreSQL, מובייל על Flutter, הגדרת הודעות push.
- בדיקות: בדיקות עומס עד 1,000 משתמשים במקביל; בדיקות שמישות.
- פריסה: צינור CI/CD, הגשה לחנות האפליקציות, ניטור (Crashlytics).
צרו קשר כדי לדון בפרויקט שלכם ולקבל הערכה ראשונית.
הערכות לוחות זמנים
| היקף | משך |
|---|---|
| MVP: כרטיס, מיקום, הודעות push | 4–6 שבועות |
| + הזמנה מראש, פאנל מפעיל | 8–10 שבועות |
| + אנליטיקה, תמיכה במספר סניפים, אינטגרציות | 14–16 שבועות |
טעויות נפוצות שיש להימנע מהן
- התעלמות ממצב רקע: ללא גיבוי push, משתמשים מפספסים קריאות. המערכת שלנו מבטיחה ש-WebSocket ו-push פועלים יחד.
- שימוש ב-Polling בעומס גבוה: Polling במרווחים של 5 שניות על 5,000 לקוחות יוצר 1,000 בקשות בשנייה. אנו משתמשים ב-WebSocket כדי להפחית את עומס השרת ב-90%.
- אי-בדיקה עם מקביליות ריאלית: אנו מדמים עומסי שיא כדי להבטיח יציבות.
מה כלול בפיתוח?
- אפליקציית מובייל (iOS + Android) ושירות צד שרת
- אינטגרציה עם מערכות קיימות (למשל, תוכנת ניהול MFC)
- הגדרת הודעות push (FCM + APNs)
- יצירה וסריקה של קודי QR לכרטיסים
- לוח מחוונים אנליטי למנהלים (מספר מבקרים, זמן ממוצע, עומסי שיא)
- תיעוד API וארכיטקטורה
- הכשרת צוות על פאנל הניהול
- 3 חודשי תמיכה לאחר ההשקה







