BC Services Card Self-Service Application

  • Case Studies
Key takeaways

The BC Services Card Self-Service Application was a sprint-with-us initiative initiated by the BC Ministry of Citizen Services in the BC Dev Exchange Labs.  AOT created a complete web-application, deployment, sample code and help content which reduced the time for adopters wishing to prototype BC Services Card integration from days to minutes.

Overview

Working with the BC Ministry of Citizen Services, we designed and built an application to allow broader access to online services across the province by making it easier for public organizations to offer the widely-used BC Services Card, a secure and verified government-issued identity, as a login option for their online services.

The covid-19 pandemic touched down on us here mid-project and highlighted just how reliant we all are on having services available to us online, making this project even more timely and relevant than when we began a few months prior. 

Benefits

Implementing the BC Services Card as a login method benefits the BPS organization by providing a high level of assurance that the user is who they claim, as the BC Services card is verified. 

On another level, the BC citizens using these services benefit by being able to use a safe and easy login method with a card they already carry in their pockets. 

This provision of security for the BPS organization and convenience for the end-users of their applications is a very powerful combination when it comes to online services and our Self-Service application makes it much easier for organizations to adopt this technology. 

Understanding the problem

The BC Services Card login has been available to Broader Public Sector (BPS) organizations to integrate into their applications.

The BC Services Card Self Service application that we built introduces the developer up front in the process and providing them with the tools they need to quickly produce a proof-of-concept or prototype of their application using the BC Services Card for login.

The end-users of this system will be:

  • Developers from Broader Public Sector organizations 
  • Managers and Executives from BPS
  • Ministry staff

The BPS developers will use this system to generate credentials to integrate their organization’s online services with the BC Services Card login option.

The Managers and Executives will be informed and connected to the Ministry staff to provide compliance attestations, should they want to promote their proof of concept to a production environment.

This new self-service approach to development provides developers the ability to connect to an API in a sandbox environment to evaluate the service for their organization before launching into a full-scale implementation. Our user testing showed that by using our self-service wizard, developers can plug-in the returned key and secret into their test project (or one of our supplied sample applications on Github ) , in under 15 minutes. Providing this self-service option to BPS organizations allows users to get on with trying out the service. 

We expect that this shift will enable BPS developers to take steps on their own toward innovation, without risk or commitment, fostering a speedier and much more innovative approach to development than they may have had access to in the past.

Our Approach

User Personas

We knew going into this project that there may be several roles or types of users who would need to use this application. Using personas based on real-life people and their roles, we were able to capture snapshots of each of these users to use as touchstones in our system design. 

Early Adopters

Since this application would primarily be used by developers and managers in the Broader Public Sector, it helped immensely to have a few of these users from different BPS organizations lined up and ready to test with us at intervals along our development path. 

We were able to meet with these individuals to walk through the application process, using wireframe models, prototypes, and later, developed screens to solicit their valuable feedback, which allowed us opportunities to pivot or fine-tune the user experience as part of our development process.

 

Agile methodology

This project was run in sprints, adhering to agile methodology, which allowed us to concentrate on designing and building very quickly and efficiently. Each two-week sprint was given a theme and a goal, and user stories and tasks related to that goal would be prioritized with our Product Owner. Understanding our team’s velocity and workload capacity and spending time up front to estimate the size of each task allowed us to provide accurate assessments of the work we could accomplish each sprint.  

Using the “early and often feedback” approach with our testers and Early Adopters enabled us to adapt the product requirements and quickly pivot the design where necessary to incorporate meaningful feedback into our development iteratively, each sprint. Working this way allowed us to produce an application that most accurately reflects the requirements and preferences voiced by our users.

User Interface Design

The main components to the interface design are:

Project Dashboard

The dashboard is the starting point, where a logged-in user will either:

  1. create a new project,
  2. check the status of a project, or
  3. drill down into an existing project to:
    1. view the configuration,
    2. make changes to their project settings, or 
    3. add project team members to collaborate.

Dev API Wizard

The wizard guides a user through a quick configuration process to receive an API key to use to integrate the BC Services Card login into their proof of concept application.

Development Request Summary

At the end of the wizard, a user is presented with a summary of the values they entered to produce the API Key. 

This summary is persistent and allows a user to easily change their values and resubmit their request to generate a new set of credentials.

Ministry Staff screens

As much as possible, we tried to keep the Staff user dashboard similar to what other end-users see, but, as can be expected, we have incorporated a few more role-based options for these admin users. These features allow Staff users to perform some admin functions like maintaining or updating information in the system and managing the BC Services Card virtual card test accounts that are automatically provided to end-users.

The Solution Approach

The team took a highly agile approach to this project.

Sprint methodology

All development work was to happen in 2 week sprints. All sprint features were to be fully buildable, testable, deployable and releasable at the end of each sprint. The usual Scrum methodology (daily 15 min stand-ups, fortnightly sprint review , backlog grooming, sprint retrospective and sprint planning)  was adopted. 

The sprint team comprised:

  • One backend/fullstack developer
  • One frontend/fullstack developer
  • One Devops engineer
  • One UX designer
  • A Scrummaster/technical architect
  • A product owner from the Ministry

 

Technical stack

The first sprint (sprint 0 or the foundation sprint ) was spent with the team deciding on, and setting up the technical stack, given the constraints and tools available to us, the technical skills and preferences of the team, the BC Dev Lab environment and the technical requirements of the project. 

At the end of this sprint, we had decided on the following technical stack :

  • Front-end  – Javascript framework Vue.js with Vuetify and Vuex
  • Back end – Python and Flask. Postgres database.
  • Devops – Jenkins build, Github repo and triggers, Openshift and Docker deployment,  Patroni database clustering
  • Authentication – Proxied through Keycloak
Release and build strategy

The team decided on a release, branching and build strategy which both aligned with the team goals and that of the Ministry : 

In Summary

Working with our government Product Owner and our Early Adopters, we have brought Broader Public Sector developers a brand new way to produce quick prototypes of the BC Services Card login option integrated with their own organization’s applications. We have also made all of our work on this project open source, you can find it on GitHub here. As we know, rapid prototyping and having the ability to experiment is key to innovation!

Ultimately, as more organizations adopt the BC Services Card as a login option, the convenience and security will be felt by scores of British Columbians. 

This means that, thanks to the solution built by AOT Technologies, more public sector developers will now have easier access to innovate in record time, bringing new value to BPS organizations and citizens across the province.