Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • xkabour/pa165-airport-manager
1 result
Show changes
Commits on Source (6)
# HR Service
HR_DB_USER=postgres
HR_DB_PASS=123
HR_DB_NAME=hr
HR_SERVICE_PORT=8080
# Airports Service
AIRPORTS_DB_USER=postgres
AIRPORTS_DB_PASS=123
AIRPORTS_DB_NAME=airports
AIRPORTS_SERVICE_PORT=8081
# Planes Service
PLANES_DB_USER=postgres
PLANES_DB_PASS=123
PLANES_DB_NAME=planes
PLANES_SERVICE_PORT=8082
# Flights Service
FLIGHTS_DB_USER=postgres
FLIGHTS_DB_PASS=123
FLIGHTS_DB_NAME=flights
FLIGHTS_SERVICE_PORT=8083
# Adminer
ADMINER_PORT=8090
......@@ -90,3 +90,4 @@ buildNumber.properties
/application.properties
docker/data
docker/data/**
.env
image: maven:3.8.3-openjdk-17
cache:
paths:
- .m2/repository
variables:
MAVEN_REPO_CACHE: "-Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository"
stages:
- build
- test
#HR_SERVICE:
hr-service-build:
tags:
- shared-fi
stage: build
script:
- mvn $MAVEN_REPO_CACHE clean install -DskipTests -pl airports-hr-service -am
hr-service-test:
tags:
- shared-fi
stage: test
needs: [hr-service-build]
script:
- mvn $MAVEN_REPO_CACHE test -pl airports-hr-service -am
#AIRPORTS_SERVICE:
airports-service-build:
tags:
- shared-fi
stage: build
script:
- mvn $MAVEN_REPO_CACHE clean install -DskipTests -pl airports-service -am
airports-service-test:
tags:
- shared-fi
stage: test
needs: [airports-service-build]
script:
- mvn $MAVEN_REPO_CACHE test -pl airports-service -am
#PLANES_SERVICE:
planes-service-build:
tags:
- shared-fi
stage: build
script:
- mvn $MAVEN_REPO_CACHE clean install -DskipTests -pl airports-planes-service -am
planes-service-test:
tags:
- shared-fi
stage: test
needs: [planes-service-build]
script:
- mvn $MAVEN_REPO_CACHE test -pl airports-planes-service -am
#FLIGHTS_SERVICE:
flights-service-build:
tags:
- shared-fi
stage: build
script:
- mvn $MAVEN_REPO_CACHE clean install -DskipTests -pl airports-flight-service -am
flights-service-test:
tags:
- shared-fi
stage: test
needs: [flights-service-build]
script:
- mvn $MAVEN_REPO_CACHE test -pl airports-flight-service -am
\ No newline at end of file
......@@ -29,31 +29,37 @@ The `airport-web` module serves as the web interface for the Airport Management
To get started with the Airport Management System, follow these steps:
1. Navigate to the root directory of the project:
1. **Navigate to the root directory of the project:**
```bash
cd airport-management-system
```
2. Build the project and run tests using Maven:
2. **Build the project and run tests using Maven:**
```bash
mvn clean install
```
3. Start database, for simplicity of develpment we use simply one db for all services, but data is not related or interconnected.
```bash
cd ../docker
docker-compose up -d
```
Please note, the project is using JDK 17.
3. **Setup variables for your environment**
4. Run each service module separately using the Spring Boot Maven plugin:
Variables can be set using `.env` file or directly as environment variables.
There is an example file `.env.example` containing list of all required variables with stub values.
4. **Start docker based deployment:**
```bash
cd <selected-module>
mvn spring-boot:run
./build.sh
```
the configuration can be modified in src/main/resources/application.properties
5. Access the web interface by navigating to [http://localhost:8080/swagger-ui.html](http://localhost:8080/swagger-ui.html) in your web browser. There you can find swagger docs, along with autogenerated openApi specifications.
This script will initiate build of all docker images related to the project.
Afterwards, it will set up the deployment using docker-compose
5. **Access the web interface**
It can be found on [http://localhost:8080/swagger-ui.html](http://localhost:8080/swagger-ui.html) in your web browser. There you can find swagger docs, along with autogenerated openApi specifications.
## Contributing
......
FROM openjdk:17-jdk-slim
COPY target/*.jar /opt/flight-service.jar
ENTRYPOINT ["java", "-jar", "/opt/flight-service.jar"]
......@@ -14,22 +14,25 @@
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<groupId>cz.muni.fi.pa165</groupId>
<artifactId>airport-manager-api</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.modelmapper</groupId>
<artifactId>modelmapper</artifactId>
<version>3.2.0</version>
<scope>compile</scope>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
......@@ -42,9 +45,9 @@
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>cz.muni.fi.pa165</groupId>
<artifactId>airport-manager-api</artifactId>
<version>1.0-SNAPSHOT</version>
<groupId>org.modelmapper</groupId>
<artifactId>modelmapper</artifactId>
<version>3.2.0</version>
<scope>compile</scope>
</dependency>
<dependency>
......@@ -55,10 +58,6 @@
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
......@@ -110,4 +109,4 @@
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
</project>
FROM openjdk:17-jdk-slim
COPY target/*.jar /opt/hr-service.jar
ENTRYPOINT ["java", "-jar", "/opt/hr-service.jar"]
......@@ -20,26 +20,15 @@
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>airport-manager-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version> <!-- Replace {version} with the appropriate version, e.g., 4.0.1 -->
<scope>provided</scope>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-jpa -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
......@@ -48,6 +37,10 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
......@@ -58,16 +51,16 @@
<artifactId>modelmapper</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<artifactId>springfox-swagger2</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<artifactId>springfox-swagger-ui</artifactId>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
......
FROM openjdk:17-jdk-slim
COPY target/*.jar /opt/planes-service.jar
ENTRYPOINT ["java", "-jar", "/opt/planes-service.jar"]
......@@ -19,21 +19,23 @@
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.3.4</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>airport-manager-api</artifactId>
<version>${project.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-jpa -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
......@@ -49,16 +51,16 @@
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<artifactId>springfox-swagger2</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<artifactId>springfox-swagger-ui</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
......
FROM openjdk:17-jdk-slim
COPY target/*.jar /opt/airports-service.jar
ENTRYPOINT ["java", "-jar", "/opt/airports-service.jar"]
......@@ -18,16 +18,15 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>airport-manager-api</artifactId>
<version>${project.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-jpa -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
......@@ -36,23 +35,28 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.modelmapper</groupId>
<artifactId>modelmapper</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
......@@ -64,11 +68,6 @@
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger-ui.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-core</artifactId>
......
#!/bin/bash
#mvn clean install -DskipTests
docker-compose build --parallel
docker-compose up -d
version: '3.9'
services:
hr-service-db:
image: 'postgres:16-alpine'
deploy:
restart_policy:
condition: on-failure
max_attempts: 3
volumes:
- './docker/hr-service-db:/var/lib/postgresql/data'
environment:
POSTGRES_USER: '${HR_DB_USER}'
POSTGRES_PASSWORD: '${HR_DB_PASS}'
POSTGRES_DB: '${HR_DB_NAME}'
hr-service:
image: 'hr-service:latest'
build: ./airports-hr-service
deploy:
restart_policy:
condition: on-failure
max_attempts: 3
ports:
- '${HR_SERVICE_PORT}:8080'
environment:
SPRING_DATASOURCE_URL: 'jdbc:postgresql://hr-service-db:5432/${HR_DB_NAME}'
SPRING_DATASOURCE_USERNAME: '${HR_DB_USER}'
SPRING_DATASOURCE_PASSWORD: '${HR_DB_PASS}'
depends_on:
- hr-service-db
airports-service-db:
image: 'postgres:16-alpine'
deploy:
restart_policy:
condition: on-failure
max_attempts: 3
volumes:
- './docker/airports-service-db:/var/lib/postgresql/data'
environment:
POSTGRES_USER: '${AIRPORTS_DB_USER}'
POSTGRES_PASSWORD: '${AIRPORTS_DB_PASS}'
POSTGRES_DB: '${AIRPORTS_DB_NAME}'
airports-service:
image: 'airports-service:latest'
build: ./airports-service
deploy:
restart_policy:
condition: on-failure
max_attempts: 3
ports:
- '${AIRPORTS_SERVICE_PORT}:8080'
environment:
SPRING_DATASOURCE_URL: 'jdbc:postgresql://airports-service-db:5432/${AIRPORTS_DB_NAME}'
SPRING_DATASOURCE_USERNAME: '${AIRPORTS_DB_USER}'
SPRING_DATASOURCE_PASSWORD: '${AIRPORTS_DB_PASS}'
depends_on:
- airports-service-db
planes-service-db:
image: 'postgres:16-alpine'
deploy:
restart_policy:
condition: on-failure
max_attempts: 3
volumes:
- './docker/planes-service-db:/var/lib/postgresql/data'
environment:
POSTGRES_USER: '${PLANES_DB_USER}'
POSTGRES_PASSWORD: '${PLANES_DB_PASS}'
POSTGRES_DB: '${PLANES_DB_NAME}'
planes-service:
image: 'planes-service:latest'
build: ./airports-planes-service
deploy:
restart_policy:
condition: on-failure
max_attempts: 3
ports:
- '${PLANES_SERVICE_PORT}:8080'
environment:
SPRING_DATASOURCE_URL: 'jdbc:postgresql://planes-service-db:5432/${PLANES_DB_NAME}'
SPRING_DATASOURCE_USERNAME: '${PLANES_DB_USER}'
SPRING_DATASOURCE_PASSWORD: '${PLANES_DB_PASS}'
depends_on:
- planes-service-db
flights-service-db:
image: 'postgres:16-alpine'
deploy:
restart_policy:
condition: on-failure
max_attempts: 3
volumes:
- './docker/flights-service-db:/var/lib/postgresql/data'
environment:
POSTGRES_USER: '${FLIGHTS_DB_USER}'
POSTGRES_PASSWORD: '${FLIGHTS_DB_PASS}'
POSTGRES_DB: '${FLIGHTS_DB_NAME}'
flights-service:
image: 'flights-service:latest'
build: ./airports-flight-service
deploy:
restart_policy:
condition: on-failure
max_attempts: 3
ports:
- '${FLIGHTS_SERVICE_PORT}:8080'
environment:
SPRING_DATASOURCE_URL: 'jdbc:postgresql://flights-service-db:5432/${FLIGHTS_DB_NAME}'
SPRING_DATASOURCE_USERNAME: '${FLIGHTS_DB_USER}'
SPRING_DATASOURCE_PASSWORD: '${FLIGHTS_DB_PASS}'
depends_on:
- flights-service-db
adminer:
image: adminer
ports:
- '${ADMINER_PORT}:8080'
......@@ -15,8 +15,8 @@
</parent>
<modules>
<module>airports-hr-service</module>
<module>airport-manager-api</module>
<module>airports-hr-service</module>
<module>airports-service</module>
<module>airports-planes-service</module>
<module>airports-flight-service</module>
......