greeng00se / jpa-order

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

jpa-order

Jpa를 이용하여 간단한 주문 시스템을 구현한다.

요구사항

상점 수는 하나만 있다고 가정한다.
상점에서 판매하고 있는 상품이 존재한다.
db 구조, api 명세는 자유이며 PR 요청시 설계의 이유가 있으면 더 좋다.
아래의 요구사항은 최소 요구사항이며 원한다면 기능을 추가해도 된다.

상품

  • 상품은 상품 번호, 상품명, 가격, 재고수를 가지고 있다.

사용자

  • 사용자는 이메일, 비밀번호를 가지고 있다.
  • 이 때 비밀번호는 해쉬 함수를 이용해서 데이터베이스에 저장해야 한다. 이 때 해쉬 함수는 SHA-256을 사용한다.
  • 사용자가 로그인을 하는 경우 토큰을 반환받고, 해당 토큰을 이용해서 상품 주문, 쿠폰 조회를 할 수 있다.
  • 토큰은 JWT를 사용하고 secret은 herb 이다.

쿠폰

  • 사용자의 쿠폰을 조회할 수 있다.
  • 쿠폰은 하나의 할인 정책, 하나의 할인 조건을 포함한다.
  • 할인 정책은 3가지 종류가 존재한다.
    • 고정 금액 할인 정책이 존재한다.
    • 비율 할인 정책이 존재한다.
    • 배달비 할인 정책이 존재한다.

주문

  • 주문을 하는 경우 주문할 {상품 번호, 개수}의 배열 정보를 입력받는다.
  • 쿠폰은 하나만 적용할 수 있다. 원한다면 적용하지 않아도 된다.
  • 사용자는 주문 내역을 조회할 수 있다.
  • 동시에 주문되는 경우 재고에 대한 부분을 어떻게 해결할지 고려하고, 이에 대한 테스트를 작성한다.

About


Languages

Language:Java 100.0%