최강서버

기술 스택

 협업 툴

Java11, Spring Boot 2.7
Spring JPA, Mysql, Redis
Swagger
Github project
Notion

INFRA

AWS instance : 3.37.236.75
FCM project id : obab-1fbb7
firebase path : firebase/obab-1fbb7-firebase-adminsdk-zl94u-069a3352bf.json
obab-1fbb7-firebase-adminsdk-zl94u-069a3352bf.json
2.3KB

API

카운트다운 해서 투표하기
방 만들기
인원 수 제한
초대코드 생성
방 참여하기
투표하기
포기 / 기권 / 시간초과
카톡링크로 방 공유하기 → 파베 다이나믹 링크 / 도메인 안 필요??
최종 결과 발표 되었다는 푸쉬 알림
최종 결과지
최종 결과와 함께 000은 어떨까요? 와 같이 예시 음식 제공하기
아침 점심 저녁 야식 체크(시간별) → 방 만들때

Domain

Room - 방 생성(초대코드 생성), 방 입장(초대코드 검증, device id check, 중복 참여 방지), 만료된 방 처리, 방 검색
Survey - 투표 결과 누적 체크, 투표 완료 후 결과 도출
Push - 설문 종료 후 이벤트 받아서 push 생성, FCM 전송
Mysql
Redis
room:{roomNo}
{invitecode}
survey:{deviceId}
Mysql에 저장하는 정보 - 음식
기기 토큰
음식데이터 Dummy
roomno: invite code
roomno: [deviceid, deviceid]
deviceid : [select,select,select]

Success 반환

{ "responseCode": "CM00", "message": "success :)", "data": { "roomNo" : 8448-15a6b0be5d65, "country" : , "food" : , "isSpicy" : , "isSoup" : , "isHot" : , "submitCount : " } }
JSON
복사
Search
Name
Method
Endpoint
POST
/rooms/enter
GET
surveys/{deviceId}?roomNo=

DATA

room
roomNo - 방 식별번호
totalCount - 총 인원
device ids [] - 제출한 디바이스 번호
device(survey)
checkList [] - 디바이스 별 선택 리스트
기권 여부 check
기권표일 경우 0으로 요청
아닐 경우 1,2,3,4
예시 선택지 1) 차가운 것 , 2) 따뜻한 것
기권 → 0
동률, 모두 기간 → 앞
??
0
음식 리스트
한식
중식
일식
d양식