A frontend application for HMPPS prison staff to manage and track external prisoner movements.
This service allows prison staff to:
- Record and manage external prisoner movements
- Track prisoner movements in and out of prisons
- View movement history and audit logs
npm ciCreate a copy of the .env.example file:
cp .env.example .envUpdate the environment variables in .env to match your environment.
Using Docker compose:
docker compose pull
docker compose upOr run the application directly:
npm run start:devThe application will be available at http://localhost:3000
npm run buildnpm run test
For local running, start a wiremock instance by:
docker compose -f docker-compose-test.yml upInstall Playwright if it has not been installed previously:
npx playwright installThen run the server in test mode by:
npm run start-feature:dev
npm run int-testOr run tests with the Playwright UI:
npm run int-test-ui
By default, playwright will run in 8 parallel workers. This can be changed by setting the PARALLEL_WORKERS environment variable in your shell (ie, ~/.zshrc or ~/.zprofile).
npm run lint
npm run lint-fixRun npm run swagger-external-movements to pull the latest typedefs from the api backend.
This application is deployed to the Cloud Platform using Helm charts located in helm_deploy/. Environment configurations:
- Dev: values-dev.yaml
- Pre-production: values-preprod.yaml
- Production: values-prod.yaml
├── server/ # Server-side code
│ ├── routes/ # Route controllers and views
│ ├── services/ # Business logic
│ ├── data/ # Data access layer
│ ├── middleware/ # Express middleware
│ └── views/ # Nunjucks templates
├── assets/ # Frontend assets (JS, SCSS, images)
├── integration_tests/ # Playwright integration tests
├── esbuild/ # Build configuration
└── helm_deploy/ # Kubernetes deployment configs
MIT License — see LICENSE for more details.
For issues or questions, contact the HMPPS Digital team.