Skip to content

quis/notifications-admin

 
 

Repository files navigation

Requirements Status Coverage Status

notifications-admin

GOV.UK Notify admin application.

Features of this application

  • Register and manage users
  • Create and manage services
  • Send batch emails and SMS by uploading a CSV
  • Show history of notifications

First-time setup

Brew is a package manager for OSX. The following command installs brew:

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Languages needed

  • Python 3.4
  • Node 10.15.3 or greater
  • npm 6.4.1 or greater
    brew install node

NPM is Node's package management tool. n is a tool for managing different versions of Node. The following installs n and uses the long term support (LTS) version of Node.

    npm install -g n
    n lts
    npm rebuild node-sass

The app runs within a virtual environment. We use mkvirtualenv for easier working with venvs

    pip install virtualenvwrapper
    mkvirtualenv -p /usr/local/bin/python3 notifications-admin

Install dependencies and build the frontend assets:

    workon notifications-admin
    ./scripts/bootstrap.sh

Rebuilding the frontend assets

If you want the front end assets to re-compile on changes, leave this running in a separate terminal from the app

    npm run watch

Create a local environment.sh file containing the following:

echo "
export NOTIFY_ENVIRONMENT='development'
export FLASK_APP=application.py
export FLASK_DEBUG=1
export WERKZEUG_DEBUG_PIN=off
"> environment.sh

AWS credentials

Your aws credentials should be stored in a folder located at ~/.aws. Follow Amazon's instructions for storing them correctly

Running the application

    workon notifications-admin
    ./scripts/run_app.sh

Then visit localhost:6012

Updating application dependencies

requirements.txt file is generated from the requirements-app.txt in order to pin versions of all nested dependencies. If requirements-app.txt has been changed (or we want to update the unpinned nested dependencies) requirements.txt should be regenerated with

make freeze-requirements

requirements.txt should be committed alongside requirements-app.txt changes.

Working with static assets

When running locally static assets are served by Flask at http://localhost:6012/static/…

When running on preview, staging and production there’s a bit more to it:

notify-static-after

About

GOV.UK Notify frontend application

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 68.9%
  • HTML 16.5%
  • JavaScript 11.5%
  • CSS 2.5%
  • Makefile 0.3%
  • Shell 0.2%
  • Dockerfile 0.1%