The Android version (the only version so far) of I’m OK was written on Android Studio using XML and Java. It does very little and so is a very small app retaining a tiny amount of data from one session to the next. It’s activities are as follows:
Immediately the app is launched, this connects to the MYSQLi database on line using the name and ID saved on the users phone. It updates the database with the current time and calculates and stores, on line, the latest time the user needs to check in. It returns a greeting to MainActivity which includes a reminder of their next check-in, their ID and any messages generated by the system since they last logged in. It offers links to other activities as well as an I’m finished button which closes the app (sort of, I’m stuck with this ATM).
This allows the user to remove themselves from the system completely. It also deletes their contacts.
Manage my account
From here users can delete any contact (the contact is informed by e-mail), add a contact if they have fewer than three and re-send a contacts introductory e-mail if it hasn’t been responded to. It lets them change the check-in interval and also suspend the account if they know they will be away from the phone; perhaps going on holiday etc.
Connect to existing account
This allows a user to enter the user name and ID number so that the app will access that account from now on. This is an important tool in the development phase but will be left in as it means users can easily connect to their existing account on a new phone.
This page creates a new account. It requires a name for the user which can be any name they wish, though I suggest it’s a name their contacts will recognise. The name will have a unique ID attached to it so duplication is not a problem. It gets a check-in interval which is either once a day (midnight to midnight) or any given number of hours. It then collects up to three contacts. Names can be anything, though the contact needs to recognise themselves in the confirmation e-mail, but e-mail addresses must be accurate or nothing will work. On submission a basic check is done to make sure all e-mail addresses are in the correct format and that there is at least one name+e-mail pair.
Send us a message
I’ve added this mostly for the development phase so bugs can be reported direct from the app. However, it will probably be left there and feedback will always be helpful.
When the button isn’t pressed
There’s something called a chron job running (get me and my technical language!) that checks the entire database every 30 minutes. Every time it finds a record with a check-in time that’s passed, it sends out e-mails to all the addresses supplied by that user. The e-mails are only sent out once.
Obviously it’s up to the recipients to react to the e-mails. Once the mails are sent the system flags that up to prevent re sending. However, to reset the system, the user needs only open their I’m OK app again and the system will resume monitoring as before.