This page outlines recommendations for designing and building useful CommCare applications. These are compiled from collective experience in app construction and are only recommendations. Individual projects could vary substantially and the overall best practice is to go through extensive user testing and piloting to identify and correct language, media, or work flows that are confusing.
Table of Contents |
---|
APPLICATION DESIGN
Question ID and Case Property Naming
Have descriptive and consistent naming for your Question IDs and case properties. They are used in data exports and when doing case configuration.
...
To test your Question IDs, choose "export form contents" under Tools to view all questions in your form.
Naming Conventions: Menus and Forms
Users will navigate the application using form and menu names.
Names should clearly describe what the menu or form does
They should be short names (fit on one line of the phone's screen)
Use the same name for forms with similar functions (ex. registration in different modules)
Case Management
Case management is what makes CommCare uniquely useful for front line workers. Some important things to consider:
...
Saving and loading of case properties into the form is an important aspect of case management
In the event that you are saving and/or loading case properties into specific hidden values, consider organizing those hidden values into question groups called ''save'' and ''load'' respectively. This will help you stay organized with the movement of case properties.
Multimedia
Before deciding to include multimedia in your application, think carefully through what the goal of multimedia will be in your application. Some applications may not need multimedia (pure data collection or advanced users who don't need support).
Images
Local Images: Use a local illustrator so that images appear local to the area.
Unique Images: If images are being used for low-literate user support, try make each image unique. This will be less confusing.
Test Images: Test images! Images you may understand may be confusing to beneficiary or user. For example, a digital thermometer picture may not be understood by all your users.
Data
If data is important for you application, design your questions and case properties accordingly. Thinking through what you want in the data will help inform the application.
If using case exports, add indicators you care about to the case (either by calculating them in forms or just saving some form questions to the case)
Depending on what you need to track, decide on subcases for children, referrals, etc. vs. storing all data in a single case type
Test your exports! While building the app, test the exports to make sure that you're capturing data you need and nothing that isn't essential For example, date that form is filled out and user ID is automatically captured.
CommCare Settings
Turn on CommCare Sense Mode For most applications, this will result in a simpler user experience for low literate users. Some advanced features may be hidden (ex. Saved/Incomplete forms on CommCare Android)
Turn on Two-Way Sync: This will let ensure that if cases are reassigned, the user will be able to load them on their phone.
Setup Daily/Weekly Sync: If you're using case sharing, make sure you have daily or weekly sync on your phones so that users have a fresh version of any cases.
Set Text Input for Java Phones: Set to Native for non-english typing or full screen for QWERTY.
For Java Phones, set CommCare version to the latest available (indicated by a *)
Language Support
For multilingual applications make sure each of the following is translated:
Question labels/display text in a form
Names of forms and modules
Any information displayed in the case list and detail (including ID mapping)
User Interface translations (Translate the CommCare User Interface) for your language. Common language (ex. back, form is loading) should be updated.
Set the default language of your application before creating your released build. Drag and drop the languages and put the default language at the top.