Angular frontend and Spring Boot backend proxy for the Chemical Translation Service (CTS). Allows users to convert chemical identifiers (InChIKey, SMILES, CAS, etc.) between formats via single or batch conversion.
- Java 17+
- Maven 3.6+
- Node.js 18+ and npm 10+
ctsproxy/
├── casetojson/ # CAS-to-JSON utility library
├── ctsclient/ # CTS REST client library
├── web/
│ ├── src/main/scala/ # Spring Boot backend (Scala)
│ ├── src/main/resources/application.yml
│ └── frontend/ # Angular 21 frontend
└── pom.xml # Parent Maven POM
From the project root, install the shared libraries:
mvn clean install -pl casetojson,ctsclientmvn spring-boot:run -pl webThis starts the Spring Boot server on http://localhost:8080. It proxies requests to the upstream CTS service configured in web/src/main/resources/application.yml.
cd web/frontend
npm install
npm startThis runs ng serve on http://localhost:4200 with a dev proxy that forwards /rest and /service requests to http://localhost:8080 (configured in web/frontend/proxy.conf.json).
# Frontend tests
cd web/frontend
npm test
# Backend tests
mvn testmvn clean installThis builds the full application including the Angular frontend, which gets packaged into the Spring Boot JAR.
- Push image to repo
- SSH to swarm manager node
- Pull image from repo
- Update the service:
docker service update --force cts_ctsproxy- Diego - backend and frontend