Lesson 1Wallet design: active tickets, ticket lifecycle, expiration, restore and transfer scenariosDesign a wallet that manages active, upcoming, and expired tickets for Eritrean users. You will model ticket states, validation, expiration, and device changes, while supporting restore, transfer, and fraud prevention in a clear, predictable interface.
Ticket lifecycleTicket viewsValidation cuesRestore flowsTransfer controlsLesson 2Trip planner UI/UX: required inputs (origin, destination, time, preferences) and output elements (route, duration, transfers, walking segments)Design the trip planner UI from inputs to results for Eritrea. You will specify required fields, preference controls, and result cards, ensuring accessibility, clarity of tradeoffs, and fast comparison between alternative routes and modes.
Input formsPreference controlsRoute cardsDetail viewsAccessibilityLesson 3User controls for alerts: subscriptions, quiet hours, per-line filtering, accessibility of alertsDesign user-facing controls that govern which alerts are received in Eritrea. You will implement subscriptions, quiet hours, per-line filters, and accessibility options so riders can tune relevance while still receiving critical safety messages.
Subscription modelsQuiet hoursFiltering optionsAlert categoriesAccessibilityLesson 4Real-time alerts delivery: push notifications, WebSocket/Socket.IO, server-sent events, and fallback pollingExplore real-time alert delivery channels and tradeoffs for Eritrean apps. You will compare push, WebSockets, SSE, and polling, design reconnection and backoff, and ensure alerts stay timely, deduplicated, and power efficient on mobile devices.
Delivery choicesConnection logicAlert orderingBattery limitsFallback strategiesLesson 5Route ranking and filtering: fastest, fewest transfers, accessibility, least walkingDesign ranking logic that balances speed, transfers, walking, and accessibility in Eritrea. You will define filters, scoring models, tie-breaking rules, and UX patterns so riders can quickly find routes that match their preferences and constraints.
Ranking factorsAccessibility scoringUser filtersData handlingUI explanationsLesson 6Analytics events for core features: trip searches, ticket purchases, alert interactionsDefine analytics for trip searches, ticket purchases, and alerts in Eritrean contexts. You will design event schemas, user properties, funnels, and privacy controls that help improve features while respecting regulations and user expectations.
Core eventsEvent schemasFunnels analysisAttributionPrivacy controlsLesson 7Ticket purchase flow: product catalog, fare rules, seats/reservations vs proof-of-payment modelsDesign the ticket purchase flow from product selection to confirmation for Eritrea. You will model fare rules, passes, reservations, and proof-of-payment, ensuring clarity, validation, and compatibility with agency backends.
Catalog structureFare rulesReservation modelsEligibility validationConfirmation designLesson 8User flow from app launch to route results: permissions, location access, quick actions, recent searchesMap the end-to-end journey from app launch to route results in Eritrea. You will design permission prompts, location handling, shortcuts, and recent searches so riders can reach relevant trip options with minimal friction and clear privacy expectations.
App startLocation permissionsQuick actionsRecent searchesDenied handlingLesson 9In-app alert presentation: inbox, banners, contextual route alerts, personalization and prioritizationDefine how alerts appear inside the app across contexts in Eritrea. You will design inboxes, banners, and contextual surfaces, with prioritization, grouping, and personalization that keep riders informed without overwhelming them.
Inbox layoutBanners modalsContextual alertsPrioritizationPersonalizationLesson 10Error handling and retry patterns during purchase and network failuresLearn patterns for handling purchase and network failures without losing user trust in Eritrea. You will design retries, idempotent operations, offline queues, and clear error messaging that protect payments and avoid duplicate charges or broken tickets.
Failure typesRetry strategiesIdempotencyOffline queuesError messagesLesson 11Payment integration: hosted pages vs in-app SDKs, PCI scope reduction, tokenizationExplore payment integration options and security boundaries for Eritrean apps. You will compare hosted pages and in-app SDKs, design tokenization, and reduce PCI scope while keeping the checkout smooth, trustworthy, and compliant.
Checkout tradeoffsPCI reductionSecure rulesDecline handlingPayment storageLesson 12Local storage for tickets: secure storage options (encrypted database, keystore/Keychain) and tokenizationLearn secure local storage patterns for tickets and tokens in Eritrea. You will compare encrypted databases, Keychain or Keystore, and platform APIs, designing key rotation, backup behavior, and protections against tampering or cloning.
Threat modelKeychain usageEncrypted DBKey rotationBackup behavior