소중한 이웃과 함께하는 이웃사이
이웃 간의 단절과 고령 1인 가구 증가로 인한 다양한 사회 문제를 해결하고자 다양한 주거 형태에 적용 가능한 관리 시스템 모델을 제시합니다.
서비스에서 제공되는 편의 기능을 통해 이웃 간의 소통을 증진하고, 긴급 상황에 대처할 수 있는 환경을 조성합니다.
이웃사이 서버 애플리케이션은 Docker 환경에서 최적화된 동작을 보장합니다.
$ git clone https://github.com/among-neighbors/AN-backend.git
서버 스펙에 맞게 수정이 필요합니다.
application.yml
gcp-bucket-name: bucket-name
gcp-directory-name: directory-name
gcp-storage-url: storage-url
group:
name: group-name
email: group-email
spring:
security:
filter:
order: 2
datasource:
driver-class-name: org.h2.Driver
url: jdbc:h2:mem:test
h2:
console:
enabled: true
path: /h2-console
redis:
host: localhost
port: 6379
jpa:
properties:
hibernate:
default_batch_fetch_size: 100
mail:
host: host
port: port
username: username
password: password
properties:
mail:
smtp:
auth: true
jwt:
secret: secret
servlet:
multipart:
max-file-size: 30MB
max-request-size: 40MB
cloud:
gcp:
storage:
credentials:
location: storage-secret-key
springdoc:
swagger-ui:
path: path
operations-sorter: method
# version: v1
paths-to-match: /api/**
server:
ssl:
key-store: key-store-path
key-store-type: PKCS12
key-store-password: 1234
Dockerfile
FROM openjdk:11
ARG JAR_FILE=build/libs/*.jar
COPY ${JAR_FILE} app.jar
VOLUME /tmp
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]
condition
- redis connection
- smtp connection
- gcp storage connection
- database connection
프로젝트 루트 경로에서 실행
1. Docker 환경 x
$ ./gradlew clean build -x test
$ cd build/libs
$ java -jar *.jar
2. Docker 환경
$ ./gradlew clean build -x test
$ docker build -t tag-name:1.0 .
$ docker run -p 8080:8080 -d --name=app-name tag-name:1.0
가족 구성원을 모델링한 계정/프로필 형태로 사용자를 관리하고 있습니다.
세대별로 하나의 계정을 가지며, 각 계정 내에서 여러 개의 프로필을 생성할 수 있습니다.
사용자 인증은 계정 레벨과 프로필 레벨로 나뉩니다.
따라서 서버에서는 계정과 프로필 토큰을 각각 발급하고 있으며 Spring Security 를 활용하여 각 토큰을 검증합니다.
WebSocket 을 통해 사용자를 연결할 수 있습니다.
연결된 사용자 간에는 pub/sub 방식을 통해 실시간으로 긴급 호출 메세지를 전달할 수 있습니다.