Skip to content

DEFRA/fcp-hello-world

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fcp-hello-world

Core delivery platform Node.js Frontend Template.

Requirements

Node.js

Please install Node.js >= v18 and npm >= v9. You will find it easier to use the Node Version Manager nvm

To use the correct version of Node.js for this application, via nvm:

cd fcp-hello-world
nvm use

Redis

Redis is an in-memory key-value store. Every instance of a service has access to the same Redis key-value store similar to how services might have a database (or MongoDB). All frontend services are given access to a namespaced prefixed that matches the service name. e.g. my-service will have access to everything in Redis that is prefixed with my-service.

Redis has been enabled in newly created services by setting the redis.enabled property to true. If your service does not require a session cache to be shared between instances or if you don't require Redis, you can disable Redis by setting this property to false.

Server-side Caching

We use Catbox for server-side caching. Specifically CatboxRedis, the Redis adapter for CatBox. It is important that in memory caching isn't used for server-side caching as this will cause issues when there is more than one instance of your service running. Server-side caching has been enabled in newly created services by setting the redis.enabled property to true. Please see Redis for more information.

Local Development

Setup

Install application dependencies:

npm install

Development

To run the application in development mode run:

npm run dev

Local JSON API

Whilst the APIs are being developed this app uses a local JSON mock API. To start this locally run:

npm run mockApi

Production

To mimic the application running in production mode locally run:

npm start

Npm scripts

All available Npm scripts can be seen in package.json To view them in your command line run:

npm run

Formatting

Windows prettier issue

If you are having issues with formatting of line breaks on Windows update your global git config by running:

git config --global core.autocrlf false

Docker

Development image

Build:

docker build --target development --no-cache --tag fcp-hello-world:development .

Run:

docker run -p 3000:3000 fcp-hello-world:development

Production image

Build:

docker build --no-cache --tag fcp-hello-world .

Run:

docker run -p 3000:3000 fcp-hello-world

Docker Compose

A local environment with:

  • Localstack for AWS services (S3, SQS)
  • Redis
  • MongoDB
  • This service.
  • A commented out backend example.
docker compose up --build -d

Licence

THIS INFORMATION IS LICENSED UNDER THE CONDITIONS OF THE OPEN GOVERNMENT LICENCE found at:

http://www.nationalarchives.gov.uk/doc/open-government-licence/version/3

The following attribution statement MUST be cited in your products and applications when using this information.

Contains public sector information licensed under the Open Government license v3

About the licence

The Open Government Licence (OGL) was developed by the Controller of Her Majesty's Stationery Office (HMSO) to enable information providers in the public sector to license the use and re-use of their information under a common open licence.

It is designed to encourage use and re-use of information freely and flexibly, with only a few conditions.