This document explains the sync logic used in the trace mobile app.
...
Syncing in the trace mobile app is the process that updates the data between the trance mobile app and the trance backend. Since the app supports offline features we have to update new data from the app to the backend and vice versa.
...
Sync types
Sync types are defined with which types of data are syncing.
...
Company details
Project details
New farmers
New cards
Buy transactions
Send transactions
Transaction invoices
Updated farmers
Product list
Buyer list
Farmer list
Transaction list
Batch list
...
Sync variables
Sync variables are the redux state used to track sync process and used as universal variable that can access anywhere from the app.
...
syncStage
- current sync stage value - initial value is 0.syncInProgress
- boolean value show that syncing is on progress or not - initial value is false.syncSuccessfull
- boolean value show that current syncing is successfully completed not.
...
Sync stages
Syncing is done with 3 different stages.
...
Stage 1: Initial sync
Stage 2: Transaction sync
Stage 3: Normal sync
1. Initial sync
Initial sync is happens on onboarding screen and it starts after login and user details APIs.
...
Syncing newly added cards from app to server side.
5. Buy transactions:
Syncing newly added buy transactions from app to server side.
6. Send transactions:
Syncing newly added buy transactions from app to server side.
7. Transaction invoices
...
:
If the transaction verification method is manual then transaction invoice need to sync from app to server side.
8. Updated farmers:
Syncing updated farmer from app to server side.
9. Product list:
Syncing product list and updates from server side to app.
10. Buyer list:
Syncing buyer list and updates from server side to app.
11. Farmer list:
Syncing farmer list and updates from server side to app.