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