This is the code for the implementation of Crown Commercial Service's (CCS) Agreements Service API, used by various downstream applications.
The specification for the API can be found in the Open API Specification.
The project is implemented as a Spring Boot 3 web application, implemented using Maven.
The core technologies for the project are:
- Java 23
- Spring Boot
- Spring Security
- Ehcache for caching
- MapStruct for entity mapping
- JUnit for unit testing
To run the application locally, you simply need to run the core ccs-scale-agreements-service module.
You will need to be supplied with a several environment variables to enable the project to run, which can be supplied by any member of the development team.
You will also need to setup a local database named "agreements" in order to run the service locally. Scripts to setup the database for you are located in the following two repos CCS Scale DB Scripts and CCS Scale DB Scripts Data.
Once the application has started it can be accessed via Postman using the URL http://localhost:9010/agreements-service.
When picking up tickets, branches should be created using the feature/* format.
When completed, these branches should be pull requested against develop for review and approval. develop is then built out onto the Development environment.
The Pre-Production environment is controlled via means of release and hotfix branches.
Release branches should be created from develop using the release/* format, whilst hotfixes should be created from main using the hotfix/* format. These branches can then be built out to Pre-Production as appropriate.
When releases/hotfixes are ready for deployment to Production, the release/* or hotfix/* branch in question should be pull requested against the main branch for review and approval. This branch should then be built out to Production.
Once a release/hotfix has been completed you should be sure to merge main back down into develop.