Lesson 1Wallet Planning: Active Tickets, Ticket Lifecycle, Expiration, Restore and Transfer CasesPlan a wallet that handles active, coming, and expired tickets. You will model ticket states, checks, expiration, and device changes, while supporting restore, transfer, and fraud prevention in a clear, expected interface.
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 controlsLesson 2Trip Planner UI/UX: Needed Inputs (Origin, Destination, Time, Preferences) and Output Parts (Route, Duration, Transfers, Walking Parts)Plan the trip planner UI from inputs to results. You will set needed fields, preference controls, and result cards, ensuring easy use, clear trade-offs, and quick comparison between other routes and ways.
Input forms for origin, destination, and timePreference controls for modes and walkingPlanning route result cards and summariesDetail views for legs, transfers, and faresEasy use and localization thoughtsLesson 3User Controls for Alerts: Subscriptions, Quiet Hours, Per-Line Filtering, Easy Use of AlertsPlan user controls that decide which alerts are received. You will add subscriptions, quiet hours, per-line filters, and easy use options so riders can adjust relevance while getting important safety messages.
Subscription models: lines, stations, routesQuiet hours, do-not-disturb, and overridesPer-line and per-topic filtering optionsCritical vs optional alert categoriesEasy use settings for alert deliveryLesson 4Real-Time Alerts Delivery: Push Notifications, WebSocket/Socket.IO, Server-Sent Events, and Backup PollingLook at real-time alert delivery ways and trade-offs. You will compare push, WebSockets, SSE, and polling, plan reconnection and backoff, and make sure alerts stay timely, without duplicates, and power-saving on mobile devices.
Choosing push vs WebSocket vs SSE vs pollingConnection management and reconnection logicOrdering, deduplication, and idempotent alertsBattery, data usage, and background limitsBackup strategies when real-time failsLesson 5Route Ranking and Filtering: Fastest, Fewest Transfers, Easy Use, Least WalkingPlan ranking logic that balances speed, transfers, walking, and easy use. You will set filters, scoring models, tie-breaking rules, and UI patterns so riders can find routes that match their likes and limits quickly.
Ranking by time, transfers, and walking distanceEasy use-aware route scoring and penaltiesUser-configurable filters and presetsHandling incomplete or low-quality GTFS dataExplaining rankings with clear UI labelsLesson 6Analytics Events for Core Features: Trip Searches, Ticket Purchases, Alert InteractionsSet analytics for trip searches, ticket buys, and alerts. You will plan event schemas, user properties, funnels, and privacy controls that help improve features while following rules and user hopes.
Core events for search, purchase, and alertsEvent naming, versioning, and schemasFunnels, cohorts, and retention analysisAttribution of alerts to user actionsPrivacy, consent, and data minimizationLesson 7Ticket Purchase Flow: Product Catalog, Fare Rules, Seats/Reservations vs Proof-of-Payment ModelsPlan the ticket purchase flow from product choice to confirmation. You will model fare rules, passes, reservations, and proof-of-payment, ensuring clarity, checks, and fit with agency backends.
Product catalog structure and fare familiesFare rules, zones, caps, and concessionsSeat reservations vs open proof-of-paymentValidating eligibility and rider typesPurchase confirmation and receipt designLesson 8User Flow from App Launch to Route Results: Permissions, Location Access, Quick Actions, Recent SearchesMap the full journey from app start to route results. You will plan permission asks, location handling, shortcuts, and recent searches so riders can reach useful trip options with little trouble and clear privacy hopes.
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 locationLesson 9In-App Alert Presentation: Inbox, Banners, Contextual Route Alerts, Personalization and PrioritizationSet how alerts show inside the app in different places. You will plan inboxes, banners, and contextual spots, with prioritization, grouping, and personalization that keep riders informed without too much overload.
Alert inbox layout and filtering optionsTransient banners, toasts, and modalsContextual alerts on route and ticket viewsPrioritization, grouping, and rate limitingPersonalization based on usage and linesLesson 10Error Handling and Retry Patterns During Purchase and Network FailuresLearn ways to handle purchase and network failures without losing user trust. You will plan retries, idempotent actions, offline queues, and clear error messages that protect payments and avoid double charges or broken tickets.
Classifying transient vs permanent failuresDesigning safe retry and backoff strategiesIdempotency keys for payment operationsOffline queues and local operation logsUser-facing error messages and recovery flowsLesson 11Payment Integration: Hosted Pages vs In-App SDKs, PCI Scope Reduction, TokenizationLook at payment integration options and safety limits. You will compare hosted pages and in-app SDKs, plan tokenization, and reduce PCI scope while keeping checkout smooth, trustworthy, and following rules.
Hosted checkout vs native SDK tradeoffsReducing PCI scope with tokenization3-D Secure, SCA, and regional rulesHandling declines, reversals, and refundsStoring and updating payment instrumentsLesson 12Local Storage for Tickets: Secure Storage Options (Encrypted Database, Keystore/Keychain) and TokenizationLearn secure local storage ways for tickets and tokens. You will compare encrypted databases, Keychain or Keystore, and platform APIs, planning key rotation, backup behavior, and protections against tampering or copying.
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