Closed moshthepitt closed 6 years ago
Under "Technical Considerations" would be nice to add that it will need to work offline and usable in areas with slow/intermittent connectivity.
@jasonrogena done, thanks
Replaced by https://github.com/onaio/kaznet-mobile-app
Kaznet Mobile Application
This document describes the ILRI Kaznet mobile app.
What does the Kaznet mobile app do
Kaznet is essentially a set of tools for crowd-sourced data collection. The Kaznet mobile app allows data contributors to log in to their Kaznet accounts and perform data collection tasks.
Who uses the Kaznet mobile app
The target users are people who collect data for the Kaznet project.
Features of the Kaznet mobile app
Account management
Through the mobile app, users are able to:
Log in to Kaznet - this includes a way to recover forgotten passwords
View and/or update personal data - the user can view and/or update their own data e.g. name, phone number, etc
View other personal data - the user can also view her own personal data from the Kaznet system e.g.
total submissions
total approved submissions
total bounty (rewards) earned
user expertise level
View tasks
Users are able to see a list of tasks that are active in the Kaznet system. There are two types of tasks that the user can view:
Tasks that they can participate in
Tasks that they cannot participate in - due to expertise, location or other restrictions
In both cases, the user is presented with a list of tasks and can click on each individual task to see more details. In the tasks list, the tasks that the user cannot participate in are displayed slightly differently to distinguish them.
Task details include:
the name of the task
the description of the task
the locations that the task targets
the start and end date of the task
the times at which the task can be done
the bounty (reward) of the task if any
the maximum submissions that the user can make
Launch forms
When users are viewing a task that they can participate in, they can click a button which will launch that task's XLS form in the ODK collect app. The user will then be able to fill in the form within the ODK app and thereafter go back to the Kaznet mobile application.
View submission data
User will be able to view some information on the task submissions that they have made. This includes:
the task that the submission was made against
the review status of the submission
any review comment of the submission
the bounty (reward) payable for the submission
View payment data
Users will be able to see some information on payments that they have earned from taking part in Kaznet tasks. The information will be filterable by task and by date.
Notifications
Any notifications sent by the Ona Messaging Platform will be received by the Kaznet mobile application and brought to the attention of the user in the same way that other Android applications do so.
Implementation Plan
Technical goals
The goal is to have a light-weight and performant android mobile application. Technically, the requirements are:
a nice and functional UI for viewing user information, tasks, submissions and submission information - all the interactions will be through the Kaznet web application REST API
a way to launch the ODK collect app with the right form and settings to enable data collection
a way to handle notifications received from the Ona messaging platform. These are MQTT based notifications
the application needs to be usable when the user is offline and/or in areas with slow/intermittent connectivity
Technical considerations
Some native android code has already been written that does:
launch ODK for data collection
receive notifications
the Kaznet mobile app is quite similar to the WHO STEPS app
Choice of technology
Option 1: Native Android
There is a large group of engineers at Ona who have substantial android development experience. Presumably, one of them could implement the Kaznet mobile app quickly and cleanly.
Pros
familiar technology at Ona
a similar app has been made at Ona before
Cons
Option 2: Flutter
Flutter is sold as way to quickly build beautiful mobile application UIs. The Kaznet mobile application is basically almost all UI, with two "non-UI" parts - notifications and launching ODK.
Pros
does not require taking an android developer from other teams at Ona
an opportunity to add Flutter capacity at Ona
Cons