won-store(토이 프로젝트)

  • 주제 선정 

게시판, 수강 신청 사이트, 커뮤니티 게시판 등 많은 후보가 있었지만, 가장 친숙한 쇼핑몰을 만들어보기로 결정했다.

강의를 따라 만들어 경험 해 보기도 했고, 배운 내용을 토대로 기획이나 명세부터 시작해,

혼자 뼈대를 만들어 보고 넣어보고 싶은 기능들을 확장하며 만들어보며, 그때그때 정리하면 많은 도움이 될 것 같다.

명세도 생각나는 대로 보완할 계획이다.


1. 개요

  • 프로젝트 이름 : Won-Store(쇼핑몰)
  • 개발 인원 : 1명
  • 개발 기간 : 2023.03.29 - 2023.04.24
  • 주요 기능 :
    • 회원 - 회원 가입, 회원 정보 수정, 비밀번호 변경, 회원 조회(전체, 단건), 회원 탈퇴
    • 로그인 - 로그인, 로그아웃
    • 포인트 - 포인트 충전, 충전 내역 조회(전체, 단건)
    • 상품 - 상품 생성, 상품 조회(전체, 단건), 상품 수정, 상품 삭제
    • 카테고리 - 카테고리 생성(상위, 하위), 카테고리 수정(상위, 하위), 카테고리 조회(전체, 단건), 카테고리 삭제
    • 상품 리뷰 - 리뷰 생성, 리뷰 수정, 리뷰 조회(전체, 단건), 리뷰 삭제
    • 장바구니 - 장바구니 생성, 장바구니에 상품 추가, 장바구니 상품 수량 변경, 장바구니에 담긴 특정 상품 삭제, 장바구니 조회(전체, 단건)
    • 주문 - 주문 생성, 장바구니 주문 생성, 주문 조회(전체, 단건), 주문 취소
  • 개발 언어 : Java17
  • 개발 환경 : Gradle - Groovy, SpringBoot3.04, Java17, Jpa, Thymeleaf
  • 데이터베이스 : Mysql
  • 형상관리 : Github
  • 간단 소개 : 회원가입을 통해 관리자는 상품을 등록 판매하고, 사용자는 물건을 사거나 취소할 수 있다.
  • 추가하고 싶은 기능(주요 기능 개발 후) : 생각이 나는대로 추가할 예정!
    • 등록된 상품들 페이징
    • Google 로그인, Naver 로그인 구현
    • 상품 Q&A
    • 상품 조회순/최신순 조회 기능

2. 요구사항 분석

  1. 회원 가입 페이지
    • 중복검사
      • 이미 존재하는 아이디는 "이미 사용중인 아이디입니다." 메시지 출력
      • 회원가입이 완료되면 메인페이지로 이동한다.
  2. 로그인 페이지
    • 회원이 로그인을 하지 않은 경우 이용가능한 페이지
      • 회원가입 페이지
      • 로그인 페이지
    • 로그인 검사
      • 아이디와 비밀번호가 일치하지 않을 시에 로그인 실패 메시지 띄어주기
      • 아이디와 비밀번호가 일치시에 로그인 성공 메시지 띄어주기
  3. 회원정보 수정
    • 회원정보 수정은 비밀번호, 주소, 회원이름, 연락처만 수정 가능
  4. 리뷰 작성
    • 회원은 상품에 리뷰를 생성/삭제 할 수 있다.
  5. 장바구니
    • 회원은 장바구니를 이용할 수 있다.
  6. 포인트 충전
    • 회원은 포인트를 충전할 수 있다.
    • 회원은 포인트로 물건을 주문할 수 있다.
    • 회원은 상품 주문시 보유 포인트에서 주문 금액을 차감한다.
    • 회원은 주문 취소시 보유 포인트를 되돌린다.
  7. 상품 등록
    • 상품 등록 시 상품이름, 상품설명, 가격, 수량을 입력해야하고 카테고리를 선택한다.
    • 상품 주문, 취소 시 상품 수량이 변경되어야 한다.
  8. 상품 조회
    • 상품을 등록 순으로 조회 가능해야 한다.
  9. 상품 수정
    • 상품이름, 상품설명, 가격, 수량을 변경할 수 있다.
  10. 상품 주문 - 회원은 원하는 상품을 원하는 원하는 수량만큼 주문할 수 있다. - 회원은 주문한 내역을 조회할 수 있다. - 회원은 주문을 취소할 수 있다.

3. DB설계

대략적인 DB 구조 - 1차 수정

2차 수정 - 카테고리 추가!

3차 수정 - 장바구니 추가(이것 저것 붙이다 보니 많이 지저분해졌다...)


4. API 문서

postman을 이용하여 문서 처리 해보았다!

https://documenter.getpostman.com/view/13712893/2s93Y5Qfmp