배달 어플리케이션 API
배달 어플리케이션을 이용하는 유저, 서비스를 제공하는 점주, 배달을 담당하는 라이더의 관점에서 매장의 등록, 음식의 주문, 음식의 배달에 필요한 기능을 제공하는 API 개발
2024.04.16 ~ 2024.05.20
http://43.203.69.35:8080/swagger-ui/index.html#/
-
고객
- 고객 등록 및 조회, 수정, 삭제
- 등록
- 로그인 id, 비밀번호, 이름, 이메일, 전화번호, 배송 지 정보
- 로그인 id, 이메일, 전화번호는 Unique Key
- 배송 지는 최소 하나(기본 배송 지)는 있어야 하며, 추가 가능
- 로그인
- 로그인 id, 비밀번호 로그인
- 소셜 로그인
- JWT
- 조회
- 개인 정보, 배송 지 정보 조회
- 수정
- 이메일, 비밀번호, 전화번호 , 배송 지 정보 수정, 기본 배송지 변경
- 삭제
- 계정 삭제 기능 (논리 삭제)
- 등록
- 검색
- 메뉴, 식당 카테고리로 검색
- 계정 최초 생성시 입력하는 기본 배송지 기준으로 좌표를 생성하여 근처 5km 이내의 식당을 결과로 보여준다.
- 휴무 일이 아니고, 오픈 시간 ~ 라스트오더 시간 사이의 매장에 대해서만 메뉴 확인, 장바구니 등록, 주문 단계로 이동 가능
- 장바구니 및 주문, 결제 단계
- 장바구니 등록
- 장바구니에는 한 매장의 메뉴만 등록할 수 있다. (매장 정보가 다를 시 등록된 장바구니 아이템을 전부 삭제)
- 등록된 메뉴에 대해 삭제, 수정 가능
- 주문 단계
- 장바구니에서 주문 단계로 이동
- 주문 시 요청사항 입력 가능
- 결제 단계
- 별도 결제 과정은 없고 가상으로 결제가 되었다고 가정
- 결제 후 매장(점주)에서 주문을 승인 / 거절
- 장바구니 등록
- 주문
- 대기 중, 거절, 승인, 조리 중, 조리 완료, 취소의 상태를 가진다
- 대기 중, 승인 상태에서만 취소가 가능하다.
- 배달 상태 확인
- 배달 중인 라이더의 이름과 전화번호를 조회 할 수 있다.
- 배달 중인 라이더와의 상호작용은 고려하지 않음.
- 리뷰 및 평점
- 리뷰
- 배달이 완료된 주문(매장)에 대해 리뷰 등록
- 작성이 완료된 리뷰에서 주문한 메뉴가 확인 가능하다
- 등록 후 리뷰 내용 수정, 삭제 가능
- 사진
- 리뷰에 대해 사진 등록 가능 (AWS s3)
- 등록 후 수정, 삭제 가능
- 평점
- 0점에서 최대 5점까지 등록 가능
- 등록 후 수정 가능
- 리뷰
- 고객 등록 및 조회, 수정, 삭제
-
점주
- 점주 등록 및 정보 조회, 수정
- 로그인 id, 비밀번호, 이름, 이메일, 전화번호
- 로그인 id, 이메일, 전화번호는 Unique Key
- 별도의 점주 승인 과정은 없다고 가정
- 로그인
- 로그인 id, 비밀번호 로그인
- JWT
- 조회
- 점주 정보 조회
- 관리 매장 조회
- 전체 매장 매출 조회(일 별, 월 별)
- 각 매장 매출 조회(일 별, 월 별)
- 수정
- 이메일, 비밀번호, 전화번호 수정
- 삭제
- 계정 삭제 기능 (논리 삭제)
- 매장
- 등록
- 점주는 하나 이상의 매장을 등록 가능
- 상호명, 전화 번호, 사업자 등록 번호, 주소, 배달 가능 지역, 매장 카테고리, 휴무일, open 시간, 라스트오더 시간, close 시간, 매장 사진 등록
- 매장 카테고리(등록된 카테고리 제공)
- 한식, 중식, 일식, 치킨, 피자 등
- 수정
- 휴무일, open 시간, close 시간, 라스트오더 시간, 매장 사진 수정
- 삭제
- 매장 삭제 기능 (논리 삭제)
- 조회
- 주문 조회
- 오늘의 주문 건수 조회
- 오늘의 매출 조회
- 전체 리뷰 조회, 각 메뉴 리뷰 조회
- 메뉴
- 각 매장은 하나 이상의 메뉴를 등록해야 한다.
- 메뉴 명, 가격, 메뉴 카테고리, 메뉴 사진 등록
- 메뉴 카테고리
- 점주가 직접 등록
- 메인, 사이드 메뉴, 음료, 기타 등
- 카테고리 수정, 삭제 가능
- 메뉴의 모든 정보 수정, 삭제 가능 (논리 삭제)
- 주문
- 결제가 완료된 주문에 대해 승인 / 거부 수행
- 승인 후 조리 진행 단계에 따라 점주가 조리 중, 조리 완료 단계로 상태 변경한다.
- 승인 혹은 조리 중 단계에서 배달 가능 지역의 라이더가 배달할 주문을 선택한다.
- 등록
- 점주 등록 및 정보 조회, 수정
-
라이더
- 라이더 등록 및 정보 조회, 수정
- 로그인 id, 비밀번호, 이름, 이메일, 전화번호, 거주지, 배달 가능 지역, 배달 수단 등록
- 로그인 id, 이메일, 전화번호는 Unique Key
- 별도의 라이더 승인 과정은 없다고 가정
- 로그인
- 로그인 id, 비밀번호 로그인
- JWT
- 수정
- 비밀번호, 이메일, 전화번호, 거주지, 배달 가능 지역, 배달 수단 수정
- 삭제
- 계정 삭제 기능 (논리 삭제)
- 조회
- 라이더 정보 조회
- 이동한 거리 조회 (일 별, 월 별)
- 배달 건 수 조회 (일 별, 월 별)
- 수입 조회 (일 별, 월 별)
- 수입은 1건 당 3000원으로 산정
- 배달 주문 조회
- 라이더의 현재 위치를 기준으로 근처 5KM 이내의 주문 리스트를 조회
- 라이더가 정해지지 않은 승인 혹은 조리 중 단계의 주문 리스트를 조회
- 배달 내역 조회
- 배달 내역 상세 조회
- 배달
- 배달은 배정, 배달 중, 배달 완료, 실패의 상태를 가진다.
- 조회한 주문 리스트에서 배달할 주문을 선택
- 주문한 고객의 전화번호 조회 가능
- 고객과의 상호작용은 고려하지 않음
- 배달이 완료되면 배달 완료 사진을 등록
- 배달이 완료되면 주문의 상태를 배달 완료로 변경
- 라이더의 현재 위치와 이동 거리
- 목적지에 도착하였을때 현재 위치를 갱신하고 redis로 관리한다.
- 그날의 첫 픽업을 기준으로 목적지에 도착하였때 이동한 거리를 누적시킨다.
- 라이더 등록 및 정보 조회, 수정
https://github.com/Pascal-Case/DeliveryDotDot/blob/main/doc/TROUBLE_SHOOTING.md