This is a Scala/Play frontend web UI that provides screens for an existing SA Individual to voluntarily subscribe to report their income from one or more of
- Single Sole-Trader (self-employed) business
- UK Property income
- Overseas Property income
...on a quarterly basis and move away from the yearly Self-Assessment Tax Return.
- sbt
- MongoDB (See Persistence)
- HMRC Service manager (Install Service-Manager)
Run the service with ITSA_SUBSC_ALL
:
./scripts/start
Run the service with mininal downstreams:
./scripts/start --minimal
There are two main flows:
- Agent sign up
- Individual sign up
See Route files for more information.
- Login via: http://localhost:9949/auth-login-stub/gg-sign-in
- Entry page: http://localhost:9561/report-quarterly/income-and-expenses/sign-up
- Feature switches: http://localhost:9561/report-quarterly/income-and-expenses/sign-up/test-only/feature-switch
- Stub users: http://localhost:9561/report-quarterly/income-and-expenses/sign-up/test-only/stub-user
Requires HMRC VPN
- Login via: https://www.staging.tax.service.gov.uk/auth-login-stub/gg-sign-in
- Entry page : https://www.staging.tax.service.gov.uk/report-quarterly/income-and-expenses/sign-up
- Feature switches: https://www.staging.tax.service.gov.uk/report-quarterly/income-and-expenses/sign-up/test-only/feature-switch
In Local and Staging, a stubbing system is used for recording user data. This prevents the display of the success page at report-quarterly/income-and-expenses/sign-up/client/confirmation
as the stubs service will not persist, then provide an mtd itsa ref enrolment.
To work around this, visit the report-quarterly/income-and-expenses/sign-up/test-only/update-enrolments
page, submit, then return to the confirmation page.
- Run unit tests:
sbt clean test
- Run integration tests:
sbt clean it/test
- Run performance tests: provided in the repo income-tax-subscription-performance-tests
- Run acceptance tests: provided in the repo income-tax-subscription-acceptance-tests
Data is stored as key/value in Mongo DB. See json reads/writes implementations (especially tests) for details.
To connect to the mongo db provided by docker (recommended) please use
docker exec -it mongo-db mongosh
Various commands are available. Start with show dbs
to see which databases are populated. Eg
- show dbs
- use
- show tables
- db[''].countDocuments()
- db[''].find()
- exit
This code is open source software licensed under the Apache 2.0 License