Requirements - global-121/121-platform GitHub Wiki

This page contains the main requirements on which the functional and technical design of the 121 platform is based.

Architectural Requirements

1. Organizations must be able to run their own instance of the system

The system must allow any organization to install the software on their own server and database, resulting in their own instance.

2. Users of this instance must not see the data of any other instance in any user interface.

3. Organizations must be able to setup their instance with configuration of the system only, without the need for changing any code.

4. System components must use standard REST APIs to expose functionality to other components/systems

5. System must be able to provide data integrity in areas with intermittent or unpredictable internet connectivity

Performance Requirements

1. System must be able to handle 100,000 registrations in a program, giving a fast and adequate user experience, for key functionalities such as doing payments, sending messages and changing statuses. The exception is the import functionality, see section Functional Requirements below.

2. System must be able to handle 20 simultaneous active programs

Humanitarian Organizations that use the 121 Platform, may use a single instance for a long time, resulting in many programs. The 121 Platform should perform according to these requirements with 20 programs running. The 121 Platform can have an archiving function for old/inactive programs.

3. System must be designed to work with low-speed internet

Not all Humanitarian Organizations have high-speed internet at their office and registration and validation in the field happens with low bandwidth internet and intermittent connectivity.

Assumption for high-speed internet: broadband internet like experienced at The Netherlands Red Cross Head Office.

Assumption for low-speed internet at an office: a fast 3G connection. For testing simulated with the Chrome browser option for fast 3G.

Assumption for low-speed internet in the field: a slow 3G connection. For testing simulated with the Chrome browser option for slow 3G.

4. 121 Portal screens load in maximum 2 seconds with high-speed internet.

5. 121 Portal screens load in maximum 5 seconds with low-speed internet (fast 3G).

6. 121 Portal functionality that could take more than 2 minutes to complete works generally works asynchronously (does not block user interaction) The exception to this is importing registrations.

7. 121 Portal informs the user about duration for functionality that takes or could take more than 10 seconds to complete.

Functional Requirements

1. System must support multiple programs

2. Person affected must be able to register for identity and program using their own device.

3. Person affected must be able to register for identity and program using someone else's device.

4. Person affected must be able to register for identity and program using a device of the Humanitarian Organization.

5. Illiterate Person affected must be able to register for identity and program with human assistance (Proxy).

An illiterate person cannot read full texts and cannot remember and/or enter a username and password and does not know how to spell their own name.   Illiterate people often have their phone number written on a piece of paper with them or they know how to show it to someone on their phone.

6. 121 Portal works optimally with a screen resolution of 1280x720 pixels or more

7. Person affected must be able to register for identity and program also when validation of Persons affected has started.

8. Person Affected App must be made suitable for feature phones

NOTE: at this moment the 121 platform does not support this requirement. The Person Affected App only works on devices with a modern and recent web browser like FireFox, Edge and Chrome.

9. Person Affected App and Aid Worker App works with a screen resolution of 360x640 pixels or more

10. Person Affected must be able to use the system without being continuously online

NOTE: at this moment the Person Affected app will work with low network quality (intermittent connectivity), but does need internet connection at the start and end of the registration process, to load all content in the app and to send the registration data.

11. Aid worker web app must work on Android version 4.2.2+ with web browser Chrome 80+

12. Program can be done with and without validation of Persons affected

The validation functionality is optional/configurable: it has to be possible to do a program with validation functionality enabled or disabled. When disabled, the users and especially Persons affected should not receive any information or communication regarding the validation process.

13. Validation in the Aid worker web app must function without internet connection

14. Person affected web app and Aid worker web app must perform input validation

The platform supports the following input validations for the Person affected app and Aid worker app:

  • Required (not empty)
  • Numbers only
  • Confirmed password is identical to entered password
  • Date field, only valid dates can be entered according to input mask
  • Phone number is exactly 10 numbers including country code, only valid numbers can be entered according to input mask and are checked with the Twilio service when there is an internet connection
  • E-mail address, validates according to emailregex.com

15. Person affected web app must work on Android version 4.2.2+ with web browser Chrome 80+

16. Aidworker user must be able to bulk-upload pre-targeted People Affected into the system and invite them to register through SMS to provided phone number (or other contact channel)

If Person Affected subsequently registers using the known contact number, the registration is matched to the pre-targeted entry in the system. Person Affected can always still self-register, without an invitation.

17. Transfer Values must be able to vary between different People Affected

This is implemented by giving the option to set a "payment amount multiplier" for each registration, which defaults to 1.

18. The 121 Platform must support CVA programs where People Affected do not have a phone number (neither mobile nor landline).

19. The 121 Platform must support CVA programs where People Affected have a landline phone number.

20. The 121 Platform must support CVA programs where People Affected share phone numbers.

21. System must be able to handle up to 1,000 imports in a program.

Non-functional Requirements

1. Code and documentation must be available with open source license during or after the project ends

Regulatory Requirements

1. System must be GDPR compliant

2. System should be able to provide insight in the use of algorithms for decision making

Security Requirements

1. System must ensure that Personally Identifiable Information (PII) of all individual participants, Persons Affected and Aid Workers is secure from end-to-end

2. System must provide an easy way to backup and restore the software components and data of the system

3. System must use TLS encryption for secure communications