Published — v. 51

2022 Weisshorn V2

Table of contents

  1. Big bangs
    1. Migration from TIXNGO 2.0 to TIXNGO 3.0 (SDK) (c.f. SDK – Ticket Resale on SecuTix Ticket ShopSDK – Legal document, SDK – Max active sessions, SDK – Transfer reminder, SDK – Push notifications, SDK – Return transferred ticket)
    2. Design Project Phase 1 (ticket layout) (c.f. Design Phase 1 (i.e. ticket layout) – Ticket Price, Design Phase 1 (i.e. ticket layout) – Controlled ticket, Design Phase 1 (i.e. ticket layout) – Non-transferrable or non-resalable tickets, Design Phase 1 (i.e. ticket layout) – Same ticket layouts in my wallet, Design Phase 1 (i.e. ticket layout) – Fade out old tickets (past ticket/event), Design Phase 1 (i.e. ticket layout) – List of the deleted tickets, Design Phase 1 (i.e. ticket layout) – Seating details in the ticket main section, Design Phase 1 (i.e. ticket layout) – Colored area around the QR-Code, SDK - Promos on event List and main drawer (burger menu))
    3. New Backoffice AdminTool 2.0 console
    4. Multi-tenancy for spectator identity management per App ID
  2. Cool new features
    1. Screenshot and screen recording protection
    2. Ticket assignment mandatory/optional fields
    3. Mobile account deletion
    4. Max session login block account
    5. Mobiles logs when online activatedMobile sync-app-build-versions-env displayDownload status
    6. Force Upgrade feature
    7. Match day overview per event XLS report
  3. Small new features
    1. Ticket Cancellation Reason push notification
    2. Simplify the validator phone on the backend
    3. Add unchangeable fields for ticketing user
    4. Inject tickets with Purchase Time after Event Start Time
  4. Performance
    1. Push notification in batches

Product release notes

Product features

New Backoffice AdminTool 2.0 console

Multi-tenancy for spectator identity management per App ID

https://jira.secutix.com/browse/TIX2-979 [Multi-Tenancy] For each App ID, I have a different Authentification Service (Cognito).

  • What are we solving for?
    • Split every App ID in different Cognito pools.
    • One single spectator identity per App ID, and no longer one TIXNGO spectator identity cross all App IDs.
    • Mobile account deletion is now only per AppID and not anymore cross all organizers (c.f. Mobile account deletion below on S2).
  • image-2022-07-05-10-55-18-657.png 

Ticket assignment mandatory/optional fields

https://jira.secutix.com/browse/TIX2-574 As a TIXNGO Console User, I can define those fields as being either mandatory or optional.

  • AdminTool / Settings / Application Features / Ticket Holder Personal Information Mandatory parameter to allow organizer to define if all the additional assignment fields (Date of birth, Email, Phone number and Address) are mandatory YES/NO, if no they are optional.
  • The First and Last names always remain mandatory.

SDK - Promos on event List and main drawer (burger menu)

https://jira.secutix.com/browse/TIX2-574 As a TIXNGO operator I want push notifications to be send in batches with the delay

  • Organizer can show/hide promos on Event List & Burger Menu by configuration on AdminTool with their own content (2 available promo banners on Event List and 2 available items on Drawer menu)
  • Users can see the corresponding images, title, description and URL that are being configured on the Admin tool.
  • The position of promo banners 1 & 2 on Event List can be defined as top, bottom and after first with the respective display on mobile app.

Push notification in batches

https://jira.secutix.com/browse/TIX2-892 As a TIXNGO operator I want push notifications to be send in batches with the delay

  • New organizer setting keys:
    • Push notification campaign batch size: key push.notification.campaign.batch_size
    • Interval (in minutes) between split notification campaign schedules: key push.notification.campaign.delay 
  • TIXNGO organizer triggers a notification for all spectators of the match (or any other criteria) and notifications are sent in batches with a delay
  • Batch size (in the number of spectators) and delay time (in minutes) are configurable (without new deployment) - on the notification campaign page
  • Default values (pre-filled):
    • Batch size - 15000 spectators
    • Delay - 10 mins

Screenshot and screen recording protection

https://jira.secutix.com/browse/TIX2-2 Screenshot and screen recording protection.

  • Organizer can enable/disable the feature under Backoffice AdminTool 2.0 Console > application features > screen.protect.shot.record.

Mobile sync-app-build-versions-env display

https://jira.secutix.com/browse/TIX2-43 Mobile app: display last synchronization time in the app + As a wallet user, I can see in the menu the TIXNGO app/built versions/environment, Phone model and OS version.

  • The following information are added at the bottom of the menu:
    • Prod
      • App version: x
      • Last synchronization time: x
      • Phone model: x
      • OS version: x
    • All other environments
      • App version: x
      • Env: x
      • Refresh: x
      • Offline activation duration: x
      • Last synchronization time: x
      • Phone model: x
      • OS version: x

Match day overview per event XLS report

https://jira.secutix.com/browse/TIX2-375 TIXNGO backoffice: As an organizer I want to see match day overview per event

  • Because performance issue, we need to limit the number of selected events, If more than 8 matches are selected, display an error message ”In order to provide a quick result, please select maximum 8 events”
    • The report is in the report section
    • Title: "Event(s) overview report“
    • Filter by match (event) with checkboxes in the dropdown list
    • The report is available in XLS format

    • Total  - > Historical info. All tickets ever injected for this match
    • Injected -> current status
    • Downloaded -> current status (Note: transferre are not a part of it ! )
    • Download rate -> (downloaded + transferred + transfer pending + assigned)/injected (%)
    • Transferred -> current status
    • Transfer pending -> current status
    • Assigned -> current status
    • Activated -> historical info. All tickets ever activated for this match (split by ticket activation: manual/beacon/online/offline)
    • Controlled -> historical info. All tickets ever controlled for this match
  • Change request: The listed-out name should be the event group name, not the event name. Change the title to "Group event(s) overview report“.

Design Phase 1 (i.e. ticket layout) – Colored area around the QR-Code

https://jira.secutix.com/browse/TIX2-940 As a ticket holder, in case colored bars are displayed on the ticket, the area around the QR-Code is colored the same way than the bars.

  • As a ticket holder, in case color bars are displayed on the ticket, the area around the QR-Code is colored the same way than the bars.
  • If no color bars, the area around the QR-Code remains white.
  • New hidden key: "specialColor"
  • Cover the change of colored bars (Top bar) using the new key.

Inject tickets with Purchase Time after Event Start Time

https://jira.secutix.com/browse/TIX2-44 As an organizer, I can inject tickets with Purchase Time after Event Start Time.

  • Current behavior
    • If the ticket is related to a past event (start event date = 31/01/2022 22:00) but the purchase date is today (01/02/2022 16:00) -> Executing the interface today, Secutix tries to send the ticket but TIXNGO returns the error “Purchase Time must be before Event Start Time”
    • If the ticket is related to a past event (start event date = 30/01/2022 22:00) but the purchase date is before the start event date (29/01/2022 16:00) -> Executing the interface today, Secutix sends the ticket to TIXNGO with no errors
  • Wished behavior
    • Enable organizers to be able to inject tickets with Purchase Time after Event Start Time.
    • TIXNGO to support purchase after the start time.
  • Acceptance criteria
    • As an organizer, I can inject tickets with Purchase Time after Event Start Time.
    • TIXNGO is accepting the injection and is no longer returning the error “Purchase Time must be before Event Start Time”.

Design Phase 1 (i.e. ticket layout) – Seating details in the ticket main section

https://jira.secutix.com/browse/TIX2-464 As a mobile app user I want to see seating details in the main section in different UI than other information.

  • With the ticket template editor, you can define several fields related to NON seating (hereafter “Additional Details” e.g. Gate Opening, Kick Off, etc.) so you can apply specific UI on the mobile side.
  • Seating details should be located at the beginning of the main section in colored boxes, while the rest of the info goes after them as text.
  • If parameter set to 0, or not defined, we consider that we don't have Additional Details in this ticket
  • Hidden parameter detail:
  • key: ticketDetailMainNotInBoxes
  • value: 0, 1, 2, 3, 4, 5, or 6, etc.
  • One for key: ticketDetailMainNotInBoxes

  • One for value (number of ticketDetails.main fields that they want to move out of boxes): 2

Add unchangeable fields for ticketing user

https://jira.secutix.com/browse/TIX2-745 [SDK] Add unchangeable fields for Ticketing user.

  • Based on IsTicketingVerifiedProfile flag:
    • True – user can edit only phone number and preferred language (other fields are blocked and we don’t send them in update request)
    • False – user can update all data

Simplify the validator phone on the backend

https://jira.secutix.com/browse/TIX2-738 Simplify the validator phone on the backend

Design Phase 1 (i.e. ticket layout) – List of the deleted tickets

https://jira.secutix.com/browse/TIX2-259 As an SDK app user, I can see list of the deleted tickets

  • There is a dedicated section in the mobile app burger menu, called "deleted tickets", which will list all deleted and cancelled tickets. Show the deleted and cancelled tickets
  • The layout of the deleted/cancelled tickets will be implemented in https://jira.secutix.com/browse/TIX2-470 [Design][Phase 1] As a wallet user, I'd like to see the same ticket layouts in my wallet

Force Upgrade feature

https://jira.secutix.com/browse/TIX2-316 SDK Force Upgrade feature

  • Base on the setting on AdminTool:
    • The Force Update feature work properly, per app id not per environment:
      • Must upgrade (below the min version) - should not give access to the app and force to upgrade the app → Display a popup to have user tapped on the link to manually upgrade their app in App store/Google store. Content: Your app is outdated. Please download the new version by tapping the following links: Apple Store or Google Play...
      • Can upgrade (above the min version, but below the max version) → Display a popup to have the user tapped on the link to manually upgrade their app in the App store/Google store. (add a link of a guideline on how to update this/an app)
      • Up to date (above max version) → Not display popup
  • FYI – an improved popup is being validated (TIX2-777) and will be deployed in the next release:

Design Phase 1 (i.e. ticket layout) – Fade out old tickets (past ticket/event)

https://jira.secutix.com/browse/TIX2-334 SDK Fade out old tickets (past ticket/event)

  • New button at the bottom of the list to display past matches (hidden by default)
  • If there are no past matches, the button is hidden
  • If there are past matches and no future matches, a special message and image is displayed (customizable in the app, cannot be changed dynamically)
  • “Past matches” is determined as follows (to mitigate the risk of “wrong” past matches)
  • Matches whose date (day) is in the past and kick-off time is at least 12 hours in the past, based on the local time of the phone
  • E.g. match at 01.07.2020 21:00 will be “past” when the phone time is on or after 02.07.2020 09:00
  • E.g. match on 01.07.2020 10:00 will be “past” when the phone time is on or after 02.07.2020 00:00 (midnight)
  • Past matches in the list of matches are in the list with a Past Match banner and the ticket is shown with 50% white overlay
  • Past matches in the list of tickets are shown with a Past Match banner on the ticket and the ticket is shown with a 50% white overlay.

Design Phase 1 (i.e. ticket layout) – Same ticket layouts in my wallet

https://jira.secutix.com/browse/TIX2-470 [Design][Phase 1] As a wallet user, I'd like to see the same ticket layouts in my wallet

  • As a wallet user, I'd like to see the same ticket layout across my wallet.
  • Covering all possible tickets in a wallet with a new design - transferred/deleted/pending/past
  • Ticket layouts in a wallet that are not displayed in My tickets section have data like: status, ticket.image, event.name, event.site, event.Starttime, ticketDetails.main, purchaseDetails.price.
  • Ticket layout has 50% opacity to indicate that tickets are not active except the one - ticket received.
  • Also in Pending transfers and Pending Ticket Resale&Purchase the button has styling of primary buttons per new design.
  • Figma link: https://www.figma.com/file/g657DKNttffvtSSmzJUrtK/%5BPhase-1%5D-Redesign?node-id=2068%3A61761 

Design Phase 1 (i.e. ticket layout) – Non-transferrable or non-resalable tickets

https://jira.secutix.com/browse/TIX2-201 [Design][Phase 1] As a wallet user, I’d like to see when a ticket is non-transferrable and non-resalable.

  • For end-users, all possible actions are accessible from the ticket level (FAB, separate sections) so if they're not - they are hidden.
  • In terms of the not possible transfer due to ticket category, some organizer's policy after activation - user needs to be aware.
  • When a ticket is non-transferable or not-resalable or transfer and resale actions become inactive after ticket activation, the status is displayed. It has also info icon, when you tap - a notification is displayed.
  • Rules for controlled tickets:
  • If a ticket is controlled and have the rule AllowTransferAfterCrontrol = false, then the transfer button will not be displayed on the ticket.
  • Ticket cannot be put on resale
  • Figma link: https://www.figma.com/file/g657DKNttffvtSSmzJUrtK/%5BPhase-1%5D-Redesign?node-id=1181%3A38264

Design Phase 1 (i.e. ticket layout) – Controlled ticket

https://jira.secutix.com/browse/TIX2-469 [Design][Phase 1] As a wallet user, I can see that my ticket was controlled.

  • As a wallet user, I can see that my ticket was controlled.
  • A controlled ticket should have a label and timestamp.
  • A label for a controlled ticket is displayed on the top of the bottom part of the ticket - from edge to edge - text: ticket controlled and checked icon.
  • The timestamp of the controlled ticket is displayed at the bottom of the whole ticket after the additional section.
  • Figma link: https://www.figma.com/file/g657DKNttffvtSSmzJUrtK/%5BPhase-1%5D-Redesign?node-id=1979%3A63299

Design Phase 1 (i.e. ticket layout) – Ticket Price

https://jira.secutix.com/browse/TIX2-420 [Design][Phase 1] As a ticket holder I'd like to see the price of my ticket.

  • The price of the ticket is to be displayed in the Extra Section.

  • The value of the price: currency and amount of the money paid by customer.

SDK – Return transferred ticket

https://jira.secutix.com/browse/TIX2-262 As a SDK app user, I can return transferred ticket

  • As mobile app user (recipient) who has received transferred ticket and accepted transfer I want to have button in order to return the ticket in one click

SDK – Push notifications

https://jira.secutix.com/browse/TIX2-149 As a SDK app user, I can have push notifications.

  • Implement push notification for SDK apps.

SDK – Transfer reminder

https://jira.secutix.com/browse/TIX2-318 SDK – Transfer reminder

  • If the feature is enabled, display a dialog message on the mobile application that appears at the given frequency

    • Alert message to be displayed if I have more than 1 ticket in my account.

    • Display a ribbon in the given event with a message asking the user to transfer the tickets

  • Otherwise, nothing happens.

SDK – Max active sessions

https://jira.secutix.com/browse/TIX2-320 SDK – Max active sessions

  • As a mobile user I want to block my account when reaching the max session login.

  • As a ticket holder, I can log in TIXNGO wallet on a new mobile device, but the wallet on previous wallet will be automatically logout.

  • As an organizer, I want to enforce logout on active apps if login with a new device was detected.

SDK – Legal document

https://jira.secutix.com/browse/TIX2-344 SDK – Flexibility to add more check-box & legal documents on my profile

https://jira.secutix.com/browse/TIX2-328 SDK – Download of a Mobile Ticket is subject to Ticket holder to accept/ confirm General Terms and Conditions ("GTC"), Ticket Sales Regulations ("TSR") (if applicable for guests) and Stadium Code of Conduct ("SCC") as set by the organizer.

https://jira.secutix.com/browse/TIX2-173 As a wallet user, I have the legal doc hyperlinks text and URL in the language of my app.

SDK – Ticket Resale on SecuTix Ticket Shop

https://jira.secutix.com/browse/TIX2-158 As a SDK app user, I can have the Ticket Resale on SecuTix Ticket Shop feature on my app.

  • As a Ticket Owner, I want to:

    • have an option to put my ticket on organizer's resale platform

    • be able to see the list of my resale tickets

    • be able to retrieve ticket from resale

    • be informed when my ticket has been put on resale successfully

  • As a "main applicant" ticket holder, I will be able to resell the main applicant ticket, only after I resell all other tickets I purchased.

Mobile account deletion

https://jira.secutix.com/browse/TIX2-18 As a wallet owner of one TIXNGO native/branded app, I can decide and request to permanently delete the accounts of all my TIXNGO secure mobile ticket wallets along with all my personal data and my mobile tickets.

  • Account deletion on Apple Store JUN30 2022 https://developer.apple.com/app-store/review/guidelines/#5.1.1
  • Account deletion UI
  • Scenario 1 - no active, nor future mobile tickets

    • After the “Account deletion UI” flow described in the previous images, if no active, nor future mobile tickets are associated with the email address:

      • TIXNGO backend anonymizes

        • The spectator is anonymized in TIXNGO database.

        • The email associated to the ticket becomes garbage.

        • The status of the ticket on the blockchain doesn’t change.

      • The wallet owner receives an email confirming the account deletion.

        • You decided and requested to permanently delete the accounts of your [App Name] secure mobile wallet along with all your personal data and all your mobile tickets.

        • All your account, personal data and mobile tickets associated with the email address of your profile have been deleted forever.

        • You can create a new account by registering [App Name] secure mobile ticket wallet, or by purchasing a new mobile ticket.

        • Best, [Name of Organizer]

      • The AdminTool operator doesn’t found anymore the spectator email address, but still finds any Ticket ID associated with a garbage email address.

      • No changes on ticketing system.

    • After some time, if the spectator changes his/her mind, he/she can create again an account with the exact same email address, or in case of SSO, relog again as it would be the first time.

  • Scenario 2 - active, and/or future mobile tickets
    • After the “Account deletion UI” flow described in the previous images, if active, and/or future mobile tickets are associated with the email address:
      • The wallet owner receives an email listing all active and/or future mobile tickets and asking to confirm the account deletion, by clicking/taping on a confirmation link valid for 24 hours.
        • If the link is clicked/taped after 24 hours, the spectator lands on a page mentioning “this links has expired”.
        • If the link is clicked/taped in the first 24 hours:
      • TIXNGO backend anonymizes
        • The spectator is anonymized in TIXNGO database.
        • The email associated to the ticket becomes garbage.
        • The status of the ticket on the blockchain doesn’t change.
      • The wallet owner receives an email confirming the account deletion.
        • You decided and requested to permanently delete the accounts of your [App Name] secure mobile wallet along with all your personal data and all your mobile tickets.
        • We noticed there are still valid mobile ticket(s) for upcoming events, associated with the email address of your profile:
        • Event Name 1, Day, Month-Date, Year
        • Event Name 2, _Day, Month-Date, Year_
        • (Example: Wimbledon 2022, Saturday, July 2, 2022)
        • Would you please confirm you decide to delete your account personal data and mobile tickets?
        • If yes, click the following link in the next 24 hours: www.acount.deletion.TIXNGO.io/spectator?. All your account, personal data and mobile tickets associated with the email address of your profile will be deleted forever.
        • If not, ignore and delete this email.
        • Best, [Name of Organizer]
      • The AdminTool operator doesn’t found anymore the spectator email address, but still finds any Ticket ID associated with a garbage email address.
      • No changes on ticketing system.
    • After some time, if the spectator changes his/her mind, he/she can create again an account with the exact same email address, or in case of SSO, relog again as it would be the first time. A reprint will be needed to reinjected mobile tickets.
  • Recommendation for organizer operational teams

    • If a ticket holder complains of not having ticket in his/her wallet:
      • Check on the AdminTool, if any Ticket ID associated with a garbage email address.
      • If it’s the case execute a reprint to reinjected the mobile tickets.
  • Technical notes
    • Anonymization is enough, TIXNGO do not need to delete data in the blockchain.
    • Anonymization happens automatically in the backend.
    • Anonymization includes at least:
      • Spectator details
      • Transfer pending
      • Logs
      • Questionnaire answers
      • INVITATION_LOG
      • COMMUNICATION_LOG
      • MOBILE_APP_LOG
      • SPECTATOR_PREFERENCE
      • MOBILE_APP_NOTIFICATION_TOKEN
      • ADDRESS
    • TIXNGO cancel all pending tickets on his/her behalf.
      • TIXNGO cancel all pending tickets pending on his/her side (c.f. P2P Ticket Resale and 2ND MKTP).
      • The recipient of a transferred ticket is not allowed to return a transferred ticket to the previous owner. An error message: "This ticket cannot be return, since the spectator no longer exists.
    • Since S6 (F) Multi-tenancy for spectator identity management, the Mobile account deletion is now only per AppID and not anymore cross all organizers.

Max session login block account

https://projectportal.elca.ch/jira/browse/TIXNGO-4772 As a mobile user, I want to block my account when reaching the max session login.

  • Having a setting on the AdminTool call "Disable online/offline check if device reached max active sessions" default = false
  • Set TRUE when user reach max active session → show dialog error immediately

  • Set FALSE when user reach max active session

    • Check online/offline by 2mins 2secs

    • if offline show dialog error, if online kick out the user.

Download status

https://projectportal.elca.ch/jira/browse/TIXNGO-4633 INJECTED status overwritten while ticket is not yet downloaded

  • Old behavior
    • Here the ticket status is “ONLINE ACTIVATED“.
    • Whereas the ticket is not yet downloaded as described in the ticket status history.

  • New behavior

    • DOWNLOAD status appear after ONLINE_ACTIVATED log when user download the app.

  • Tested OK
    • Case 1: Injected => Downloaded => Online activated. (the app is installed before inject the ticket).
    • Case 2: Online activated => Injected => Downloaded. (the app is installed before inject the ticket - Activation time < now).
    • Case 3: Injected => Online activated => Install app => Downloaded. (the app is installed AFTER inject the ticket).
    • Case 4: Injected => Online activated => Downloaded. (the app installed before inject the ticket).

Mobiles logs: when online activated 

https://projectportal.elca.ch/jira/browse/TIXNGO-4752 As an AdminTool user, I would like to know when user open the app and see online activation.

  • When user open the app, ONLINE_ACTIVATED log must contain "Mobile date time“, to know that this user open the app when ONLINE_ACTIVATED happen.

Ticket Cancellation Reason push notification

https://jira.secutix.com/browse/TIX2-3 As an organizer, I can set in the AdminTool in a generic field, a specific push notification message for a specific Ticket Cancellation Reason (e.g. resale deleted ticket).

© TIXNGO 2023 - Login