프로젝트 1주차 회고

송형근·2024년 9월 30일

Side Project - Astraphe

목록 보기
1/4
post-thumbnail

1주차 진행사항

  • 요구사항 정의
  • ERD 작성
  • API 명세 작성

요구사항 정의

  • 이전에도 여러 프로젝트를 진행하며 요구사항 정의서를 작성한 적은 있었지만, 자세하게 작성해본 경험은 이번이 처음인 것 같다.

  • 내가 작성한 부분은 다음과 같음

  • 사용자 관리 및 인증

    • 사용자 엔티티는 모든 사용자 정보를 관리합니다.
    • 또한 다음의 권한으로 나누어집니다.
      • ADMIN
      • MANAGER
      • SELLER
      • CUSTOMER
    • 사용자 엔티티는 다음의 정보가 필요합니다.
      • 사용자 ID, 로그인 ID, 패스워드, 슬랙 ID, 사용자 명, 전화번호, 사용자 권한
    • 회원가입 기능
      • 유저의 아이디, 패스워드와 기타 정보를 전달 받아 회원가입을 진행합니다.
        • loginId, password, slackId, userName, phoneNumber, userRole (SELLER or CUSTOMER or MANAGER)
        • userRole의 경우 ADMIN 권한으로의 가입은 불가능합니다. → ADMIN은 DB에서 수정해서 지정
      • loginId최소 4자 이상, 10자 이하이며 알파벳 소문자 (a~z), 숫자 (0~9)로 구성
      • password최소 8자 이상, 15자 이하이며 알파벳 대소문자 (a~z, A~Z), 숫자 (0~9), 특수문자
      • slackId는 slack의 본인의 고유 멤버 ID 번호를 입력해야 합니다.
        • ex) U079L1BL8G7

    • 로그인 기능
      • loginIdpassword를 입력받아 로그인을 진행합니다.
      • 로그인 성공 시, 로그인에 성공한 유저의 정보와 JWT를 활용하여 토큰을 발급합니다.
      • 토큰에는 다음의 정보가 포함 되어야 합니다.
        • userId(Long), userRole(Enum)
      • 발급한 토큰을 사용하여 사용자 정보를 조회합니다.
    • 수정 기능
      • 유저는 본인의 정보만 수정이 가능합니다.
      • 수정 가능한 데이터는 다음과 같습니다.
        • password, slackId, nickname, phoneNumber
    • 조회 기능
      • 유저는 본인의 정보를 조회 가능합니다.
      • 조회되는 정보는 다음과 같습니다.
        • loginId, slackId, userName, nickname, phoneNumber
    • 삭제 기능
      • 유저는 회원 탈퇴가 가능합니다.
      • 유저가 삭제될 때 연관된 모든 정보가 삭제되어야 합니다.
    • 권한 관리
      • 회원가입, 로그인, 수정, 조회, 삭제: 모두 접근 가능
  • 상품 관리

    • 상품 엔티티는 모든 상품 정보를 관리합니다.
    • isSoldout 필드를 추가하여 재고 소진 여부를 관리합니다.
    • isHidden 필드를 추가하여 상품 숨김 여부를 관리합니다.
    • 상품 엔티티에는 다음의 정보가 반드시 필요합니다.
      • 상품 ID ,업체 ID, 상품명, 상품 이미지 URL , 상품 설명, 상품 설명 이미지 URL , 상품 옵션, 상품 정가 , 상품 할인가, 상품 수량, 카테고리 코드 , 판매 시작 일시, 판매 종료 일시, 별점, 재고 소진 여부, 상품 숨김 여부
    • 상품 추가 기능
      • 판매자는 필요시 상품 설명 이미지를 첨부할 수 있습니다.
      • 상품 추가는 다음의 정보를 받아 추가합니다.
        • 업체 ID, 상품명, 상품 이미지 , 상품 설명, 상품 설명 이미지 , 상품 옵션, 상품 정가 , 상품 할인가, 상품 수량, 카테고리 코드 , 판매 시작 일시, 판매 종료 일시, 별점, 재고 소진 여부, 상품 숨김 여부
    • 상품 상세 조회 기능
      • 구매자는 isHiddenisDeleted이 모두 false인 상품만 조회 가능합니다.
      • 판매자는 isDeletedfalse인 상품만 조회 가능합니다.
        • isHiddentrue라면 본인 업체의 상품만 조회 가능합니다.
      • 상품 상세 정보를 조회할 때 조회되는 정보는 다음과 같습니다.
        • 상품 ID ,업체 ID, 업체명, 상품명, 상품 이미지 URL , 상품 설명, 상품 설명 이미지 URL , 상품 옵션, 상품 정가 , 상품 할인가, 상품 수량, 카테고리 코드 , 판매 시작 일시, 판매 종료 일시, 별점, 재고 소진 여부
    • 상품 검색 기능
      • 구매자는 isHiddenisDeleted이 모두 false인 상품만 조회 가능합니다.
      • 판매자는 isDeletedfalse인 상품만 조회 가능합니다.
        • isHiddentrue라면 본인 업체의 상품만 검색 가능합니다.
      • 상품은 아래의 여러가지 조건으로 검색이 가능합니다.
        • 상품명으로 검색이 가능합니다.
        • 상품의 카테고리별로 검색이 가능합니다.
        • 업체명 으로 검색이 가능합니다.
        • 상품의 생성일, 수정일, 가격낮은 순, 가격 높은 순으로 정렬이 가능합니다.
        • 최근 상품 조회 기록 기반으로 AI의 추천 순 정렬이 가능합니다 - Optional
      • 상품 검색시 페이지별로 아래의 정보로 검색 결과가 나와야 합니다.
        • 상품 ID ,업체 ID, 업체명, 상품명, 상품 이미지 URL , 상품 설명, 상품 설명 이미지 URL , 상품 옵션, 상품 정가 , 상품 할인가, 상품 수량, 카테고리 코드 , 판매 시작 일시, 판매 종료 일시, 별점, 재고 소진 여부
    • 상품 정보 수정 기능
      • 판매자는 본인 업체의 상품만 수정이 가능합니다.
      • 수정 가능한 정보는 다음과 같습니다.
        • 상품명, 상품 이미지 URL , 상품 설명, 상품 설명 이미지 URL , 상품 옵션, 상품 정가 , 상품 할인가, 상품 수량, 카테고리 코드 , 판매 시작 일시, 판매 종료 일시, 상품 숨김 여부
    • 상품 수량 수정 기능
      • 주문 시 상품 재고를 수정하기 위한 기능입니다.
      • 수량은 0보다 작아질 수 없습니다.
      • 수량이 0이되면 isSoldouttrue로 변경합니다.
    • 상품 삭제
      • 판매자는 본인 업체의 상품만 삭제가 가능합니다.
    • 카테고리 테이블을 따로 만들어 카테고리를 관리합니다.
      • 카테고리 테이블은 카테고리 코드, 카테고리 명 을 포함해야 합니다.
    • 권한 관리
      • 상품 추가, 상품 정보 수정, 상품 삭제 : 판매자, 관리자, 어드민 접근 가능
      • 상품 상세 조회, 상품 검색 : 모두 접근 가능
  • 업체 관리

    • 업체는 상품을 판매하는 주체로, 상품 및 본인 업체의 정보를 관리합니다.
    • 업체 엔티티에는 다음의 정보가 필요합니다.
      • 업체ID ,소유주ID, 업체 이름, 업체 설명, 업체 주소
    • 업체 추가 기능
      • 업체 추가는 다음의 기능을 받아 추가합니다.
        • 소유주ID, 업체 이름, 업체 설명, 업체 주소
    • 업체 상세 조회 기능
      • 모든 사용자는 isDeleted필드가 false인 업체만 조회 가능합니다.
      • 업체 상세 정보를 조회할 때 조회되는 정보는 다음과 같습니다.
        • 업체ID ,소유주ID, 업체 이름, 업체 설명, 업체 주소
    • 업체 검색 기능
      • 모든 사용자는 isDeleted필드가 false인 업체만 검색 가능합니다.
      • 업체는 업체명으로 검색이 가능합니다.
      • 업체 검색시 페이지별로 아래의 정보로 검색 결과가 나와야합니다.
        • 업체ID ,소유주ID, 업체 이름, 업체 설명, 업체 주소
    • 업체 수정 기능
      • 판매자는 본인 업체의 정보만 수정이 가능합니다.
      • 수정 가능한 정보는 다음과 같습니다.
        • 업체 이름, 업체 설명, 업체 주소
    • 업체 삭제 기능
      • 판매자는 본인 업체만 삭제가 가능합니다.
    • 권한 관리
      • 업체 추가, 업체 수정, 업체 삭제 : 판매자, 관리자, 어드민 접근 가능
      • 업체 상세 조회, 업체 검색 : 모두 접근 가능

ERD 작성


API 명세 작성

  • ERD와 요구사항을 토대로 API 명세를 GitBook을 통해 작성했습니다.
  • J1P3ter API 명세
profile
티스토리로 이주 (https://lucas-song94.tistory.com)

0개의 댓글