I need an application that is capable of reading data from and writing data to an NFCV tag on Android and iOS.
Primary application requirements:
1. Allow a user to scan a tag. Check the tag is of the expected type, and and read the (non-NDEF) data at a specific offset. If the data matches a specified format, show the user information about the tag and its current settings.
2. After a valid tag is scanned, allow the user to reconfigure it:
a. Query a graphql API with data retrieved from the tag, using the results to populate a selection box. Provide a link to an external site that allows the user to execute activities that affect the result of the selection box; when the user is redirected back to the app, refresh the selection box (design of external site is out of scope).
b. Allow the user to override the selection box with a manually entered value.
c. Show other information retrieved from the tag in a human-readable form and allow the user to edit it. This will consist of 3-5 numeric and textual values.
d. Allow the user to save the modified settings back to the tag.
3. Allow the user to 'factory reset' the tag by writing a specific value to a specific location on the tag.
4. Allow the user to change the NFCV password protecting the memory area the configuration data is stored in. When a user scans a password-protected tag, indicate that it is password-protected, and when they attempt to update the tag, prompt them for the password.
Non-functional requirements:
1. Application written using React Native and Expo.
2. Functional in Android and iOS, using the appropriate APIs for each (NFCV for Android and ISO15693 for iOS).
3. Adheres to UX best practices and designed attractively.
4. Written in TypeScript.
5. Licensed under MIT; copyright assignment optional.