내배캠/프로젝트, 개인과제 코드&내용정리

[내일배움캠프/백엔드] Spring 심화 아웃소싱 프로젝트 Lv0. API 명세 및 ERD 작성

jy3574 2024. 12. 3. 23:09

피드백 받고 수정예정

프로젝트 개요

 

*프로젝트 목표

1. 데이터베이스와 ORM

  • 데이터베이스와 스키마를 설계
  • JPA를 이용해 데이터베이스와 연동
  • JPA를 통해 CRUD 작업

2. 인가

  • 인가 개념을 구현하여 접근 권한을 다르게 설정

3. 협업 및 버전 관리

  • Git을 사용해 소스 코드 버전 관리
  • Git branch를 이용해 브랜치 관리 및 원활한 협업
  • Pull Request와 코드 리뷰 과정에 대해 이해

*프로젝트 필수 기능 가이드

1. 회원가입 / 로그인

  • 회원가입
    • 사용자 아이디 : 이메일 형식
    • 비밀번호
      • Bcrypt로 인코딩 : 암호화를 위한 PasswordEncoder를 직접 만들어 사용
      • 대소문자 포함 영문 + 숫자 + 특수문자를 최소 1글자씩 포함
      • 비밀번호는 최소 8글자 이상
    • 권한
      • 회원가입 시 일반 유저 또는 사장님으로 가입
      • 권한에 따라 사용할 수 있는 기능이 나뉘어짐
  • 회원 탈퇴
    • 탈퇴 처리 시 비밀번호를 확인한 후 일치할 때 탈퇴처리
    • 탈퇴한 사용자의 아이디는 재사용할 수 없고 복구할 수 없음
  • 로그인
    • 가입한 아이디와 비밀번호로 로그임

2. 가게

  • 가게 생성/수정
    • 가게는 오픈 및 마감시간이 존재
    • 최소 주문 금액 존재
    • 예외처리
      • 사장님 권한을 가진 유저만 가게를 만들 수 있고, 최대 3개의 가게를 운영할 수 있음(폐업상태가 아닌 가게)
  • 가게 조회
    • 가게명으로 가게를 여러건 찾을 수 있음
    • 가게 다건 조회시에는 메뉴 목록을 함께 볼 수 없음
    • 가게 단건 조회 시 등록된 메뉴 목록도 함께 볼 수 있음
  • 가게 폐업
    • 폐업 시 가게의 상태만 폐업 상태로 변경
    • 일반 유저는 폐업된 가게를 조회할 수 없음
    • 사장님은 가게를 추가로 등록할 수 있게 됨

3. 메뉴

  • 메뉴 생성/수정
    • 메뉴 생성, 수정은 사장님만 할 수 있음
    • 사장님은 본인 가게에만 메뉴를 등록할 수 있음
  • 메뉴 조회
    • 메뉴를 단독으로 조회할 수 없고, 가게 조회 시 함께 조회
  • 메뉴 삭제
    • 본인 가게의 메뉴만 삭제 가능
    • 삭제 시 메뉴의 상태만 삭제 상태로 변경
      • 가게 메뉴 조회 시 삭제된 메뉴는 나타나지 않음
      • 주문 내역 조회 시 삭제된 메뉴의 정보도 나타남

4. 주문

  • 고객은 메뉴를 주문할 수 있음
    • 각 주문에는 하나의 메뉴만 주문할 수 있음
  • 사장님은 주문을 수락할 수 있으며, 배달이 완료될 때까지의 모든 상태를 순서대로 변경
    • 주문완료 -> 주문수락 -> 조리중 -> 조리완료 -> 배달중 -> 배달완료
  • 예외처리
    • 가게에서 설정한 최소 주문금액을 만족해야 주문이 가능
    • 가게의 오픈/마감 시간이 지나면 주문할 수 없음

5. 리뷰

  • 리뷰 생성
    • 고객은 주문 건에 대해 리뷰를 작성할 수 있음
    • 리뷰는 별점을 부여(1~5점)
      • 배달 완료되지 않은 주문은 리뷰를 작성할 수 없음
    • 리뷰 조회
      • 리뷰는 단건 조회할 수 없음
      • 리뷰는 가게 정보를 기준으로 다건 조회 가능
        • 생성일자 기준 최신순 정렬
        • 본인이 작성한 리뷰는 보이지 않음
      • 리뷰를 별점 범위에 따라 조회할 수 있음

ERD 설계

 

 

 

 


API 명세서