/smart-answers

Serves smart answers on GOV.UK

Primary LanguageRubyMIT LicenseMIT

Smart Answers

A tool for content designers to present complex information as a flow of questions, leading to an outcome. While the app is mostly self-contained, some Smart Answers use Whitehall to get data on countries and worldwide organisations.

Live examples

Nomenclature

  • Smart Answer: The flow, questions and outcomes.

  • Flow: Defines the questions, outcomes and the rules for navigating between them.

  • Landing page: Contains a description of the Smart Answer and the "Start now" button that leads to the first question.

  • Question page: Contains an individual question that's asked in order to help arrive at an outcome.

  • Outcome page: Contains the result of the Smart Answer based on responses to individual questions.

Technical documentation

This is a Ruby on Rails app, and should follow our Rails app conventions.

You can use the GOV.UK Docker environment or run ./startup.sh --live script to run the app. Read the guidance on local frontend development to find out more about each approach, before you get started.

If working on a smart answer that makes use of an API, locally run ./startup.sh --live script to run the app instead of docker.

If you are using GOV.UK Docker, remember to combine it with the commands that follow. See the GOV.UK Docker usage instructions for examples.

Running the test suite

bundle exec rake

Troubleshooting

  • When running integration tests, if you get SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version <some version number> error, then:
    • run brew install chromedriver or if you already have the cask, brew upgrade chromedriver
    • if that doesn't work, install the correct Chrome driver into usr/local/bin
  • When running bundle exec rake, if you get rake aborted! LoadError: linked to incompatible <some libruby or gem link>, run gem pristine --all

Smart Answer design

Smart Answer tasks

Further guidance is available in docs/tasks.

Further documentation

Licence

MIT License