Our public-facing websites are:
- A product page explaining the benefits of GovWifi
- An admin platform for organiations to self-serve changes to their GovWifi installation
- Technical documentation, explaining GovWifi in more detail
- A redirection service to handle “www” requests to these sites
Our services include: - Frontend servers, instances of freeRADIUS that act as authentication servers
- An authentication API, which the frontend calls to help authenticate GovWifi requests
- A logging API, which the frontend calls to record each GovWifi request
- A user signup API, which handles incoming sign-up texts and e-mails (with a little help from AWS)
We manage our infrastructure via:
- Terraform, see govwifi-terraform
- The safe restarter, which uses a CanaryRelease strategy to increase the stability of the frontends
- Acceptance tests, which pulls together GovWifi end-to-end, from the various repositories, and runs tests against it.
Get started developing with Govwifi applications
To get started you’ll need Ruby installed on your system. We recommend using a Ruby version manager like rbenv which will allow you to install the correct version of Ruby for Govwifi projects.
Building a development / test environment
Each Govwifi application Github repository contains a README detailing how to build a development environment for running tests and making local changes.
Bug and feature workflow
Please read the GDS Git styleguide which details how your code commits should be structured.
Once you’re happy with your changes locally, submit a pull request, if possible include a reference in the description to the original details (eg. a link to the Trello story), explain what the pull request does, include screenshots if applicable.
Pull requests are linted and tests are run on Concourse CI, the resulting status is shown on the PR.
Once everything is green on CI, you can ask a team member to review your PR.
Merging and deploying changes
Once approved and merged your PR is automatically built and deployed to our staging environment where you can perform further acceptance testing. After that deploying to production is a manual step in Concourse CI.