Along with our business and internal computer systems, the named app & the corresponding infrastructure is designed to comply with the following national and international legislation with regards to data protection and user privacy:
The NDT Events app compliance with the above legislation, all of which are stringent in nature, means that the app is likely compliant with the data protection and user privacy legislation set out by many other countries and territories as well. If you are unsure about whether the app is compliant with your own country of residences’ specific data protection and user privacy legislation you should contact our data protection officer (details of whom can be found in section 9.0) for clarification.
The NDT Events app collects and uses personal information for the following reasons:
When the app on your device connects to our server to upload or download content, your device’s IP address (which could be used to personally identify you) is logged by our server.
Should you choose to create an account in the app, the email address and password you enter to create your account will be saved to our server’s database. This information is only used by us to identify you when you access your customised schedule. Items you choose to add to your schedule are saved so you can login and view them on multiple devices, or restore them should you re-install the app.
Your account and its associated personal data will remain in our database unless we identify a reason to remove the account. Should you wish to have your account and its associated personal data deleted, please use this form to request your data be deleted.
Should you opt to send us feedback using the mechanism offered within the app, you have the choice to enter your email address. If you do choose to enter your email address this will be saved to our server’s database. This information will only be used by members of our staff to respond to your feedback.
Your feedback will remain in our database until we have liaised further with you about your specific comments (should it be deemed necessary and you have supplied an email address for us to correspond with you). Should you wish to have your feedback deleted sooner than we would usually do so, please email us here using the email address that you signed up with.
If you opt-in to allow sending of crash reports, if the app crashes, some data about your device is sent to the provider of this service, Firebase Crashlytics
This data is used by us to try and ascertain why the app on your device crashed. Collecting this data helps us identify recurring problems that need to be fixed in future app updates.
Full details of data collected can be found here. Below is a typical example of the type of data that is sent from your device:
Value | |
---|---|
Date of crash | 07/08/2023 10:41:23 AM |
App Name | NDT Events |
App Version | 2024.08 (19) |
Device OS Name | iOS |
Device OS Version | 17.5.1 |
Device Model | iPhone 15 |
Device RAM free | 238.06 MB |
Device Disk Space | 107.99 GB |
Device Orientation | Portrait |
Jailbroken/rooted | No |
App running in background | No |
Class/Module Name | ProgrammeViewController.swift |
Line Number | 275 |
Method | ProgrammeViewController.controllerWillChangeContent(_:) |
Crash Stack Trace |
Fatal Exception: NSInternalInconsistencyException 0 CoreFoundation 0x83f20 __exceptionPreprocess 1 libobjc.A.dylib 0x16018 objc_exception_throw 2 Foundation 0x6de868 _userInfoForFileAndLine 3 UIKitCore 0x106ac78 -[UITableView _Bug_Detected_In_Client_Of_UITableView_Invalid_Number_Of_Rows_In_Section:] 4 UIKitCore 0x387f88 -[UITableView _endCellAnimationsWithContext:] 5 UIKitCore 0x3bce7c -[UITableView endUpdatesWithContext:] 6 NDT Events 0x40244 @objc DayTableViewController.controllerWillChangeContent(_:) 7 CoreData 0x6de5c __82-[NSFetchedResultsController(PrivateMethods) _core_managedObjectContextDidChange:]_block_invoke 8 CoreData 0x270dc developerSubmittedBlockToNSManagedObjectContextPerform 9 CoreData 0x9d0ec -[NSManagedObjectContext performBlockAndWait:] 10 CoreData 0x9c6e8 -[NSFetchedResultsController _core_managedObjectContextDidChange:] 11 CoreFoundation 0x5178c __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ 12 CoreFoundation 0x516a8 ___CFXRegistrationPost_block_invoke 13 CoreFoundation 0x515f0 _CFXRegistrationPost 14 CoreFoundation 0x4fbb8 _CFXNotificationPost 15 Foundation 0x31574 -[NSNotificationCenter postNotificationName:object:userInfo:] 16 CoreData 0x6a738 -[NSManagedObjectContext _postObjectsDidChangeNotificationWithUserInfo:] 17 CoreData 0x6a364 -[NSManagedObjectContext _createAndPostChangeNotification:deletions:updates:refreshes:deferrals:wasMerge:] 18 CoreData 0x69544 -[NSManagedObjectContext _processRecentChanges:] 19 CoreData 0x55b00 _performRunLoopAction 20 CoreFoundation 0x24658 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ 21 CoreFoundation 0x24414 __CFRunLoopDoObservers 22 CoreFoundation 0x52d24 CFRunLoopRunSpecific 23 UIFoundation 0xdbe08 -[NSHTMLReader _loadUsingWebKit] 24 UIFoundation 0xdc9b8 -[NSHTMLReader attributedString] 25 UIFoundation 0x9c5cc _NSReadAttributedStringFromURLOrDataCommon 26 UIFoundation 0x97940 _NSReadAttributedStringFromURLOrData 27 UIFoundation 0x977b8 -[NSAttributedString(NSAttributedStringUIFoundationAdditions) initWithData:options:documentAttributes:error:] 28 Down 0x35cc4 init + 41 (NSAttributedString+HTML.swift:41) 29 Down 0x26998 toAttributedString + 45 (DownAttributedStringRenderable.swift:45) 30 NDT Events 0x1a11c processMarkdown + 20 (String.extension.swift:20) 31 NDT Events 0x47024 processSlots + 310 (CDParseProgramme.swift:310) 32 NDT Events 0x452b0 processSubSessions + 213 (CDParseProgramme.swift:213) 33 NDT Events 0x43b64 processSessions + 167 (CDParseProgramme.swift:167) 34 NDT Events 0x42f34 processDays + 105 (CDParseProgramme.swift:105) 35 NDT Events 0x42064 |
Please note: the transfer of information about crashes and malfunctions to the Crashlytics service is optional and can be enabled or disabled at any time from within the app settings.
As detailed in section 3.1 above, if you use the app some personal information will be stored within our server logs. Your IP Address will be stored in a plain text format until the end of the current day (up to a 24-hour period) and, under normal circumstances, can only be accessed by our server operators who have the highest system privileges. At the end of each day the server logs are encrypted, these encrypted logs are retained for a further 30 days before being anonymised. The anonymisation process alters any personally identifiable information to the point where it cannot be linked back to you as an individual.
If you chose to create an account then your details (as described in section 3.2) will be stored within our database, copies of this database are created for backup purposes, each backup is encrypted for safe archival for a period of up to 365 days.
If you chose to supply your email address when submitting feedback (as described in section 3.3) your address and feedback will be stored within our database, copies of this database are created for backup purposes, each backup is encrypted for safe archival for a period of up to 365 days.
The data collected in section 3.4 is sent directly to the provider of this service, Firebase Crashlytics. Some of the data is copied to an offline spreadsheet which is used to identify repeat crashes in the same module/method.
The server providing the supporting infrastructure for the NDT Events app is hosted by Digital Ocean within their London, UK region.
DigitalOcean’s infrastructure is continually maintained following internationally recognised security controls. Their infrastructure is monitored 24/7/365 and undergoes third-party audits as well as targeted testing annually. For physical security, each of their data centre colocation providers maintain industry-recognized certifications and it's networks are MANRS certified.
All traffic (transferral of files/data) between the server and the app is encrypted and delivered over HTTPS.
We use a number of third parties to process personal data on our behalf. These third parties have been carefully chosen and comply with the legislation set out in section 2.0.
We will report any unlawful data breach of this app’s database or the database(s) of any of our third-party data processors to any and all relevant persons and authorities within 72 hours of the breach if it is apparent that personal data stored in an identifiable manner has been stolen.
The data controller for this app is: The British Institute of Non-Destructive Testing Limited, a UK Private Limited Company with company number: 969051
Whose registered office is:
Midsummer House,
Riverside Way,
Bedford Road,
Northampton .
NN1 5NX
Alicia Carroll
Quality Officer, The British Institute of Non-Destructive Testing Ltd.
Telephone: 01604 438300
Email: [email protected]
This privacy policy may change from time to time in line with legislation or industry developments. We will not explicitly inform our clients or app users of these changes. Instead, we recommend that you check this page occasionally for any policy changes. Specific policy changes and updates are mentioned in the change log below.