We are willing to have an Android application having the following features:
1- The application is considered to be a system application (i.e., will be pre-installed on the device and may not be uninstalled by the customer).
2- The first interface is mandatory and all of the fields must be filled by the customer in order to UNLOCK the device. Otherwise, the device may not be unlocked.
3- The second and third interfaces and optional. BUT, in case the customer didn't fill these two interfaces, notifications will be sent periodically pushing the customer to fill these two interfaces.
4- All of the data provided by the customer within all of the interfaces could be edited later (i.e., customer could change his emails address or even hist mobile no, so that he should be able to apply the change through the application interface). For the second and the third interfaces, the customer could remove data provided and uncheck the checkoxes. So that, he'll be receiving periodic notifications again.
5- As for the first field (which is: Device Serial No) located in the first interface, the value entered by the customer must be compared with our database to make sure that it's valid. In fact, we are keeping our devices serials in our ERP system called NAV. You'll be provided with SOAP-based web service to make sure that the customer has provided a valid value. Also, another check should be done upon the application database itself to insure that the serial no hasn't already used by another customer (i.e., device serial no must be unique across database records). Also, Android unique device id should be obtained automatically while pushing customer data from the first interface to database.
6- MySQL database should be used.
7- The backend side should be developed using Java web-based technologies (i.e., using JEE platform like Servlet, JSP, JSF, ...). For this side, we should be provided with a web-based interface in order to browse customers information along with filtering and exporting abilities.
8- A web interface should be created to enable the customer to locate his device when it's gets lost.
9- Apache Tomcat should be used as a Servlet container.
10- The web service created to integrate the Android application-through JEE-with the backend database should be based on RESTful architecture. Also, communication through web services should be JSON-based.
11- Apache HTTPClient client library should be used both in Android side and JEE side for the sake of integrating with RESTful web serivces.
12- Android application should be developed using latest version of Google's Android Studio IDE.
13- JEE source code along with Android source code should be fully commented.
14- After development is completely finished, Android APK file should be provided along with hosting JEE application at one of your servers so that we can test.
15- After the application is fully tested, the source code must be submitted to us. So that, we can have a backup of our project and get it hosted at our server.