Skip to content

Goldbar97/TableOrder

Repository files navigation

테이블 주문 서비스

프로젝트 설명

식당에서 각 테이블의 태블릿으로 손님이 직접 주문하고 결제하는 서비스에 감명받아 만든 프로젝트입니다.

이런 서비스를 테이블 주문 (Table Order) 이라고 하며 테이블 주문 서비스를 모방했습니다.

제가 구현한 부분은 다음과 같습니다.

  • 회원가입 (비회원 가능)
  • 매장 C R U D (점주)
  • 메뉴 C R U D
  • 리뷰 C R U D
  • 주문 C R U D
  • 결제, 환불

프로젝트 기능

점주

[회원]

  • 회원가입

    • 이름
    • 이메일
    • 비밀번호
    • 전화번호
  • 회원수정 (본인)

  • 회원탈퇴

  • 회원조회 (본인 매장에 방문한 손님들)

[매장]

  • 매장 등록

    • 이름
    • 위치
    • 설명
    • 매장 전화번호
  • 매장 조회 (본인 매장)

  • 매장 수정

    • 이름 수정
    • 설명 수정
    • 매장 전화번호 수정
  • 매장 삭제

    • 매장과 관련된 모든 내용 삭제

[메뉴]

  • 메뉴 추가

    • 조회 필터를 위한 메뉴 종류 (주 메뉴, 사이드 메뉴 등)
    • 맵기 수준 (0 ~ 4, 1 부터 고추 이모티콘 표시)
    • 메뉴 이름
    • 메뉴 사진
    • 메뉴 가격
    • 메뉴 설명
  • 메뉴 조회

    • 메뉴 종류로 필터 가능(주 메뉴 또는 사이드 메뉴)
    • 맵기 수준 (0 ~ 4, 1 부터 고추 이모티콘 표시)
    • 메뉴 이름
    • 메뉴 사진
    • 메뉴 가격
    • 메뉴 설명
    • 메뉴 평균 별점
    • 메뉴의 최근 리뷰 한 개 표시
  • 메뉴 자세히

    • 메뉴 조회와 내용은 같지만 메뉴의 리뷰를 모두 볼 수 있음
  • 메뉴 수정

    • 판매 불가 시 일시 잠금
    • 메뉴 종류 수정
    • 맵기 수준 수정
    • 메뉴 이름 수정
    • 메뉴 사진 수정
    • 메뉴 가격 수정
    • 메뉴 설명 수정
  • 메뉴 삭제

    • 메뉴에 있는 리뷰도 함께 삭제

[리뷰]

  • 리뷰 조회

    • 메뉴 평점
    • 리뷰 내용
    • 작성 날짜
    • 수정 날짜 (수정 시)
  • 리뷰 추가

    • 손님의 리뷰에 사장 리뷰 추가
    • 작성 날짜 자동 추가
  • 리뷰 수정

    • 리뷰 내용 수정
    • 수정 날짜 자동 추가됨

[주문]

  • 주문 조회

    • 테이블 번호
    • 메뉴
    • 각 메뉴 수
    • 각 메뉴 가격
    • 총 가격
    • 회원 주문일 시 몇 번 방문한 손님인지 표시하기
  • 주문 수정

    • 승인을 거절로 수정하기
    • 수정 시 해당 테이블 번호 키오스크에 알람
    • 취소 메시지 전달하기
  • 주문 취소

    • 취소 시 해당 테이블 번호 키오스크에 알람
    • 취소 메시지 전달하기

[결제, 환불]

  • 결제 정보 조회
  • 주문 취소시 환불 진행하기



손님

[회원]

  • 비회원으로도 주문 가능

  • 회원으로 주문하면 적립, 단골 달성 시 혜택, 리뷰 작성 가능 등으로 가입 추천하기

  • 회원가입

    • 이름
    • 이메일
    • 비밀번호
    • 전화번호
  • 회원수정

  • 회원탈퇴

  • 회원조회 (본인이 지금까지 방문한 매장 확인)

[메뉴]

  • 메뉴 조회

    • 메뉴 종류로 필터 가능(주 메뉴 또는 사이드 메뉴)
    • 맵기 수준 (0 ~ 4, 1 부터 고추 이모티콘 표시)
    • 메뉴 이름
    • 메뉴 사진
    • 메뉴 가격
    • 메뉴 설명
    • 메뉴 평균 별점
    • 메뉴의 최근 리뷰 한 개 표시
  • 메뉴 자세히

    • 메뉴 조회와 내용은 같지만 메뉴의 리뷰를 모두 볼 수 있음

[리뷰]

  • 리뷰 추가 (회원 가입 시 & 주문 인증 시 가능, 메뉴 미리보기 한 줄 리뷰가 길면 뒤에 ... 으로 축약하기)

    • 평점
    • 설명
    • 작성 날짜
  • 리뷰 조회

    • 평점
    • 설명
    • 작성 날짜
    • 수정 날짜
  • 리뷰 수정 (본인 리뷰)

    • 평점 수정
    • 설명 수정
    • 수정 날짜
  • 리뷰 삭제 (본인 리뷰)

[주문]

  • 비회원 상태로도 가능

  • 장바구니 형식의 메뉴 주문 모아두기

  • 회원 주문 시 방문 횟수도 전달하기

  • 메뉴 주문 추가

    • 장바구니에 주문할 메뉴 등록
    • 메뉴 이름과 개수
    • 총 가격 표시
  • 주문 수정

    • 메뉴 개수 수정
  • 주문 삭제

    • 장바구니에 담긴 메뉴 삭제
  • 주문하기

    • 현재 장바구니에 담긴 메뉴 주문하기
    • 바로 결제하기

[결제, 주문]

  • 주문 후 결제하기
  • 점장의 주문 취소 시 환불하기

고민

  • 결제 기능 작성시 Master Table 과 Transaction Table 만들어보기
  • 메뉴 사진을 다중 서버에서도 사용할 수 있도록 S3 스토리지 서비스 사용하기
  • 점주의 주문 수정 시 해당 테이블의 손님에게 알람이 발생하도록 SSE 나 WebSocket 사용하기
  • 결제와 환불을 외부 카드사와 연동해보기

구조

image

ERD

project_erd

기술

  • JAVA
  • SPRING BOOT
  • SPRING WEB
  • SPRING DATA JPA

  • LOMBOK
  • MARIA DB
  • VALIDATION

About

Table Order Service Imitation Project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages