엘리스 Cloud 트랙 5기 2차 프로젝트 의류 쇼핑몰 ECLIPSE입니다.
- 회원가입
- 이메일 형식 아이디
- 이메일, 닉네임 중복검사
- 비밀번호, 전화번호 유효성검사
- OAUTH
- 구글
- 마이 페이지
- 포인트
- 포인트 적립/사용 내역 확인 가능
- 주문 내역
- 상품 준비중, 배송시작, 배송완료 등
- 리뷰
- 작성한 리뷰 확인 가능
- 문의
- 작성한 문의 확인 가능
- 찜한 상품
- 관심(좋아요): 관심있는 상품 저장
- 내 정보 수정
- 비밀번호
- 수정 전 현재 비밀번호 검증
- 전화번호
- 닉네임
- 주소
- 비밀번호
- 포인트
- 권한
- 일반 회원
- 관리자
- 모든 회원의 주문 내역, 회원 정보 조회 가능
- 배송 상태 변경
- 상품 및 카테고리 추가 가능
- 회원 권한 변경 가능, 회원 삭제 가능
- 비밀글 열람 가능/문의에 답글 달기 가능
- 로그인
- 로그인시 쿠키에 JWT토큰 발급
- 이메일 주소를 입력하여 비밀번호 찾기
- 보안
- XSS 공격 방어를 위한 httpOnly 설정
- CSRF 공격 방어를 위한 SameSite를 Lax로 설정
- 멤버십 등급
- 브론즈
- 기본 등급
- 실버
- 전월 결제금액 20만원 이상
- 매월 5000포인트 지급
- 골드
- 전월 결제금액 50만원 이상
- 매월 10000포인트 지급
- 다이아몬드
- 전월 결제 금액 100만원 이상
- 매월 50000포인트 지급
- 브론즈
- 카테고리 전체 조회
- 카테고리명, 해당 카테고리의 상품 수
- 카테고리 추가
- 메인 카테고리 추가 - 메인 카테고리명 중복 불가
- 메인 카테고리 추가 시 서브 카테고리 1개 같이 추가
- 서브 카테고리 추가 - 해당 메인 카테고리 내 서브 카테고리명 중복 불가
- 카테고리명 공백 불가, 1-15자 제한, 한글, 영어 대소문자, / 가능
- 카테고리 수정
- 카테고리 삭제
- 해당 카테고리에 상품이 존재하는 경우 삭제 불가
- 상품 등록
- 상품 이름, 사이즈, 색상, 재고, 가격, 설명, 이미지에 대한 유효성 검사
- 데이터베이스에 있는 메인 카테고리 이름을 불러와서 드롭 박스 형태로 선택할 수 있게 렌더링
- 메인 카테고리를 선택하면 그에 맞는 서브 카테고리를 불러와서 렌더링
- 사이즈는 사용자 혼동 방지를 위해 사이트에서 지정한 단위 중 선택, 색상은 자유롭게 입력 가능
- 사이즈 별 색상 및 재고는 상품 등록을 여러 번 할 필요 없이 버튼을 통해 추가하여 한 번에 등록 가능
- 이미지는 5개까지 선택 가능, 순서 변경 자유롭게 가능, 대표 이미지로 들어갈 사진 선택 가능
- 대용량 이미지 압축하여 업로드
- 상품 리스트
- 카테고리 별로 분류해서 조회 가능
- 최신순, 판매순, 조회순에 맞게 정렬 가능 및 상품 이름으로 검색 가능, 그에 따른 페이지네이션
- 리스트에서는 모든 컬러 및 모든 사이즈가 품절 됐을 때만 상품 목록에서 품절 표시
- 상품 상세
- 색상을 선택하면 그 색상이 가지고 있는 사이즈를 불러와서 선택 가능
- 이미지 슬라이드로 여러 장의 이미지 확인 가능
- 색상 및 사이즈를 선택하면 사용자가 확인할 수 있게 화면에 렌더링
- 버튼을 통해 선택한 상품의 수량을 조절 및 삭제 가능
- 선택한 색상의 특정 사이즈만 품절일 경우 품절 표시 및 선택 불가
- 선택한 상품의 총 금액 계산하여 표시
- 특정 상품을 나중에 간편하게 모아서 보기 위한 찜 버튼 구현
- redis를 이용해 조회수 관리
- 조회수 조작을 방지하기 위해 동일한 IP는 1시간에 한번만 조회수 증가
- 실질적 조회수 관리를 위해 해당 상품 페이지에 5초 이상 접속 중이어야 조회수 증가
- 상품 관리
- 관리자에 따라 자신의 등록한 상품만 수정 및 삭제 가능
- 상품 명으로 검색 가능 및 페이지네이션
- 주문은 장바구니를 통해서만 가능
- 수량 조정, 일부 삭제, 전체 삭제
- 장바구니에서 상품 옵션 변경 가능
- 주문과 결제는 별도의 도메인으로 구분
- 주문 데이터 생성 이후 결제 요청, 결제 실패시 결제 데이터는 생성되지 않음
- PortOne API를 활용해 실제 결제 로직을 구현
- 결제수단
- PortOne API를 통해 다양한 플랫폼에서의 결제
- 포인트 결제
- 1원 단위로 자유롭게 사용 가능
- 배송
- 주소는 우편번호, 도로명 주소, 상세주소로 구성
- 요청사항은 선택사항으로 입력
- 회원 가입시 입력했던 배송지를 기본 배송지로 사용 가능
- 50,000원 이상 구매 시 배송비 무료
- 환불 요청
- 주문 상태가 신규 주문일 때에만 가능
- 사용자가 환불 요청을 할 시에 환불 사유와 함께 주문 상태가 환불 요청으로 변경
- 관리자는 환불 요청 받은 주문을 처리하거나 환불 요청 처리 자체를 취소할 수 있음
- 주문 조회
- 주문한 상품 명으로 검색 가능
- 주문 상태가 목록에서 표시
- 결제시 포인트를 현금으로 사용 가능
- 구매 확정 시 상품 금액의 1%를 포인트로 적립
- 리뷰 작성 시 500P 적립
- 멤버십 등급에 따라 매월 포인트 혜택 지급
- 리뷰 작성
- ‘구매 확정’된 주문 상세에 대해 리뷰 작성 가능
- 1~5점 평점 선택 필수
- 내용 20~500자 작성 필수
- 리뷰 작성 시 500포인트 지급
- 상품별 리뷰 목록
- 상품의 전체 리뷰 조회
- 최신순/높은 평점순/낮은 평점순 조회
- 상품별 별점 평균 조회
- 3줄 초과 시 더보기/줄이기 기능
- 나의 리뷰 조회
- 해당 회원이 작성한 리뷰 조회
- 3줄 초과 시 더보기/줄이기 기능
- 상품별 문의 목록
- 상품의 전체 문의 조회
- 비밀글로 설정한 문의는 ‘비밀글입니다’로 표시, 상세보기 불가
- 답변이 작성된 문의는 답변완료 배지 표시
- 문의 작성
- 사이즈, 재입고, 배송, 상품상세 중 유형 옵션 선택
- 체크박스로 비밀글 여부 설정
- 문의 상세
- 문의 작성자만 문의 삭제 가능
- 관리자만 문의에 답변 작성 가능
- 나의 문의 조회
- 자신이 작성한 문의만 조회
- 답변이 작성된 문의는 답변완료 배지 표시
- 버튼식 상담
- 정해진 질문에는 자동 답변
- 상담 내역은 Local Storage 저장
- 1:1 상담
- 상담사 연결 버튼을 누르면 ADMIN 페이지로 요청 전송
- 요청이 수락되면 1:1 상담 시작
- 타입은 태그와 제목으로 구성되고, 태그는 영어로 쓰되 첫 문자는 대문자로 한다.
- "태그: 제목"의 형태이며, : 뒤에만 공백이 있음에 유의
태그 이름 | 설명 |
---|---|
Feat | 새로운 기능을 추가할 경우 |
Fix | 버그를 고친 경우 |
Design | CSS 등 사용자 UI 디자인 변경 |
Style | 코드 포맷 변경, 세미 콜론 누락, 코드 수정이 없는 경우 |
Refactor | 프로덕션 코드 리팩토링 |
Docs | 문서를 수정한 경우 |
Rename | 파일 or 폴더명 수정하거나 옮기는 경우 |