Skip to content

DFE-Digital/itt-mentor-services

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ITT mentor services

View performance data on Skylight

This application has two main services:

  • Claim funding for mentor training: A service for placement partners to claim funding for their general mentors’ training.
  • Manage school placements: A service for training providers and placement partners to manage their mentors and placements.

Live Environments

Claim funding for mentor training

Name URL Purpose AKS Namespace
Production www Public site bat-production
Sandbox sandbox Demo environment for end-users bat-production
Staging staging For internal use by DfE for testing - Production-like environment bat-staging
QA qa For internal use by DfE for testing - Automatically deployed from main bat-qa

Manage school placements

Name URL Purpose AKS Namespace
Production www Public site bat-production
Sandbox sandbox Demo environment for end-users bat-production
Staging staging For internal use by DfE for testing - Production-like environment bat-staging
QA qa For internal use by DfE for testing - Automatically deployed from main bat-qa

Setup

Prerequisites

This project depends on:

asdf

Most dependencies are defined in the .tool-versions file and can be installed using asdf (or a compatible alternative like mise).

To install them with asdf, run:

# The first time
brew install asdf # Mac-specific
asdf plugin add nodejs
asdf plugin add ruby
asdf plugin add yarn
asdf plugin add azure-cli
asdf plugin add jq
asdf plugin add kubectl
asdf plugin add kubelogin
asdf plugin add python
asdf plugin add terraform

# To install (or update, following a change to .tool-versions)
asdf install

Homebrew

You'll also need a few packages which asdf either doesn't have plugins for, or it can't reliably install them. For example, for some reason asdf installs cmake as an unsigned binary so it won't run on macOS.

Install them using Homebrew:

brew bundle

This will install the packages listed in Brewfile.

Finally, you will need a running Postgres 16 server. You can install it with Homebrew by running:

brew install postgresql@16

or you may prefer to use Postgres.app, Docker, or some other installation method.

Linting

To run the linters:

bin/lint

How the application works

We keep track of architecture decisions in Architecture Decision Records (ADRs).

We use rladr to generate the boilerplate for new records:

bin/bundle exec rladr new title

GOV.UK Notify

The application requires you to add your API key for GOVUK_NOTIFY_API_KEY, to gain access to this service ask your team lead to invite you to GOV.UK Notify.

Once you have access, navigate to API integration -> API Keys -> Create an API Key

Name your key in a sensible and identifiable way, e.g. [YOUR-NAME] Local Test Key and set the type of key to Test.

Create your key and then add it to .env.test and .env.development where it says GOVUK_NOTIFY_API_KEY=.

Running the app

To run the application locally:

  1. Run yarn to install dependencies for the web app to run
  2. Run bin/setup to setup the database
  3. Run bin/dev to launch the app on http://placements.localhost:3000 or http://claims.localhost:3000

Seed Data

To run the seed data to generate the following:

  • Persona
    • Anne Wilson - School
    • Patricia Adebayo - University
    • Mary Lawson - Multi-org
    • Colin Chapman - Support
  bin/bundle exec rails db:seed