We want to develop an iPad app for distributors to use asjewelry catalogue it should get updates from web admin panel. As this app is for distributors, itshould be capableto be operated offline.
App should contact the main server and check for the login credential every 24 hours and store the credentials on iPad locally for offline login. These stored credentials will be deactivated after maximum of 48 hours and app should ask for internet connectioneverytime after that.
In user catalogue screen after login jewelry catalogue is available having product category, Product sub category, Product code, product weight, product melting (purity/karat) and a single image of product.
While ordering salesman/distributorcan select the manufacture year, product category, product sub category if any and catalogue should open. Distributor then shows the products to buyer and select/deselect the product with a single click. On clicking to finalize the order a order sheet should appear from where he can select melting from a radio button, can put quantity and write remarks if any. If internet is connected he should be able to send the order and order should be sent to the company via email. Otherwise the order should be saved in the system for sending later (when internet connectivity is available) Each salesman/distributor can view his orders with total weight in his order history section on iPad and web login panel. Product images should not be copied screenshot or saved in anyway.
Company should have the authority to change password, push update to the catalogue to a particular device or all devices, it can disable any salesman/distributor from using the app through central web admin panel.
The database system should work as under:
1. It should be stored locally on mobile device
2. The database file should have a version [url removed, login to view] version number should control the status of data in following manner:
a. in case of any mistake in data when we rectify database on server, it should change the version number accordingly and the software on client device should detect changes and sync only changed rows with server (not the entire database to save data traffic)
b. in case of new products, when we add new products in database on server, it should change the version number accordingly and the software on client device should detect changes and sync only changed rows with server (not the entire database to save data traffic)
c. in case of any product deletion in database on server, it should change the version number accordingly and the software on client device should detect changes and sync only changed rows with server (not the entire database to save data traffic)
Mean to say the database version number should always be in sync with the device and on every order database version number should appear on page footer along with the date,time and user name.
3. In case of order posting only encrypted text should travel on internet containing, product id, quantity, melting, customer number, date of order, time of order and any special remarks or requests.
4. Uponreceiving the order the software on server will take all required field details from its database (as all databases are in sync)
5. Whenever we make any changes in database on server side, server should push a message on all clients at the time of login asking to sync the database first with option to remind me later.
6. Database on device should be in encrypted form so that it cannot be misused otherwise without software.