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 |
Outgoing Mobility Learning Agreements | ✔️ | 1 |
Outgoing Mobility CNR | ✔️ | 1 |
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 |
Outgoing Mobility Learning Agreements | ✔️ | 1 |
Outgoing Mobility CNR | ✔️ | 1 |
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.