שיעור 1תכנון ארנק: כרטיסים פעילים, מחזור חיים של כרטיס, פג תוקף, תרחישי שחזור והעברהתכננו ארנק שמנהל כרטיסים פעילים, קרובים ופגי תוקף. תמודלו מצבי כרטיסים, אימות, פג תוקף ושינויי מכשירים, תוך תמיכה בשחזור, העברה ומניעת הונאה בממשק ברור וצפוי.
Ticket state machine and lifecycle eventsActive, upcoming, and expired ticket viewsValidation states and visual security cuesRestore flows after reinstall or device lossTransfer rules, limits, and fraud controlsשיעור 2ממשק משתמש/חוויית משתמש של מתכנן מסלולים: קלטים נדרשים (מוצא, יעד, זמן, העדפות) ומרכיבי פלט (מסלול, משך, החלפות, קטעי הליכה)תכננו ממשק משתמש ומשתמש של מתכנן מסלולים מנקודות קלט לתוצאות. תציינו שדות נדרשים, בקרות העדפות וכרטיסי תוצאות, תוך הבטחת נגישות, בהירות פשרות והשוואה מהירה בין מסלולים חלופיים ומצבים.
Input forms for origin, destination, and timePreference controls for modes and walkingDesigning route result cards and summariesDetail views for legs, transfers, and faresAccessibility and localization considerationsשיעור 3בקרות משתמש להתראות: מנויים, שעות שקטות, סינון לכל קו, נגישות התראותתכננו בקרות פונות משתמש ששולטות באילו התראות מתקבלות. תממשו מנויים, שעות שקטות, מסננים לכל קו ואפשרויות נגישות כדי שנוסעים יוכלו לכוונן רלוונטיות תוך קבלת הודעות בטיחות קריטיות.
Subscription models: lines, stations, routesQuiet hours, do-not-disturb, and overridesPer-line and per-topic filtering optionsCritical vs optional alert categoriesAccessibility settings for alert deliveryשיעור 4מסירת התראות בזמן אמת: התראות push, WebSocket/Socket.IO, אירועים ממשלח שרת, polling גיבויחקרו ערוצי מסירת התראות בזמן אמת ופשרות. תשוו בין push, WebSockets, SSE ו-polling, תכננו חיבור מחדש ונסיגה, ותבטיחו שהתראות נשארות בזמן, ללא כפילויות וחסכוניות באנרגיה במכשירים ניידים.
Choosing push vs WebSocket vs SSE vs pollingConnection management and reconnection logicOrdering, deduplication, and idempotent alertsBattery, data usage, and background limitsFallback strategies when real-time failsשיעור 5דירוג וסינון מסלולים: הכי מהיר, מעט החלפות, נגישות, מעט הליכהתכננו לוגיקת דירוג שמאזנת מהירות, החלפות, הליכה ונגישות. תגדירו מסננים, מודלי ציון, כללי שוויון ודפוסי ממשק משתמש כדי שנוסעים ימצאו במהירות מסלולים שמתאימים להעדפות ומגבלותיהם.
Ranking by time, transfers, and walking distanceAccessibility-aware route scoring and penaltiesUser-configurable filters and presetsHandling incomplete or low-quality GTFS dataExplaining rankings with clear UI labelsשיעור 6אירועי אנליטיקס לתכונות ליבה: חיפושי מסלולים, רכישת כרטיסים, אינטראקציות התראותהגדירו אנליטיקס לחיפושי מסלולים, רכישת כרטיסים ואינטראקציות התראות. תכננו סכמות אירועים, תכונות משתמש, משפכים ובקרי פרטיות שמשפרות תכונות תוך כיבוד תקנות והציפיות של משתמשים.
Core events for search, purchase, and alertsEvent naming, versioning, and schemasFunnels, cohorts, and retention analysisAttribution of alerts to user actionsPrivacy, consent, and data minimizationשיעור 7זרימת רכישת כרטיס: קטלוג מוצרים, כללי תעריף, מושבים/הזמנות מול מודלי הוכחת תשלוםתכננו זרימת רכישת כרטיסים מבחירת מוצר לאישור. תמודלו כללי תעריפים, כרטיסיות, הזמנות והוכחת תשלום, תוך הבטחת בהירות, אימות ותאימות למערכות גב של סוכנויות.
Product catalog structure and fare familiesFare rules, zones, caps, and concessionsSeat reservations vs open proof-of-paymentValidating eligibility and rider typesPurchase confirmation and receipt designשיעור 8זרימת משתמש מהפעלת אפליקציה לתוצאות מסלול: הרשאות, גישה למיקום, פעולות מהירות, חיפושים אחרוניםמיפוי מסע מקצה לקצה מהפעלת אפליקציה לתוצאות מסלול. תכננו בקשות הרשאות, טיפול מיקום, קיצורים וחיפושים אחרונים כדי שנוסעים יגיעו לאפשרויות מסלול רלוונטיות עם חיכוך מינימלי והציפיות פרטיות ברורות.
Cold start, splash, and onboarding decisionsRequesting and explaining location permissionsQuick actions, favorites, and home-work shortcutsRecent searches, recents ranking, and clearingHandling denied permissions and manual locationשיעור 9הצגת התראות באפליקציה: תיבה נכנסים, באנרים, התראות מסלול הקשריות, התאמה אישית וסיווגהגדירו כיצד התראות מופיעות בתוך האפליקציה על פני הקשרים. תכננו תיבות דואר, באנרים ומשטחים הקשריים, עם סיווג, קיבוץ והתאמה אישית ששומרות נוסעים מעודכנים מבלי להציף אותם.
Alert inbox layout and filtering optionsTransient banners, toasts, and modalsContextual alerts on route and ticket viewsPrioritization, grouping, and rate limitingPersonalization based on usage and linesשיעור 10טיפול בשגיאות ודפוסי ניסיון חוזר במהלך רכישה וכשלונות רשתלמדו דפוסים לטיפול בכשלונות רכישה ורשת מבלי לאבד אמון משתמשים. תכננו ניסיונות חוזרים, פעולות אידמפוטנטיות, תורים לא מקוונים והודעות שגיאה ברורות שמגנות על תשלומים וממניעות חיובים כפולים או כרטיסים שבורים.
Classifying transient vs permanent failuresDesigning safe retry and backoff strategiesIdempotency keys for payment operationsOffline queues and local operation logsUser-facing error messages and recovery flowsשיעור 11שילוב תשלומים: דפים מארחים מול SDKs באפליקציה, הפחתת היקף PCI, טוקניזציהחקרו אפשרויות שילוב תשלומים וגבולות ביטחון. תשוו בין דפים מארחים ל-SDKs באפליקציה, תכננו טוקניזציה ותפחיתו היקף PCI תוך שמירה על קופה חלקה, אמינה ותואמת.
Hosted checkout vs native SDK tradeoffsReducing PCI scope with tokenization3-D Secure, SCA, and regional rulesHandling declines, reversals, and refundsStoring and updating payment instrumentsשיעור 12אחסון מקומי לכרטיסים: אפשרויות אחסון מאובטחות (מסד נתונים מוצפן, keystore/Keychain) וטוקניזציהלמדו דפוסי אחסון מקומי מאובטחים לכרטיסים וטוקנים. תשוו בין מסדי נתונים מוצפנים, Keychain או Keystore ו-API פלטפורמה, תכננו סיבוב מפתחות, התנהגות גיבוי והגנות מפני שיבוש או שכפול.
Threat model for stored tickets and tokensUsing Keychain or Keystore for secretsEncrypted databases for ticket metadataKey rotation, revocation, and migrationBackup, restore, and multi-device behavior