1. Sqlite local database (I think this would be a better option than localstorage but am open to ideas) to manage all offline data (see function below).
2. Background update to an from the API for the following functions:
User registration (fields will be email, pwd & name, no other details required), login (Email) and password reset.
3. fetch 2 json config 'files' - one before login (the same for all users) and a different for each user and changing over time so needs to be 're-synced' when server is updated that includes:
4. populates a page with 3 select boxes where the 2nd is filtered by the first and the 3rd is filtered by the 2nd - so that users select the first, see a subset in the 2nd, select the 2nd and see a subset in the 3rd and then:
5. when a start button is clicked adds a record of the activity to local storage and starts a visible timer (00:00:00).
6 While activity is running a stop button replaces the start button, when clicked the task is updated with a stop time.
7. some activities capture some additional fields (for these there is an extra page in the process).
8. activities must but be editable (start and end date and time plus changing one or more of the values in the 3 select boxes above. This is the most 'difficult' part of the app as tasks should not 'overlap' so previous tasks will need to be adjusted if a start time is changed and later tasks will need to be adjusted if a stop time is changed.
9. geolocation data is captured at intervals and sent to API.
10. An 'activity submission' function (clickable lists and a submission page) allows users to mark some activities as complete (after which they can no longer be edited).
11. An 'activity signoff' function (clickable lists and a submission page) allows users to 'sign' some activities by entering a pin number (after which they can no longer be edited).
12. geolocation data is captured at intervals and sent to API.
There are 25 html 'pages' in the Ionic app but a number of these are simply different versions of the same page (just to demonstrate what a page would look like in a different stte so will not exist in the final app).
13. tasks must be synced to the server - the app must work reliably offline and sync automatically when a connection is present.
14 there is a preferences page where some local settings can be adjusted.
15 there will be notifications sent (serverside is complete and I will do the integration from server to whatever API suits you). Only action on notification is to list in app and when clicked one goes to the internal url in question (say an activity).
There is no web or back end component to this project - the API is complete as is a full admin panel.