This project is graduation project of team 99. Concept of this project is to connect art with web community service. If you create some posts at the web-app, lotus will be created at unity client and it will spawn some texts with post content. and If you create some comments at the web-app related with posts, A fish will be created at unity client and eat some texts spawend from the related lotus(post).
Spring boot
Spring Security
JPA
thymeleaf
junit
docker
How to use
1. Running methods per environment
Run with develop server with docker (recommended)
0. go to javascript file and edit ip running socket server
1. Spring boot Back-end web server / api server
./gradlew --exclude-task test;
2. run docker compose
docuer-compose -f docker-compose.develop.yml -d
Run with develop server without docker (runwith jar)
0. go to javascript file and edit ip running socket server
1. Spring boot Back-end web server / api server
./gradlew --exclude-task test;
2. run docker compose for development environment
nohup java -jar ~~.jar &
Run with production server
0. go to javascript file and edit ip running socket server
1. Spring boot Back-end web server / api server
./gradlew --exclude-task test;
2. edit "docker-compose.production.yml"
edit informations for your own database
3. run docker compose for production environment
docuer-compose -f docker-compose.production.yml -d
2. Running admin environment
Prometheus
1. goto "docker/prometheus/config/prometheus.yml" and edit configuration
2. run server and access to "http://localhost:9090/targets"
Grafana
1. run the server and access to "http://localhost:3000/"
Trouble shooting
Gradlew permission problem
if you encountered permission problem, use chmode to change permission of gradlew
ex) chmod 755
The first thing to worry about the connection method was to configure the Spring boot project as a multi-project environment, and then tried to link using SOCKJS and STOMP on one server. However, there was no library for STOMP on Unity, and I had to find another way. Considering the following method, I tried to use another protocol composed of publisher-broker-subscriber method such as Kafka. However, I could not solve it with the same issue as the first method. And the last consideration was the method using SocketIO, but fortunately this method was able to use safely because there was a library for SocketIO in Unity. However, depending on the implementation method or writing code, there seemed to be issues such as disconnection and reconnection or two connections. If there is a better way, I would like to change the method, so I left an issue.