mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-10 13:23:40 -05:00
We have decided to use NVM to manage installed Node versions locally and in CI to ensure they match and produce consistent builds. Running `nvm install` will install the Node version specified in the `.nvmrc` file. This is now consistent with Document Download Frontend. See: alphagov/document-download-frontend#114 Signed-off-by: Richard Baker <richard.baker@digital.cabinet-office.gov.uk>
84 lines
2.1 KiB
Markdown
84 lines
2.1 KiB
Markdown
# notifications-admin
|
|
|
|
GOV.UK Notify admin application - https://www.notifications.service.gov.uk/
|
|
|
|
- Register and manage users
|
|
- Create and manage services
|
|
- Send batch emails and SMS by uploading a CSV
|
|
- Show history of notifications
|
|
|
|
## Setting up
|
|
|
|
### Python version
|
|
|
|
At the moment we run Python 3.9 in production.
|
|
|
|
### NodeJS & NPM
|
|
|
|
If you don't have NodeJS on your system, install it with homebrew.
|
|
|
|
```shell
|
|
brew install node
|
|
```
|
|
|
|
`nvm` is a tool for managing different versions of NodeJS. Follow [the guidance on nvm's github repository](https://github.com/nvm-sh/nvm#installing-and-updating) to install it.
|
|
|
|
Once installed, run the following to switch to the version of NodeJS for this project. If you don't
|
|
have that version, it should tell you how to install it.
|
|
|
|
```shell
|
|
nvm use
|
|
```
|
|
|
|
### `environment.sh`
|
|
|
|
In the root directory of the application, run:
|
|
|
|
```
|
|
echo "
|
|
export NOTIFY_ENVIRONMENT='development'
|
|
export FLASK_APP=application.py
|
|
export FLASK_ENV=development
|
|
export WERKZEUG_DEBUG_PIN=off
|
|
"> environment.sh
|
|
```
|
|
|
|
### AWS credentials
|
|
|
|
To run parts of the app, such as uploading letters, you will need appropriate AWS credentials. See the [Wiki](https://github.com/alphagov/notifications-manuals/wiki/aws-accounts#how-to-set-up-local-development) for more details.
|
|
|
|
## To run the application
|
|
|
|
```shell
|
|
# install dependencies, etc.
|
|
make bootstrap
|
|
|
|
# run the web app
|
|
make run-flask
|
|
```
|
|
|
|
Then visit [localhost:6012](http://localhost:6012).
|
|
|
|
Any Python code changes you make should be picked up automatically in development. If you're developing JavaScript code, run `npm run watch` to achieve the same.
|
|
|
|
## To test the application
|
|
|
|
```
|
|
# install dependencies, etc.
|
|
make bootstrap
|
|
|
|
# run all the tests
|
|
make test
|
|
|
|
# continuously run js tests
|
|
npm run test-watch
|
|
```
|
|
|
|
To run a specific JavaScript test, you'll need to copy the full command from `package.json`.
|
|
|
|
## Further docs
|
|
|
|
- [Working with static assets](docs/static-assets.md)
|
|
- [JavaScript documentation](https://github.com/alphagov/notifications-manuals/wiki/JavaScript-Documentation)
|
|
- [Updating dependencies](https://github.com/alphagov/notifications-manuals/wiki/Dependencies)
|