가안


유저 테이블

PK, 이메일, 프로필 이미지 주소, 소셜 로그인 플랫폼에서 발급해주는 식별자, 플랫폼 구분

재료 카테고리 테이블

PK, 내용

재료 테이블

PK, 재료 카테고리 PK 참조 (FK 아님), 내용

못 먹는 재료 테이블

PK 참조 (FK 아님), ingredient PK 참조 (FK 아님)

완료한 혹은 북마크한 레시피 테이블

유저 PK 참조 (FK 아님), 레시피 PK 참조 (FK 아님), 완료 여부, 북마크 여부, 날짜

유저의 레시피 테이블

PK, 유저 PK 참조 (FK 아님), 레시피 PK 참조 (FK 아님)

레시피 후기의 하위 테이블: 과정/난이도, 건강/컨디션, 만족도, 시간/상황, 맛

유저의 레시피 후기 PK 참조 (FK 아님), 내용

레시피 테이블

PK, 레시피 이미지 주소, 소요 시간, 난이도, 조리 방식, 설거지 난이도

레시피와 연결된 재료 테이블

레시피 PK 참조 (FK 아님), 재료 PK 참조 (FK 아님), 카테고리 (주재료, 부재료, 대체불가 부재료), 개수

*이 카테고리는 분리 안한 이유: 재료 카테고리와는 다르게 확장될 여지가 없어 보여서

양념 테이블

PK, 내용

레시피와 연결된 양념 테이블

레시피 PK 참조 (FK 아님), 양념 PK 참조 (FK 아님), 개수

조리도구 테이블

PK, 내용

레시피와 연결된 조리도구 테이블

레시피 PK 참조 (FK 아님), 조리도구 PK 참조 (FK 아님)

레시피와 연결된 요리 순서 테이블

레시피 PK 참조 (FK 아님), 단계, 내용

유저의 컨디션 테이블

PK, 유저 PK 참조 (FK 아님), 날짜

유저의 컨디션 테이블과 관련된 재료 테이블

유저의 컨디션 PK 참조 (FK 아님), 재료 PK 참조 (FK 아님)

유저의 컨디션에 따른 추천 결과 테이블

유저의 컨디션 PK 참조 (FK 아님), 레시피 PK 참조 (FK 아님)

챌린지 테이블

PK, 챌린지명, 주간/월간 여부, 1줄 소개, 챌린지 뱃지 이미지 주소, 진행 기간, 진행 방법

유저의 챌린지 참여 테이블

챌린지 PK 참조 (FK 아님), 유저 PK 참조 (FK 아님), 진행도, 완료 여부

유저의 챌린지 후기 테이블

유저의 챌린지 참여 테이블 PK 참조 (FK 아님), 후기

챌린저 후기의 어떤 변화 테이블

유저의 챌린지 후기 PK 참조 (FK 아님), 내용

응원 한마디 테이블

PK, 내용

회원가입

  1. 리다이렉팅 URL 구성
  2. 발급 받은 코드 바탕으로 토큰을 검증하고 소셜 로그인 플랫폼으로부터 유저 정보 가져옴
  3. 식별자 기준으로 로그인 정보가 기존에 존재하면 로그인, 없으면 가입 후 로그인 처리

온보딩_못먹는 음식

  1. 못먹는 음식들의 아이디들을 넘기면 그것들을 저장함
  2. 이렇게 저장된 정보는
    1. 추천 레시피 제공에서 활용
    2. 레시피 검색 시에도 해당 식재료를 제외한 메뉴만 노출되게 함

인잉_추천을 위한 설문

  1. DB에 있는 응원 한마디 반환 (몇번 먹었는지를 확인해서 반환)
  2. 오늘의 컨디션을 설정, 현재 갖고 있는 재료 리스트 설정
  3. 재료가 포함된 레시피가 추천됨 + 너무 지침, 그럭저럭, 꽤 괜찮음에따라 시간 기준이 있음

추천 결과

  1. 가장 최근의 결과 (이번, 지난번, 지지난번 추천 결과가 나옴)
  2. 오늘의 추천에는 제한없이 페이지네이션 기반으로 데이터반환
  3. 지난번, 지지난번에는 추천 결과 3개만 아마 이것도 페이지네이션으로 처리

레시피 상세

  1. 필요한 데이터들 반환

요리 시작

  1. 단계별로 클라에서 요소들 만든 후에 완료하면