1. 개요
- 프로젝트 명칭 : SHOPPY
- 개발 인원 : Frontend 2명, Backend 2명
- 개발 언어 : Java 17, JavaScript
- 개발 환경 : SpringBoot 2.7.5, Springframework 5.3.23, Spring Data JPA, Spring Security, React
- 데이터베이스 : AWS RDS (MariaDB)
- 외부 저장소 : AWS S3
- 형상 관리 툴 : GitHub, Docker Hub
- 배포 : AWS EC2, Jenkins, Docker, Netlify
2. 요구 사항 분석
- 회원가입 페이지
- 유효성 검사
- 모든 항목은 필수 입력 - 아이디, 비밀번호, 닉네임, 전화번호, 이메일 , 주소
- 아이디는 최소 4자 이상 12자 이하
- 비밀번호는 최소 8자 이상 16자 이하
- 이메일 형식 알맞게 입력
- 중복확인
- 회원가입이 완료되면 로그인 페이지로 이동
- 로그인 페이지
- 로그인 검사
- 아이디와 비밀번호를 입력해서 로그인 성공 시 메인페이지 이동
- 로그인 실패 시 "아이디 또는 비밀번호가 일치하지 않습니다. “ 메시지 출력
- 로그인을 하지 않은경우 이용 가능한 페이지
- 회원가입 페이지
- 로그인 페이지
- 메인 페이지
- 검색 결과 페이지
- 상품 전체 페이지
- 상품 카테고리 별 페이지
- 상품 상세 페이지
- 그 외 로그인이 필요한 페이지로 접속한 경우 로그인 페이지로 이동
- 상품 상세페이지 - 장바구니추가, 상품 구매하기, 좋아요 누를시 로그인페이지 이동
- 회원 정보 페이지
- 판매자는 일반 유저의 기능까지 사용 가능하고, 관리자는 모든 기능 사용 가능
- 일반 유저
- 회원 정보 수정
- 회원 정보 페이지에 들어가면 현재 정보 출력
- 정보 수정은 닉네임, 전화번호, 이메일, 주소만 가능
- 유효성 검사는 회원가입과 동일
- 입력 칸이 빈칸 일 경우 “공백 또는 입력하지 않은 부분이 있습니다.” 메시지 처리
- 전화번호, 이메일 중복 불가
- 수정 완료 후 수정 된 정보로 업데이트해서 보여주기
- 비밀번호 변경
- 현재 비밀번호, 새로운 비밀번호, 비밀번호 확인 입력
- 새로운 비밀번호와 비밀번호 확인은 같은 문자열인지 체크
- 입력된 현재 비밀번호가 회원의 비밀번호와 다르면 수정 안됨
- 회원 탈퇴 기능
- 판매자
- 판매 등록한 상품 목록 페이지
- 판매자가 등록한 상품 목록을 출력
- 각 상품을 클릭해 상품 정보 수정 페이지로 이동
- 상품 등록 페이지
- 상품명, 가격, 카테고리, 상세설명, 사이즈 입력 필수, 이미지 등록 필수
- 사이즈는 한번에 여러 사이즈 입력 가능
- 상품이 등록되면 판매 등록한 상품 목록 페이지로 이동
- 상품 정보 수정 페이지
- 현재 상품의 정보가 출력
- 일부 정보를 수정 후 정보 수정 버튼을 눌러서 정보 수정
- 수정 완료 후 수정 된 정보로 업데이트해서 보여주기
- 재고 추가 기능
- 등록된 각 상품을 삭제 가능
- 관리자
- 권한 설정
- 관리자 계정은 일반 유저 계정의 권한을 판매자 권한으로 올려 줄 수 있음
- 관리자 계정은 탈퇴 기능 제한
- 메인 페이지
- 배너 이미지
- 메인 페이지 좋아요 가장 많은 상품 순서로 8개 띄워주기
- 이미지, 상품명, 가격만 표시
- 상품 페이지
- 전체 상품
- 모든 상품 출력
- 이미지, 상품명, 가격, 좋아요 수 표시
- 카테고리별 상품
- 각 카테고리 별로 상품 출력
- 이미지, 상품명, 가격, 좋아요 수 표시
- 상품 상세 페이지
- 각 상품을 클릭해서 상품 상세 페이지로 이동
- 이미지, 상품명, 가격, 카테고리, 상세설명, 사이즈, 좋아요 수, 재고 모두 표시
- 재고 10 이하로 남았으면 재고 표시
- 로그인한 사용자라면 해당 상품 좋아요 여부 표시 후 등록, 해제 가능
- 해당 페이지 접속 할 때마다 상품 조회수 증가
- 상품 검색 기능
- 상품명으로 검색하면 입력한 단어를 포함하는 상품 출력
- 이미지, 상품명, 가격, 좋아요 수 표시
- 장바구니
- 장바구니 페이지
- 장바구니에 담은 상품 목록 출력
- 상품 구매 기능
- 장바구니에 상품 추가
- 장바구니에서 상품 삭제
- 주문