(논의 시작전 말할 내용: 본인인증, 오류 페이지 디자인, 거래를 결정하기 위한 기능 및 페이지)
- 본인인증(질문, 답) 후순위
각 기능마다 필수적으로 적어야되는 내용
이때 사용자의 경우의 수를 고려해야한다.
사용자의 경우의 수는 다음과 같다.
- 비로그인 사용자
- 로그인 사용자
- 로그인 사용자는 다시 두 가지로 분류, 일반적으로 고려하지 않아도 되는 경우가 많음
- 상품 판매자
- 판매자가 아닌자
위 사용자의 경우의 수로 분류하여 아래의 내용을 생각한다.
- 사용자에게 제공되야하는 정보(= 서버에서 내려줘야하는 정보)
- 사용자가 가능한 행동
로그인 하지 않은 유저가 가능한 행동
가능한 행동
- 메인 페이지 접근
- 상품 검색
- 단일 상품 조회
로그인 페이지로 리다이렉트하는 행동
- 상품 등록
- 가격 제안
- 상품 찜하기
여기서부터 기능
🍎 도메인 : 회원
⚒ 기능 : 로그인
- 시나리오
- 메인페이지의 로그인/회원가입 (모바일 : 로그인) 버튼을 클릭하면 로그인을 할 수 있다.
- 가입된 회원은 가입 방식에 따라 로그인을 할 수 있다.
- 유저 권한이 필요한 기능은 다음과 같다.
- 상품 판매글 등록
- 마이페이지 조회
- 상품 판매자 페이지 조회
1-1. 메인 페이지의 로그인/회원가입 버튼 클릭시 로그인/회원가입 화면이 나타난다.
1-2. 유저 권한이 필요한 기능은 이용시 로그인/회원가입 페이지가 나타난다.
⚒ 회원가입
- 시나리오
- 유저는 제공되는 회원가입 방식 중 하나를 택할 수 있다.
- 회원가입은 이메일 로그인과 소셜 로그인(카카오) 방식을 제공한다.
1-1. 메인 페이지의 로그인/회원가입(모바일 : 로그인) 버튼 클릭시 회원가입을 할 수 있다.
1-2. 로그인 시나리오의 1-2로부터 회원가입을 할 수 있다.
- 회원가입 방식별 요구 정보
- 회원가입 시 필요한 정보는 다음과 같다.
- 이름
- 닉네임
- 이메일(중복불가)
- 비밀번호
- 카카오톡 아이디로 로그인
- 프로필 닉네임
- 프로필 사진
2-1. 이메일 가입(자체 회원 가입)
2-2. 소셜 플랫폼 가입(카카오)
- 회원가입 완료후 로직
- 회원에게 고유한 식별 아이디를 부여한다.
- 회원정보 관리
회원정보는 가입시 선택한 회원가입 방식별로 관리한다.
4-1. 자체 로그인 방식
- 이메일
- 암호화된 비밀번호
- 고유 식별번호
- 가입일
- 회원정보 수정일
4-2. 카카오 로그인 방식
- 카카오 닉네임
- 고유 식별번호
- 가입일
- 회원정보 수정일
고려 중인 기능(질문, 질문에 대한 답)
- 본인인증 수단으로 사용한다.
- 우선순위 최하
소셜 플랫폼 가입(카카오)
카카오 로그인으로 얻을 수 있는 기본 정보는 다음과 같다
- 프로필 닉네임
- 프로필 사진
⚒ 마이페이지
⚒ 프로필
가능한 행동
- 프로필 수정
- 프로필 사진
- 닉네임
- 주소
🍎 상품
⚒ 상품 검색(다건 조회)
- 시나리오
- 사용자는 상품명으로 상품 목록을 조회할 수 있다.
- 사용자는 원하는 조건의 필터를 선택하여 특정 상품의 목록을 조회할 수 있다.
- 아래 조건중 최소 1개 이상의 조건을 사용하여 검색할 수 있다.
- 사용가능한 조건
- 상품 카테고리
- 거래방식
- 상품 가격
1-1. 상품명 검색
1-2. 필터 검색
- 상품 검색시 볼 수 있는 정보
- 상품 목록은 등록된 시간의 최신순으로 정렬된다.
- 상품 다건 검색시 볼 수 있는 정보는 다음과 같다.
- 상품 대표 이미지
- 상품명
- 상품 가격
- 상품 등록 후 지난 시간
- 거래 유형 : 직거래/택배거래/상관 없음
- 찜 여부
- 하트 표시
- 회원의 경우에만 본인이 찜한 상품에 빨간색 하트가 표시된다.
제공해야할 정보
- 필터링 조건
- 가격(오름차순, 내림차순, 범위)
- 등록시간(최신순)
- 카테고리
- 거래 방법(직거래, 택배, 상관없음)
- 상품 리스트
- 상품의 이미지(썸네일)
- 상품명
- 상품가격
- 등록 시간(몇 분 전에 등록되었는지)
- 찜 개수(해당 상품에 몇 명이 찜을 눌렀는지)
- 찜 여부(내가 찜했는지 아닌지, 비로그인 유저에게는 모두 0으로 보임)
상품 검색은 다음과 같은 조건으로 가능하다.
- 상품명
🧨 고려해야할 문제
- 메인 페이지에서 빈 값으로 상품명을 검색하는 경우, 어떤 조건으로 상품을 보여줄 것인가
- 홈 화면에서는 어떤 기준으로 상품을 보여줄 것인가
(최신순으로 보여주면 간단할 것 같음)
⚒ 상품 상세 조회(단건 조회)
- 시나리오
사용자는 상품 목록에서 단건의 상품을 상세조회 할 수 있다.
- 얻을 수 있는 정보
- 판매자 프로필 조회 버튼
- 거래 상태(예약중, 판매중, 거래완료)
- 상품 판매자의 경우 거래 상태를 변경할 수 있다.
- 상품 상태(중고, 새상품)
- 거래 방법
- 상품명
- 가격
- 설명
- 'Offer' 리스트
- 제안자 닉네임
- 제안 등록시간
- 제안된 가격
2-2. 상품 구매자
(현재 디자인에서 거래 완료자를 특정할 방법이 없음, 예를 들어 거래 완료로 상품 상태를 바꿀 경우 누구와 거래했는지 등록할 수 있어야함. 강제로, 물론 다른 방법도 고려 가능)
⚒ 상품 등록
- 시나리오
로그인한 사용자는 메인 페이지의 '상품 판매' 버튼을 클릭하여 판매할 상품을 등록할 수 있다.
- 상품 등록시 입력할 정보
- 상품명
- 상품 이미지
- 최소 1장의 이미지를 업로드 해야 한다.
- 카테고리
- 리스트? 에서 선택
- 가전제품/ ...
- 상품 상태
- 상품 상태는 라이도 버튼으로 선택
- 중고상품/새상품
- 거래 방법
- 거래방법은 라디오 버튼으로 선택
- 직거래/택배거래/상관없음
- 수량
- 가격
- 단위 : 원
- 1 이상의 숫자 입력 가능
- 상품 설명
- 1000자 이내의 설명을 입력할 수 있다.
⚒ 상품 정보 수정
- 시나리오
로그인한 사용자(상품 판매자)는 상품 상세페이지의 게시글 수정 버튼을 클릭하여 상품의 정보를 수정할 수 있다.
⚒ 상품 삭제
- 시나리오
로그인한 사용자(상품 판매자)는 상품 상세페이지의 게시글 삭제 버튼을 클릭하여 등록된 상품을 삭제할 수 있다.
⚒ 구매 내역 조회
- 시나리오
유저는
필요한 데이터
- 상품 리스트
- 판매자 정보(프로필 이미지, 닉네임, 사과 레벨)
- 리뷰 내역
- 상품 정보(상품 id, 상품 제목, 리뷰 작성 여부, 리뷰작성 시간)
⚒ 판매 내역 조회
내가 판매한/판매하는 상품을 조회한다.
- 판매중
- 판매완료
🍎 쪽지
⚒ 쪽지보내기
로그인 사용자는 offer를 했다면 상대방에게 쪽지를 보낼 수 있다.
로그인 회원
- 가능한 행동(제안자)
- 특정 상품에 offer를 했다면 상대방에게 쪽지를 보낼 수 있다.
- 가능한 행동(게시글 작성자)
- 제안자가 보낼 쪽지에 대한 알림을 받을 수 있다.
비로그인 회원
- 쪽지 전송 기능 제공하지 않음.
⚒ 쪽지 목록 보기
로그인 사용자의 경우, 주고 받은 쪽지 목록을 조회할 수 있다.
로그인 회원
- 쪽지 목록을 조회할 수 있다.
비로그인 회원
- 쪽지 목록 조회 기능 제공되지 않음.
⚒ 특정 사용자와의 쪽지 내용 모두 보기(최신순, 페이징)
로그인 사용자의 경우, 특정 상대방과 주고 받은 모든 쪽지 내용을 최신순으로 조회할 수 있다.
로그인 회원
- 특정 사용자와 주고 받은 쪽지 내용을 최신순으로 조회할 수 있다.
비로그인 회원
- 쪽지 내용 조회 기능 제공되지 않음.
⚒ 특정 사용자와 주고 받은 쪽지 목록 삭제(쪽지 목록 단건 삭제)
로그인 사용자의 경우, 쪽지 목록에서 특정 사용자와 대화한 쪽지를 삭제할 수 있다.
로그인 회원
- 쪽지 목록에서 특정 사용자와 주고 받은 쪽지 목록을 삭제할 수 있다.
비로그인 회원
- 해당 기능 제공되지 않음.
🍎 리뷰 작성
판매자가 상품을 올린다 → 구매 예정자가 거래 제안을 한다 → 판매자가 상품을 예약 중으로 옮긴다 → 판매자가 상품을 판매 완료로 바꾼다. → 판매 내역에서 상품이 거래 완료로 옮겨진다 → 리뷰 작성을 선택한다 → 거래 제안 목록 중 거래한 사용자를 선택한다 → 판매자가 구매자에 대한 리뷰를 남긴다 → 구매자에게 알림이 온다 → 구매자가 판매자에 대한 리뷰를 남긴다.
⚒ 리뷰 작성하기
제안한 offer가 채택되었고 거래가 확정된 상태라면 상대방에 대한 리뷰를 남길 수 있다.
로그인 사용자
- 상대방 프로필에 리뷰 작성을 할 수 있다.
- 필요한 데이터
- articleId
- writerId
- targetMemberId
- content
- score
비로그인 사용자
- 해당 기능이 제공되지 않는다.