Web Framework

Add your comments directly to the page. Include links to any relevant research, data, or feedback.

Background

GOBii needs to identify and implement a web framework to be used for all future UI work. Old UIs will be gradually transitioned to new framework. The purpose of this decision is to unify and standardize GOBii's UIs

Relevant data

Metrics

RankCriteriaWeight (1 - 3)139

Multi-browser support1Does not support all 3, or external libraries needed to support all 3Has support for all 3 major browsers, but requires code support for eachHas native support for all 3 major browsers, Chrome, FireFox and MS Edge

UI testing framework2Only code testing (unit testing) supportedCan use external library or tool such as SeleniumHas a testing framework

Internationalization and localization1No supportSupports L10n - Localization is the process of adapting internationalized software for a specific region or language by translating text and adding locale-specific componentsSupports i18n - Internationalization is the process of designing a software application so that it can be adapted to various languages and regions without engineering changes
3Security Framework3No security frameworkHas security framework that supports either OAuth or LDAP, the other can be achieved through codeHas security framework that supports OAuth-2 and LDAP

Form validation2No
Yes. Allows client side validation.

Template framework2NoNo, but Templating framework is supported through librariesYes

Latest stable version2More than 5 yearsGreater than 2 years, but less than 5 yearsLess than 2 years
1License3Part open-source, part commercial-Subscribe fully to open-source license

RAD1Code editorSupport for popular RADs such as Eclipse, JetBrainsHas RAD
5Programming language3Not in GOBii stack, and don't have expertise in languageNot in GOBii stack, but have expertise in languageAlready in GOBii stack

Architectural pattern21-tierMVC3-tier
2RESTful API support3No documentation availableStackoverflowPublished manuals and tutorials on developing APIs
6In house experience3need external experience or learnexperience within a sister projectHave in house experience

Compatibility with Deployment Stack2incompatible with current stackcompatible with sister deployment stackcompatible with GOBii deployment stack

Profiling support1no supportcan use other profiling tools or librariescomes with inbuilt profiling tools

Prototype support1no known supportSupported by other prototyping toolsComes with prototyping tools

Caching framework1nonewith extensionshas caching framework






4Visualization/Chart support3Need to program visualizationsCan use popular chart libraries such as D3Come with Charts that are available to use out of the box

Evaluations

Types of frameworks:

  • Backend Framework - 
  • Component based Framework -
  • GWT - 
  • Single Page Framework - 
Framework / CriteriaTypeTotal
ZK framework (Consider only CE)Component based 174 (158)
GWTJavascript Frontend compiled with Java backend.186
JSFComponent based96
AngularJSSingle Page180
AngularSingle Page204
VueSingle Page180
ReactSingle Page180
FlaskBackend192
DjangoBackend168
NodeJSBackend156
Spring MVCBackend192

Evaluations: Round 1

Round 1 evaluation only looks at criteria with weight 3.

Framework / CriteriaTypeLicenseRESTful API supportSecurity FrameworkVisualization/Chart supportProgramming languageIn house experienceTOTAL
ZK frameworkComponent based 9911
929 (23)
GWTJavascript Frontend compiled with Java backend.9993
333
JSFComponent based9111
115
AngularJSSingle Page9993
131
AngularSingle Page9993
939
VueSingle Page9993
131
ReactSingle Page9993
131
FlaskBackend9993
939
DjangoBackend9993
131
NodeJsBackend9993
131
Spring MVCBackend9993
939


Round 2 evaluation only looks at criteria with weight 2.

Framework / CriteriaTypeUI testing supportLatest stable versionForm ValidationTemplate FrameworkArchitectureDeployment StackTotal
ZK frameworkComponent based 399

9

3942 (40)
GWTJavascript Frontend compiled with Java backend.31993934
JSFComponent based33331924
AngularJSSingle Page39993942
AngularSingle Page39993942
VueSingle Page39993942
ReactSingle Page39993942
FlaskBackend393993 (need to check other projects)36
DjangoBackend393993 (need to check other projects)36
NodeJsBackend393393 (need to check other projects)30
Spring MVCBackend39339936


Round 3 evaluation only looks at criteria with weight 1.

Framework / CriteriaTypeRAD

Internationalization

and

Localization

Profiling

Prototype

support

CachingTotal
ZK frameworkComponent based 

3

93193
GWTJavascript Frontend compiled with Java backend.993199
JSFComponent based393193
AngularJSSingle Page393193
AngularSingle Page393193
VueSingle Page393193
ReactSingle Page393193
FlaskBackend393193
DjangoBackend393193
NodeJsBackend393193
Spring MVCBackend393193

Questions

Options considered


Option 1:Option 2:
Description

Pros and cons

(plus)

(minus)

(plus)

(minus)

Estimated cost
LARGE
MEDIUM

Action items

  •  

Outcome