Skip to main content
Table of contents

Applications overview

Our public-facing websites are:

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:

Other repositories:

  • Acceptance tests, which pulls together GovWifi end-to-end, from the various repositories, and runs tests against it.

Get started developing with Govwifi applications

Govwifi applications are written in Ruby using either Rails and Sinatra web frameworks.

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.

Most of the projects use a combination of Make, Docker and docker-compose to create the necessary containers and seed data for a local development environment.

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.