Giter VIP home page Giter VIP logo

forms-runner's People

Contributors

0atman avatar alice-carr avatar aliuk2012 avatar danielburnley avatar danworth avatar davidbiddle avatar dependabot[bot] avatar hannahkc avatar james-sheppard-gov-uk avatar samjamcul avatar thomasiles avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

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

forms-runner's Issues

Apache Bench results

❯ ab -n 10000 -c 100 https://submit.staging.forms.service.gov.uk/preview-form/2/apply-for-a-pet-license/2
This is ApacheBench, Version 2.3 <$Revision: 1879490 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking submit.staging.forms.service.gov.uk (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests


Server Software:        
Server Hostname:        submit.staging.forms.service.gov.uk
Server Port:            443
SSL/TLS Protocol:       TLSv1.2,ECDHE-RSA-AES128-GCM-SHA256,2048,128
Server Temp Key:        X25519 253 bits
TLS Server Name:        submit.staging.forms.service.gov.uk


Concurrency Level:      100
Time taken for tests:   119.771 seconds
Complete requests:      10000
Failed requests:        6096
   (Connect: 0, Receive: 0, Length: 6096, Exceptions: 0)
Non-2xx responses:      6096
Total transferred:      92587914 bytes
HTML transferred:       81758564 bytes
Requests per second:    83.49 [#/sec] (mean)
Time per request:       1197.714 [ms] (mean)
Time per request:       11.977 [ms] (mean, across all concurrent requests)
Transfer rate:          754.92 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        9   86  69.8     75     339
Processing:     2 1095 1310.7     75    3604
Waiting:        2 1090 1314.4     62    3604
Total:         13 1181 1254.4    197    3617

Percentage of the requests served within a certain time (ms)
  50%    197
  66%   2421
  75%   2574
  80%   2674
  90%   2927
  95%   3054
  98%   3179
  99%   3358
 100%   3617 (longest request)
``

Fix asset rendering bug

Currently the govuk-frontend assets (most noticeably the GDS Transport font) aren't being compiled by the asset build. This means that the fonts and assets will load correctly on a local machine, but return 404s on the dev server.

Configure Frontend build

This should include anything we're likely to need in both forms-admin and forms-runner, but not anything more specific. We already have a default Rollup build but this may also need a but of configuring.

This should include:

  • babel for transpiling
  • a browserslist configuration (start with a sensible default, we will adjust this later once we have a better idea of our user stats)
  • jest for unit testing
  • cypress for end-to-end testing
  • style and js linting
  • autoprefixer
  • dart-sass instead of ruby-sass
  • install govuk-frontend
  • style and js formatting

Allow form completers to check and change their answers

  • The user can see a summary of their answers and the questions they relate to
  • The user can click on the "change" link to the side and be taken to the page
  • Having clicked on the "change" link, the "back" button in the page takes them back to the check your answers page
  • When submitting updated information, they're redirected back to the check your answers page

Add Sentry

We want to use sentry for exception tracking, we will need to set up a sentry account and ensure the service can send exceptions correctly

Add friendly error pages

This should include:
404 for page not found
500 for unexpected errors
Service unavailable (in case we need to take the service down temporarily)
Notify error (special case of the 500 error with some extra text about the submission failing)

Prevent search indexing

We need to prevent search indexing so that users don't accidentally access the form pages directly - see Ensure users start their journey on GOV.UK in the Service Manual. We can either do this with a meta tag in the view or by adding the X-Robots-Tag HTTP header.

We want this to apply to all pages on the runner. Adding the header in AppliccationController will probably make require less maintenance in the long run, as we are marginally more likely to add new layouts than we are to add new controllers that don't inherit from this one.

Add basic analytics events

Trello card: https://trello.com/c/d9eXIVLO/438-ensure-minimum-user-insight-events-are-being-tracked-in-logs

Add entries to the logs for some core user journey events. To start, log when a user:

  • Visits the root form URL
  • Saves the first page of a form
  • Saves subsequent pages of the form
  • Hits the Change Your Answers page
  • Changes an answer (i.e. saves a page after going back from the Change links on the Change Your Answers page
  • Submits the form

The logged information will be:

  • event name
  • request URL
  • HTTP method
  • form name
  • question text (if saving an answer to a question)
  • user agent string

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.