Get started
The Data Upload Design Kit is available as a plugin that can be installed into the GOV.UK Prototype Kit.

It offers a set of ready-made templates for creating a simple data upload journey for users. This means that the often time-consuming and difficult task of collecting vast amounts of data from different people can be managed in a matter of minutes.
Templates are fully customisable and all components and patterns are compatible with the GOV.UK Design System.
How to install it
To start using this plugin, it first needs to be installed onto your machine. It can be installed directly into the GOV.UK Prototype Kit.
Open up your preferred command line, which you previously used to create a GOV.UK Prototype, and type the following:
npm install 'https://gitpkg.vercel.app/register-dynamics/data-import/lib/importer?main'
After running this command new routes will automatically be added
to your prototype’s app/routes.js
file. You will then need to
configure the plugin, which can be done by editing the
app/config.json
to look something like the following, replacing
the fields with the headings for the data you are interested in.
{ "serviceName": "Your service name", "fields": [ "Code", "Name", "Speciality" ] }
You are now ready to use the Data Upload Design Kit. Run the GOV.UK Prototype Kit and visit the internal documentation (which you will be able to view whilst logged into the GOV.UK Prototype Kit) to get started using the Data Upload Design Kit.
Link your data submission pages together
Each page you create from a template needs to be linked to the next page in the user journey. The GOV.UK Prototype Kit documentation explains how to link simple pages together.
The Data Upload Design Kit templates where the user uploads data,
chooses a worksheet, selects headers or footers, or identifies
columns use a <form>
tag to link pages
together. The
action
on the <form>
tag
contains a special value that allows the data the user has
submitted to be processed before sending them to the next page.
For each page you create from one of the templates:
- Open the page that you just created
- Find the line with the
<form>
tag which has anaction
attribute that looks likeaction="{{importerSomethingPath('/next-page')}}"
- Change the path in the single quotes to be the next page the user should go to
For example, if you have just created a page from the Upload a file
template and want the
next page to be /my-custom-page
, change the
<form>
tag in your new page to be:
<form action="{{importerUploadPath('/my-custom-page')}}" method="POST" enctype="multipart/form-data">
Alternatively, use the default names for data submission pages which will link to them from the previous page without any required changes.
Template | Default name |
---|---|
Upload a file | /upload |
Select a worksheet | /select_sheet |
Select header rows | /select_header_row |
Select footer rows | /select_footer_row |
Identify your columns | /mapping |
Review your data | /review |
Upload complete | /success |