GithubHelp home page GithubHelp logo

alphagov / feedback Goto Github PK

View Code? Open in Web Editor NEW
16.0 89.0 8.0 4.38 MB

Serves contact pages on GOV.UK

Home Page: https://docs.publishing.service.gov.uk/apps/feedback.html

License: MIT License

Ruby 81.24% JavaScript 3.70% HTML 14.50% Dockerfile 0.32% SCSS 0.24%
govuk-publishing-frontend govuk container

feedback's Introduction

Feedback

This app collects feedback from users via contact forms rendered on GOV.UK. This data is then sent to support-api app to be dealt with.

Live examples

Nomenclature

  • Feedback: All the data received from contact forms is considered to be "feedback" of some form or other and relates to pages published on GOV.UK.
  • Anonymous Contact: Part of the feedback collected by this app is anonymous, when it's submitted via an anonymous contact form.
  • Named Contact: In contrast with the Anonymous Contact feedback, this is submitted via a form that will require you to identify yourself. This data is sent directly to Support API, which passes it on to Zendesk.

Completed Transaction feedback forms

Service Feedback

Most of the /done/completed-transaction pages render a Service Feedback form. An example is: www.gov.uk/done/vehicle-tax.

Assisted Digital Feedback

There are also three assisted digital feedback forms:

Transaction finished

The transaction finished page can be found here: https://www.gov.uk/done/transaction-finished. This doesn’t display a form, just content to inform the user that the transaction is finished.

Where is the data sent?

The Service Feedback form fields also exist within the Assisted Digital Feedback form. They are foundationally the same, but Assisted Digital Feedback has some extra fields.

The Service Feedback form data from both types of form is sent to the Support API. It can be viewed using the Support app within the Feedback Explorer.

In addition to sending some data to the Support API, the data from the other fields (from the Assisted Digital Feedback form) plus some data from hidden fields appended using JS (referrer and javascript_enabled) are written to a Google spreadsheet.

For submitting the Assisted Digital Feedback form, you will need to get the Google API credentials from AWS secrets/integration. To use them locally, create a .dotenv file and write them in:

GOOGLE_PRIVATE_KEY=
GOOGLE_CLIENT_EMAIL=
ASSISTED_DIGITAL_GOOGLE_SPREADSHEET_KEY=

The .env file is listed within the .gitignore file. Do not push the .env file to version control.

Completed transaction feedback forms were previously rendered by the Frontend application. Rendering was moved into this application which enabled the implementation of form validation.

Technical documentation

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

You can use the GOV.UK Docker environment to run the application and its tests with all the necessary dependencies. Follow the usage instructions to get started.

Use GOV.UK Docker to run any commands that follow.

Running the test suite

bundle exec rake

Further documentation

Licence

MIT License

feedback's People

Contributors

alex-ju avatar alexavlonitis avatar alext avatar andysellick avatar ashgds avatar barrucadu avatar benilovj avatar benlovell avatar benthorner avatar cbaines avatar chrisbashton avatar dependabot-preview[bot] avatar dependabot-support avatar dependabot[bot] avatar edwardkerry avatar gclssvglx avatar govuk-ci avatar h-lame avatar injms avatar jamescgds avatar jon-kirwan avatar kevindew avatar kludgekml avatar murilodalri avatar rosa-fox avatar sengi avatar sihugh avatar theseanything avatar thomasleese avatar tijmenb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

feedback's Issues

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependencies.

As a result, Dependabot couldn't update any of your dependencies.

This could have been caused by a git reference having been deleted at the source, by an out-of-sync lockfile, or by a bug in Dependabot.

To help diagnose the issue, please try running bundle update --patch locally. If no errors occur, get in touch and we'll help dig into it.

You can mention @dependabot in the comments below to contact the Dependabot team.

Request Accessible Format form generation over-complex

There's code in the helper for request accessible format that makes the html for for radio button with concealed option from an array in the localisation file. This is hard to test individually (because it contains optional rendering calls in a helper), and is just probably not very idiomatic for rails (this should be nested partials really).

https://github.com/alphagov/feedback/pull/1363/files#diff-6a9293f5dfa8d14e139688969ab5bb3fe70321dddcd67151af4b1352c9422d9aR16-R48

Tech-debt issuse to reduce this to simpler nested partials after release.

Missing empty email address validation

When a user clicks the 'No' button on "Is this page useful?" they get an offer to be emailed a link to the survey.

Screenshot 2021-11-26 at 11 01 14

But if they leave the 'Email address' field empty and click the green 'Send me the survey' button, they don't get an error/hint, just a Thank you message.

Screenshot 2021-11-26 at 11 02 36

On the frontend, the feedback component displays a success message only if status code 200 is returned, which seems to be what is happening when an empty email field is submitted. When server side validation for email address has failed, the response status code should probably be a 400 with an error message attached.


Zendesk ticket where this was reported originally https://govuk.zendesk.com/agent/tickets/4786005

Dependabot couldn't fetch one of your path-based dependencies

Dependabot couldn't fetch one or more of your project's path-based dependencies. To use path-based dependancies with Dependabot, the paths provided must be relative and resolve to a directory included in the project's source code.

The path-based dependencies which couldn't be fetched were: slimmer, gds-api-adapters.

You can mention @dependabot in the comments below to contact the Dependabot team.

Instructions for running

Please could instructions for running this app and then reaching it in a browser be added? Thank you

Rack::Attack needs a better way of alerting us if it's failed or succeeded!

Currently we just have Rack::Attack on the defaultish settings for throttling requests. But that gives us no oversight on when throttling is happening, and we also don't have an alert if the throttling is disabled on startup either by the explicit DISABLE_THROTTLE var being set or by there being no REDIS_URL.

Perhaps the rate-limit state could go into the health check (although that's public, and maybe we don't want to advertise whether the rate-limit is turned on?). We could maybe have a specific rate-limit health check that Smokey can call, using the rate-limit-token as an accessor?

`gds_zendesk` gem is deprecated

What

Remove Zendesk-ticket creation and usage of gds_zendesk gem from the Feedback app.
Use Support API to raise the tickets instead. The /support-tickets endpoint is exposed via GDA API Adapters's .raise_support_ticket.

Bearer token for Support API already exists: https://github.com/alphagov/govuk-helm-charts/blob/e16d6ae3dcfb86d8667cdb3a35d3df9809c1b252/charts/app-config/values-production.yaml#L986-L990

Note, GovukStatsd is deprecated and should be removed as it doesn't do anything.

You will also need to remove ZENDESK_CLIENT_USERNAME and ZENDESK_CLIENT_PASSWORD from app's environment variables in helm-charts.

Why

We want to consolidate onto one centralised way of raising support tickets. This will minimise the maintenance overhead if we ever switch away from Zendesk (rumoured to be happening in 2024).

Related

Dependabot couldn't fetch one of your path-based dependencies

Dependabot couldn't fetch one or more of your project's path-based dependencies. To use path-based dependancies with Dependabot, the paths provided must be relative and resolve to a directory included in the project's source code.

The path-based dependencies which couldn't be fetched were: slimmer, gds-api-adapters.

You can mention @dependabot in the comments below to contact the Dependabot team.

Dependabot couldn't fetch one of your path-based dependencies

Dependabot couldn't fetch one or more of your project's path-based dependencies. To use path-based dependancies with Dependabot, the paths provided must be relative and resolve to a directory included in the project's source code.

The path-based dependencies which couldn't be fetched were: slimmer, gds-api-adapters.

You can mention @dependabot in the comments below to contact the Dependabot team.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.