The project now moved over to Gitlab.com : https://gitlab.com/thundercat-transition/project-thundercat
Please join us there!
This application is a collaboration between Code for Canada (Cohort 2 Fellowship) and the Public Service Commission of Canada (PSC). It is called the Competency Assessment Tool (CAT) or Outil d’évaluation des compétences (OEC), and is a platform to host the Electronic Managerial Inbox (eMIB), as assessment developed by the Public Service Commission to assess managerial candidates in the federal government. For more about the project please visit the project updates blog.
This application introduced a new tech stack for the PSC. It has a ReactJS front-end, Django back-end, and PostgreSQL DB. It uses Docker containers and Nginx as a web proxy.
- Follow our setup guide to configure your workstation.
- Clone the repository using git.
docker-compose up
to build the application if you have not done so already- Open your browser to http://localhost:80/.
To see a list of all build commands, run docker
from the repository root or see our notes-on-docker.
All changes to the application (no matter how small) require a pull request, with a filled out description (there's a template), passing CI runs, and at least one approval code review approval from a team member. Sometimes a designer or PM review is also required.
Want to contribute? Please email Caley Brock, the Code for Canada Development Fellow at the Public Service Commission, at caley@codefor.ca.
Note: After August 2019, this project will transfer ownership to the PSC, and the repository under code-for-canada with no longer be updated.
Here's a quick overview of the major landmarks:
The Django application that manages data and requests through REST APIs. Urls starting with /api/
are sent to the backend. A tool called Swagger UI has been introduced to this project in order to see and manipulate the available APIs that the backend supports.
The backend is responsible for the direct interaction with PostgreSQL, data model definition, migrations, and API logic for
- user management (candidates and admins) and sessions
- test definitions (ie versions of test type eMIB) and test security
- user test results
The ReactJS application that users will see. It uses the Airbnb Styleguide. It will get built into a static package that we serve through nginx in production. We are using a combination of React-Bootstrap, Aurora Design System, and custom PSC-specific styles for our components. It is localized into French and English and is in development to meet accessibility standards.
The frontend includes components, logic, and API interaction for:
- a home page for logged in an logged out users (/)
- a status page (/status)
- a public facing sample eMIB test (/emib-sample)
- tools for candidates and administrators in real test sessions (/dashboard)
- SETUP: Instructions to get everything up and running.
- TESTING: How to be sure nothing broke.
- LICENSE: MIT
- Docker Setup - diagrams explaining the container setup
- There are many more topical guides in the docs folder.
- In addition, several sections of the repository have their own documentation:
This product was built to be capable of running in the following environment, where candidates are tested.
- Internet Explorer 10 or later
- JavaScript enabled
- Secure Socket Layer (SSL) encryption enabled
- Screen resolution must be set to a minimum of 1024 x 768
- Full-screen mode enabled
- Copy + paste functionality enabled
- Accessibility functionality available to users
- IE Internet Options > Colours enabled to users
- IE Internet Options > Fonts enabled to users
- IE Internet Options > Accessibility enabled to users
Each pull request runs all tests via Travis, scans all packages via Snyk, and deploys the frontend to a review app via Heroku.
Note: Heroku disabled as of June 2019.