This project is still early in development. Therefore, until the first major version is released, non-backward changes may be introduced.
| API | Supported? | Major Versions Supported |
|---|---|---|
| Discovery Manifest | ✔️ | 6 |
| Echo | ✔️ | 2 |
| Institutions | ✔️ | 2 |
| Organizational Units | ✔️ | 2 |
| Courses | ✔️ | 0 |
| Simple Course Replication | ✔️ | 1 |
| Files | ✔️ | 1 |
| Interinstitutional Agreements | ✔️ | 7 |
| Interinstitutional Agreements CNR | ✔️ | 3 |
| Interinstitutional Approval | ✔️ | 2 |
| Interinstitutional Approval CNR | ✔️ | 2 |
| Mobility Factsheet | ✔️ | 1 |
| Outgoing Mobilities | ✔️ | 2 & 3 |
| Outgoing Mobility Learning Agreements | ✔️ | 1 |
| Outgoing Mobility CNR | ✔️ | 1 & 2 |
| Outgoing Mobility Learning Agreement CNR | ✔️ | 1 |
| Incoming Mobilities | ✔️ | 1 |
| Incoming Mobility CNR | ✔️ | 1 |
| Incoming Mobility ToR | ✔️ | 1 & 2 |
| Incoming Mobility ToR CNR | ✔️ | 1 |
| API | Supported? | Major Versions Supported |
|---|---|---|
| Institutions | ✔️ | 2 |
| Organizational Units | ✔️ | 2 |
| Courses | ✔️ | 0 |
| Simple Course Replication | ✔️ | 1 |
| Files | ✔️ | 1 |
| Interinstitutional Agreements | ✔️ | 7 |
| Interinstitutional Agreements CNR | ✔️ | 3 |
| Interinstitutional Approval | ✔️ | 2 |
| Interinstitutional Approval CNR | ✔️ | 2 |
| Mobility Factsheet | ✔️ | 1 |
| Outgoing Mobilities | ✔️ | 2 & 3 |
| Outgoing Mobility Learning Agreements | ✔️ | 1 |
| Outgoing Mobility CNR | ✔️ | 1 & 2 |
| Outgoing Mobility Learning Agreement CNR | ✔️ | 1 |
| Incoming Mobilities | ✔️ | 1 |
| Incoming Mobility CNR | ✔️ | 1 |
| Incoming Mobility ToR | ✔️ | 1 & 2 |
| Incoming Mobility ToR CNR | ✔️ | 1 |
To clone and run this project, you'll need Git and, depending on your preference, Maven or Docker.
To clone the project run:
git clone --recursive https://github.com/ULisboa/ewp-node
Note the --recursive flag that is needed so the external dependencies configured as submodules are also cloned.
-
Import the project backend on an IDE (e.g. Intellij IDEA);
-
Execute the class pt.ulisboa.ewp.node.EwpNodeApplication
- Recommended: To use a development profile, pass a VM argument:
-Dspring.profiles.active=dev
Refer to the Development documentation.
Run the command line:
docker build -t ulisboa/ewp-node .
Write into a docker-compose.yml file (check the section Docker Image Parameters for reference):
---
version: "2.1"
services:
ewp-node:
image: ulisboa/ewp-node
container_name: ewp-node
volumes:
- <path to config folder>:/config
- <path to logs folder>:/logs # Optional
- <path to plugins folder>:/plugins # Optional
ports:
- 8080:8080
healthcheck:
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "--no-check-certificate", "http://localhost:8080/rest/healthcheck"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
restart: unless-stopped
Then run on the folder containing that file:
docker-compose up -d
Notes:
- If SSL is enabled then every reference in the docker-compose.yml file to port 8080 must be changed accordingly, including changing "http" to "https" on the healthcheck test command;
- This configuration can be adapted to run on Docker Swarm.
Container images are configured using parameters passed at runtime.
These parameters are separated by a colon and indicate <external>:<internal> respectively.
For example, -p 80:8080 would expose port 8080 from inside the container to be accessible
from the host's IP on port 80 outside the container.
| Parameter | Function |
|---|---|
-p 8080 |
Port used by the server |
-p 8443 |
Port used by the server (if SSL is enabled) |
-v /config |
Path from where the server will read the configuration when starting. Namely, it expects a file application.yml with the same structure as src/main/resources/application.yml (check this file for an example as well documentation on it). |
-v /logs |
Path where the server will store the logs. |
-v /plugins |
Path where the server will store the plugins. |
When the project is running, the endpoint http://localhost:8080/swagger-ui.html will provide an interface to the APIs automatic documentation.
More documentation is available on the folder docs/.
This project is licensed under the terms of the MIT license.

