Collecting data for one area by more than one user

One of our deployment has come up with following need. CHT app is live on that area and users are collecting baseline survey data from each and every household in the area. This duty was divided to multiple CHT users. Now, some of the users have already completed collecting data from their areas and other users are still collecting data. There’s an instruction for CHT users to finish collecting data sooner and for this, one CHT user will need to help another CHT user to collect data. These users are configured to be offline users and go to field and collect the data. Let’s consider user_y has completed data collection and wants to help user_x for data collection.

We’ve thought of following two alternatives.

  1. Share the detail of user_x to user_y so that user_y logs in using x’s credentials and helps in collecting data from particular area. user_x continues to collect data from their own device. Once user_y completes data collection from x’s area, user_y’s data is cleared from app and they sign in using their own data.

  2. Create new temporary user temp and assign the same area as user_x. user_y logs in using temp’s credentials and collects data, which will be recorded under x’s area.

It’s important to note that, there might be some forms which generate tasks for users. We want to ensure that no tasks are duplicate and no tasks are missed, all should be assigned to user_x at the end. We also want to minimize the chances of database conflicts.

What’s the best way to implement on this scenario.

1 Like

Hi @yuv

In the case of 2 you would definitely have duplicate tasks: for the same event you will end up with both users having a task. You won’t see them as duplicate - they will have a different ID and each user will only see their own tasks, but server-side there would be 2. Both tasks would get resolved when a user does the action, but there is a chance that both users will end up resolving the same task if they are offline.
As for conflicts, all documents would be shared among users. In case of 1), tasks would also be shared in addition to all documents. The chance for conflicts on non-task docs is the same for both cases.

I think the approaches are very similar.

From a security perspective, it’s advisable that users don’t share login credentials.

1 Like