Cake Affiliate

Completed

Oct 2022 - Jan 2024 (16 months)

Cake Affiliate is a dedicated iOS affiliate app stream separated from the legacy admin-focused dashboard, targeting affiliate-specific reporting, insights, and account workflows.

From Oct 2022 to Jan 2024, the project moved from affiliate-app extraction and new API integration into a release-hardened product with multi-account login, generate-link workflows, dashboard modules, and campaign-events capabilities.

Built with: Swift, UIKit, SwiftUI, Combine, CocoaPods, Fastlane, Firebase Crashlytics, Alamofire, SwiftyJSON, ReSwift, ReSwiftThunk, Swinject, SnapKit, Kingfisher, TPKeyboardAvoiding, DZNEmptyDataSet, XCTest, and XCUITest.

Project Activity

Recent updates for Cake Affiliate. Completed

January 2024

  • Delivered iCake (CAKE Dashboard) update: campaign event detail (in progress).

December 2023

  • Delivered iCake (CAKE Dashboard) update: IOS-516 -- campaign events list.
  • Consolidated iCake (CAKE Dashboard) updates including: Merge branch 'master' into IOS-516; v1.6.1-build3; fastlane upload issue fixed.
  • Delivered iCake (CAKE Dashboard) update: Merge branch 'master' into IOS-516.

November 2023

  • Consolidated iCake (CAKE Dashboard) updates including: generate link bug fixed (when got error in generate link then it reapeared again regardless of successful response next time); minor bugs fixed; error handling generate link.
  • Consolidated iCake (CAKE Dashboard) updates including: list selection improved; IOS-516 -- campaign events list (in progress); Merge branch 'master' into IOS-535.
  • Consolidated iCake (CAKE Dashboard) updates including: IOS-555 -- Comment out Insights Tab; IOS-551 -- [Bug] Generate Unique Link - Remove 'Generate' button; IOS-553 -- [Bug] Generate Unique Link - Remove '0 - All Creatives'; IOS-552 -- search issue in generate link wizard's affiliate list & offer list.
  • Delivered iCake (CAKE Dashboard) update: v1.6.1-build2.
  • Consolidated iCake (CAKE Dashboard) updates including: [fastlane] Updated appstore and platform ios; [fastlane] Updated adhoc and platform ios; [fastlane] Updated development and platform ios; [fastlane] Nuked files for distribution.
  • Consolidated iCake (CAKE Dashboard) updates including: updated certificates / profiles for admin app; [fastlane] Updated appstore and platform ios; [fastlane] Updated adhoc and platform ios; [fastlane] Updated development and platform ios.

October 2023

  • Consolidated iCake (CAKE Dashboard) updates including: quicksight dashboard fix; quicksight poc; pagination for offers & creatives & affiliates + search for offers & affiliates.
  • Delivered iCake (CAKE Dashboard) update: swift ui -- generalized list screen with pagination & search functionality.
  • Delivered iCake (CAKE Dashboard) update: code refactoring.
  • Delivered iCake (CAKE Dashboard) update: IOS-509 -- quicksight poc with new hydra api: /apis/v1/quicksights/link.
  • Delivered iCake (CAKE Dashboard) update: code refactoring.
  • Delivered iCake (CAKE Dashboard) update: removed Cuckoo library and disabled unit tests.
  • Delivered iCake (CAKE Dashboard) update: error handling.

September 2023

  • Consolidated iCake (CAKE Dashboard) updates including: bug fix; IOS-524 -- generate unique link wizard (complete); IOS-524 -- generate unique link wizard.
  • Delivered iCake (CAKE Dashboard) update: IOS-509 -- quicksight poc with mock url.

August 2023

  • Consolidated iCake (CAKE Dashboard) updates including: v1.6-build3; removed bitcode (as required by Xcode 14); IOS-53 -- Getting login cookie from MFA based login.
  • Consolidated iCake (CAKE Dashboard) updates including: IOS-53 -- generate unique link hydra api; IOS-53 -- We need to call POST /Extjs.ashx?s=sessiontimeout before every hydra request; IOS-53 -- save cookie into current user (Note: not saved as permanent storage in Keychain); IOS-53 -- get login cookie on login.
  • Delivered iCake (CAKE Dashboard) update: IOS-53 -- campaign - generate unique link (select creative, link type).
  • Delivered iCake (CAKE Dashboard) update: IOS-509 -- Quicksight Dashboard POC hardcoded url.
  • Delivered iCake (CAKE Dashboard) update: cookie login api.

July 2023

  • Delivered iCake (CAKE Dashboard) update: sample - saving & using cookies with alamofire request using headers.
  • Delivered iCake (CAKE Dashboard) update: sample - saving & using cookies with alamofire request.

June 2023

  • Consolidated iCake (CAKE Dashboard) updates including: refactoring; code refactoring.
  • Consolidated iCake (CAKE Dashboard) updates including: [Fixed] iPhone 7 (iOS 14.4.2) — Add Account screen: touch on text field not responding sometimes; On IAA-47: touch not working issue; index on IAA-47: f9d1db7 [Fixed] Bug: Duplicate data shown sometimes when we switch account.
  • Consolidated iCake (CAKE Dashboard) updates including: [Fixed] Bug: Duplicate data shown sometimes when we switch account; fix; Add new account - reload Dashboard data on successful login; [Fixed] Bug: In iOS 14 - Add new account doesn't dismiss login screen on successful login.
  • Consolidated iCake (CAKE Dashboard) updates including: affiliate-v1.0-build8; removed bitcode (as required by Xcode 14) -- fixed cocoa-pods errors; fix library issue; multiple logins screen - add new account.
  • Consolidated iCake (CAKE Dashboard) updates including: fix; updated library version; updated library version & fastlane; [Bug] Reload dashboard data when account is switched.
  • Consolidated iCake (CAKE Dashboard) updates including: server image on multiple login screen; server image on multiple login screens (in progress).

May 2023

  • Consolidated iCake (CAKE Dashboard) updates including: affiliate login improved - if api key can't be accessed then login will fail; Switch Account + Validate Credentials.
  • Delivered iCake (CAKE Dashboard) update: Switch Account + Validate Credentials.
  • Delivered iCake (CAKE Dashboard) update: working on Multiple Logins screen + ReSwift Redux Architecture integrated.

April 2023

  • Delivered iCake (CAKE Dashboard) update: observable object example.
  • Consolidated iCake (CAKE Dashboard) updates including: Merge branch 'IAA-15' into IAA-47; v1.0-build8.
  • Delivered iCake (CAKE Dashboard) update: crash reporting setup + fixed crash.
  • Consolidated iCake (CAKE Dashboard) updates including: Merge branch 'IAA-15' into IAA-47; fix; ui improvement; multiple login credentials screen.
  • Delivered iCake (CAKE Dashboard) update: re-usable components swift ui.
  • Delivered iCake (CAKE Dashboard) update: top offers - vertical filter (completed).
  • Delivered iCake (CAKE Dashboard) update: top offers - vertical filter.

March 2023

  • Consolidated iCake (CAKE Dashboard) updates including: offer filter - for sub-affiliate / daily / hourly reports; [Fixed] bugs for campaign filter - for sub-affiliate / daily / hourly reports.
  • Delivered iCake (CAKE Dashboard) update: campaign filter - for sub-affiliate / daily / hourly reports.
  • Delivered iCake (CAKE Dashboard) update: bug fixes.
  • Consolidated iCake (CAKE Dashboard) updates including: no data view for offer-compliance; no data view (referrals. top-offers, revenue performance); referrals view model & swift ui view.
  • Consolidated iCake (CAKE Dashboard) updates including: top offer view model & swift ui view; offer compliance screen improved ui; offer compliance screen.
  • Consolidated iCake (CAKE Dashboard) updates including: revenue performance ui; ui fix; created view model for -- revenue performance summary + offer compliance (with pagination support).
  • Consolidated iCake (CAKE Dashboard) updates including: IAA-15 -- dashboard screen using swift-ui / combine framework (in progress); networking using combine framework - playground example code.
  • Delivered iCake (CAKE Dashboard) update: dashboard - revenue performance summary.
  • Delivered iCake (CAKE Dashboard) update: IAA-15 dashboard tab.

February 2023

  • Delivered iCake (CAKE Dashboard) update: removed search-bar since there is no search supported by affiliate apis.

January 2023

  • Consolidated iCake (CAKE Dashboard) updates including: IAA-28 -- hourly report filters / sort by screen; IAA-9 hourly drill-down report - columns screen; IAA-9 hourly drill-down report.
  • Delivered iCake (CAKE Dashboard) update: IAA-27 -- daily report filters - offer filter & currency filter.
  • Consolidated iCake (CAKE Dashboard) updates including: [Fixed] - only one offer should be selected in sub-affiliate report offer filter; IAA-24 -- campaign report - currency filter; IAA-24 -- campaign report - conversion_type filter; IAA-24 -- campaign report filter - sub affiliate filter.

December 2022

  • Delivered iCake (CAKE Dashboard) update: IIA-8 daily summary report basic filters / sort by.
  • Consolidated iCake (CAKE Dashboard) updates including: IIA-8 daily summary report columns; Merge branch 'affiliate-app-project' into IAA-8; affiliate-v1.0-build5.
  • Consolidated iCake (CAKE Dashboard) updates including: daily summary report screen and api; campaign report columns.

November 2022

  • Consolidated iCake (CAKE Dashboard) updates including: Refactoring - Remove AffiliateApp flag from Admin Project; subaffiliate report columns.
  • Delivered iCake (CAKE Dashboard) update: Refactoring - Remove AffiliateApp flag from Affiliate Project.
  • Consolidated iCake (CAKE Dashboard) updates including: sub affiliates report - remove year to date option since this report has 31 days limit; fastlane code refactoring; affiliate app - fastlane setup; [fastlane] Updated appstore and platform ios.
  • Consolidated iCake (CAKE Dashboard) updates including: affiliate app - remove total or summary row (no summary info in new apis); Refactoring - rename AffiliateApp Project; pod install; deleted CakeAdmin app target from CakeAffiliate project.
  • Consolidated iCake (CAKE Dashboard) updates including: error handling for new affiliate api; getting affiliate api_key and using that api_key to get campaign / sub-affiliate report; campaigns report api https://staging.cakemarketing.com/affiliates/api/docs#!/CampaignSummary/Campaigns_Get; sub-affiliates report new api https://staging.cakemarketing.com/affiliates/api/docs#!/SubAffiliateSummary/SubAffiliateSummary_Get.
  • Delivered iCake (CAKE Dashboard) update: affiliate app -- new login api integrated https://staging.cakemarketing.com/affiliates/api/docs#/APIKeyPair.

October 2022

  • Delivered iCake (CAKE Dashboard) update: v1.6-build2.
  • Consolidated iCake (CAKE Dashboard) updates including: [fastlane] Updated appstore and platform ios; [fastlane] Updated adhoc and platform ios; [fastlane] Updated development and platform ios; [fastlane] Nuked files for distribution.

Objective Link to heading

  • Build a dedicated iOS affiliate-facing application stream separated from the admin app, focused on affiliate reporting, insights, and account workflows.
  • Ship production-ready affiliate APIs, dashboard/report experiences, and release operations from initial split through campaign-events delivery.

Delivery scope Link to heading

  • Created independent Cake Affiliate app codebase and removed admin-target coupling for affiliate-specific delivery.
  • Integrated affiliate authentication and API-key based flows, then delivered campaign, sub-affiliate, daily, and hourly report screens with filters, columns, and sort support.
  • Expanded product capabilities with SwiftUI dashboard work, revenue/offer compliance/top-offers/referrals modules, multiple-account switching, and generate-link wizard flows.
  • Added quicksight/dashboard experimentation and affiliate campaign-events functionality, while hardening edge-case error handling and list-selection behavior.
  • Operationalized releases with Fastlane lane updates, certificate/profile management, build distribution, and repeated regression fixes.

Technical architecture focus Link to heading

  • iOS app architecture combining UIKit foundations with increasing SwiftUI surface area for new dashboard and list modules.
  • API integration patterns for affiliate endpoints, API key exchange, session/cookie handling, pagination/search, and resilient error states.
  • Delivery pipeline discipline using Fastlane + CocoaPods with versioned build milestones and automated signing maintenance.