First Steps

What is Hub?#

Hub is a collection of web applications, viewed as a single web site, and owned by multiple development teams. The applications are all displayed within the Hub Shell.

Hub allows users to manage a business's core functions and many of their products. Providing various back-office operations, Hub is tailored based on the iQmetrix products the clients use and is a center for configuration.

All Hub apps are hosted in Azure on a single app server. Most Hub apps have their build and deploy through Azure Pipelines, with a small portion still using TeamCity.

Manual Validation#

Hub and the apps are deployed across three environments: Integration, Release Candidate, and Production. You can view Hub in each environment with the following links. Sign in with your iQmetrix Active Directory credentials or a company user's test credentials.

  • INT: This is the integration environment. Your CI/CD will automatically deploy any commits to the main repository branch to INT.
  • RC: This is the release candidate environment. RC is used to test applications before production and for client demos. You will need to manually trigger deploying to RC and have a Change Management ticket before doing so.
  • PROD: This is the production environment. Prod is the client-facing instance of Hub. You will need to manually trigger deploying to Prod and have a Change Management ticket before doing so.

Frameworks and Libraries#

Hub v1#

Hub v1 uses Backbone and Marionette as an application framework. These applications are written in JavaScript ES6, with some exceptions writing in TypeScript. It is still supported but is outdated, and it is not recommended to start any new project using Hub v1. It uses Bower as the package manager (which is deprecated), and there is not yet full support for NPM package use at run-time.

Hub v2#

Hub v2 is deprecated and should not be used for any new project. Hub v2 uses Aurelia and the ducks pattern (using a Redux and RxJS implementation) to develop applications. Only a few apps use Hub v2, including the Hub Shell. These applications will be migrated to React in the future.

React#

React is used to create new Hub applications. It is recommended you use TypeScript (TSX), but JavaScript (JSX) can be used if prefered. frontend-packages contains a collection of scripts, components, functions and templates to support the use of React.

Services#

Hub applications are frontends for many services. It is recommended to use the Backend for Frontend (BFF) pattern between your core feature service and Hub application.

For best practices related to developing services, refer to product-excellence.

Next Steps#

Last updated on by Garrett Smith