구현기능 및 제약조건 - Kim-Gyuri/bookstore GitHub Wiki
📋 중고거래 웹서비스 특징
상품 결제 시스템까지는 구현하지 않았으며, '구매하기' 버튼을 클릭하면 즉시 '판매 처리'가 이루어지는 방식으로 판매 과정을 구현했습니다. 또한, 장바구니에서 주문 상품을 삭제하면 해당 상품은 '주문 취소'로 처리되도록 했습니다.
✅ User
USER 공통 사항
- 회원 로그인 정보는 커스텀 어노테이션으로 로그인된 사용자 정보를 불러올 수 있다.
- 세션의 타임아웃은 30분이다.
- 모든 회원은 판매권한, 구매권한을 갖는다.
- 회원가입
- 이메일/로그인ID/비밀번호/배송지 주소를 입력받는다.
- 이미 가입된 아이디로는 중복 가입이 불가능하다.
- 로그인 / 로그아웃
- 로그인/로그아웃이 가능하다.
✅ Sales
Sales 공통 사항
- 모든 회원은 상품을 등록하여 팔 수 있다.
- Sale 테이블을 통해 판매상품을 관리한다.
- 판매 상품 등록
- 상품을 등록할 수 있다.
- 판매 상품 조회
- 판매 상품 정보와 현재 판매액을 조회할 수 있다.
- 판매 상품 수정
- 등록한 상품 정보를 수정할 수 있다.
- 판매 상품 삭제
- 등록한 상품을 삭제할 수 있다.
- 주문 요청이 접수된 상품은 삭제할 수 없다.
✅ Cart
Cart 공통 사항
- 회원이 구매한 상품은 장바구니에 담긴다.
- 장바구니에서 상품을 제거하면 해당 주문이 취소된다.
- 상품 구매
- 주문 정보(상품 정보와 구매 수량)가 기록된다.
- 동일한 상품을 장바구니에 중복으로 담을 수 없으며, 각 상품은 한 번만 담을 수 있다.
- 상품 구매취소
- 장바구니에서 해당 상품을 제거한다.
- 주문 조회
- 현재 구매한 모든 상품을 조회한다.
✅ Item
Item 공통 사항
- 등록된 상품은 수정 및 삭제가 가능하다.
- 상품 등록 시, 동일한 입력값으로 중복 등록되지 않도록 제약 조건을 설정했다.
- 상품 생성
- 상품을 생성할 때 이미지 파일을 저장할 수 있다.
- 최소 1개의 상품 이미지를 업로드해야 한다.
- 동일한 상품명과 카테고리로 중복 등록할 수 없다.
- 상품 조회
- 생성된 상품을 조회할 수 있다.
- 상품 수정
- 생성된 상품의 상품명/가격/수량/이미지를 수정할 수 있다.
✅ 주요 서비스 처리 과정
1. 거래과정
- 서비스 이용은 회원가입된 사용자만 가능하다.
- 회원은 구매하려는 상품을 검색할 수 있다.
- '구매하기' 버튼을 클릭하면, 구매 요청이 처리되어 장바구니에 상품이 담긴다.
- 이 과정에서 판매자에게 주문 요청이 전달되며, 판매 관리 페이지에 해당 구매 수량과 함께 주문 정보가 기록된다.
2. 판매할 상품 등록 과정
- 드롭다운 메뉴에서 '상품등록' 버튼을 클릭하여 판매 상품을 업로드할 수 있다.
- 업로드된 상품은 판매 관리자 페이지에 등록된다.
- 등록된 상품은 즉시 페이지에 업로드된다.