Skip to main content Link Search Menu Expand Document (external link)

The MOJ form builder is made using the following components.

Components:

The Editor Component

Definition

The Editor component allows a user to create and edit a form, for example by adding or deleting pages or questions.

User need

As a form builder, I need to be able to create new forms / services. As a form builder, I need to be able to make changes to my forms / services.

Technical stack

  • Ruby on Rails application with custom javascript frontend
  • A gem is used that presents the metadata as the online form
  • The same gem is used in both the Editor and Runner
  • All form data is passed to the Metadata DB
  • Makes sure the Metadata conforms to a published schema
  • Access is authorised using Auth0 against MOJ AD (MS and Google)
  • Hosted in MOJ’s Cloud Platform

GitHub repo

https://github.com/ministryofjustice/fb-editor

The Runner Component

Definition

The Runner is the application that is running the ready form.

User need

As a member of the public / MOJ employee, I want to be able to access the Justice services that I require.

Technical components used:

  • Ruby on Rails and uses a gem that presents the metadata as the online form
  • The same gem is used in both the Editor and Runner
  • Runner is published into a either test or production environment fully connected to the backend services with the configured URL (within the Justice domain)
  • The Runner can be configured to meet the service requirements
  • Hosted in MOJ’s Cloud Platform

GitHub repo

https://github.com/ministryofjustice/fb-runner

The Publisher Component

Definition

The Publisher application allows teams to publish forms in test or production environments.

User need

As a form builder / digital team, I want to publish and make the form available either in test or production environments

Technical components

  • Ruby on Rails and part of the Editor
  • Creates a new Runner with configuration in either test or production environment
  • Creates connection to the backend services with the configured URL (within the Justice domain)
  • Hosted in MOJ’s Cloud Platform

GitHub repo

https://github.com/ministryofjustice/fb-publisher

The Metadata Component

Definition

The Metadata component allows storage of the form metadata and using the Metadata API

User need

As a form builder, I need to be able to create and edit forms, including accessing the right forms that I own

Technical components used:

  • Rails application
  • Postgres DB
  • Checks the json file against the schema
  • Manages versioning

Github repo

  • https://github.com/ministryofjustice/fb-metadata-api
  • https://github.com/ministryofjustice/fb-metadata-presenter
  • https://ministryofjustice.github.io/form-builder-metadata-api-docs/

The Submitter Component

Definition

The Submitter processes the data submitted when a form is completed so end users have their service request completed.

User need / value

As a member of the public / MOJ employee, I need to be able to provide government with the information that they need to process my service request.

Technical components used:

  • Rails application
  • Orgrestrates creating PDF, CSV and sending via email or API endpoint
  • Built in queue

Github repo

https://github.com/ministryofjustice/fb-submitter