Global User Acceptance Criteria - IntegratedBreedingPlatform/Documentation GitHub Wiki

User Interface Design

  • always enable vertical/horizontal scroll bars on user interface views in which its content is expected to exceed the said ui view
  • buttons must always be visible to users, and we must consider users with small screens; center buttons below forms to ensure they are always accessible
  • always set a distinction for required fields; this should be done in a consistent way on all screens
  • always put a progress indicator for long processes
  • for tables which allow selection, checkboxes will be placed in the leftmost column, with a 'select all' option at the bottom of the table; there will also be a checkbox in the column heading that will have the function of selecting all entries
  • always page results and table views that are expected to have a big number of output/records
  • disable/hide user interface components which are not needed for specific processes within the same view
  • Use contrasting colors for the text and background so that the form can be easily read and understood.

Validation

  • trim string entry points/text fields
  • invalidate character input for fields which requires numeric input
  • always have proper validations when handling: nulls, empty string, spaces, special characters
  • make sure proper input length limits are set. If input is saved in a database, the maximum length allowed for a user interface input field should be as long as its counterpart table field in a specific table of the database.
  • apply custom validation based on valid/realistic requirements
  • generic error messages are ok for edge cases.

Supported Platforms/Restrictions

  • support for Internet Explorer 8 above, Firefox and Chrome (we should define what versions as well)
  • user interface implementation should look presentable at 1024x768 and above

Exception Handling

  • exceptions caught should always be seen in log files
  • exception/error messages that is shown to the common user should be easy to understand
  • should always check if null is returned, especially for chained method invocations.

General Best Practices

  • set defaults if able
  • for very simple processes, they should complete within 1-3 seconds (web page)
  • for wizard-style ui, make sure the selections and input of the users for each step are cached by default
  • Make sure that the system communicates what’s happening, simply notify users after an operation succeeds or fails.
  • Ensure that the values displayed in the drop down list are descriptive.
  • Consistent Navigation
  • Hints and Quick Guides
  • Standardize, standardize and standardize (Reuse, Reuse, Reuse)
  • Use keyboard shortcuts if appropriate. e.g. Enter key for search ui buttons.