💎 Name 공간맛집
💎 Description 인테리어 물품을 빠르고 쉽게, 구매 및 판매할 수 있는 온라인 쇼핑몰 서비스를 구현합니다.
💎 Target Persona
- 김땡땡 (20) : “나만의 집을 꾸미고 싶은데 어떻게 해야할지 모르겠어요”
- 직업: 대학생
- 캐릭터: 갓 자취를 시작한 대학생
✅ Schema
email, name, password, phoneNumber, address, role, timestamps
- 회원가입
- [필수 입력값] email, name, password, password confirm
- [유효성 검사] 회원가입 폼의 입력 값이 조건에 안 맞을 시 이를 사용자에게 알려준다.
- FE) 이메일 형식, 비밀번호와 비밀번호 확인 일치 여부 확인
- BE) 이메일 중복 체크
- [제출 성공] 조건에 맞게 입력 후 제출 버튼을 누를 시, 백엔드 서버와 연결되어 회원가입 정보가 db에 저장된다.
- 로그인
- [필수 입력값] email, password
- [유효성 검사] 로그인 폼의 입력 값이 조건에 안 맞을 시
- FE) 이메일 형식 확인
- BE) 이메일과 비밀번호가 올바른지 확인
- [로그인 성공]
- FE) JWT 토큰이 sessionStorage에 저장되고, 메인 페이지로 이동한다.
- 로그아웃
- FE) sessionStorage에 저장되어 있던 JWT토큰이 제거된다.
- 사용자 정보 조회
- 개인 페이지에서 자신의 회원 정보를 조회할 수 있다.
- 사용자 정보 수정
- 사용자는 개인 페이지에서 자신의 회원 정보를 수정할 수 있다.
- db에 사용자의 비밀번호(해쉬화된 문자열), 휴대폰 번호, 주소를 저장할 수 있다.
- 사용자 정보 삭제
- 사용자는 개인 페이지에서 자신의 회원 정보를 삭제(탈퇴)할 수 있다.
- 관리자 기능
- 관리자 계정이 존재하며, 일반 사용자 계정과 구분된다.
✅ Schema
productId(uuid), productName, company, price, stock(재고), imageUrl, category, description, timestamps
- 카테고리 조회
- FE) 사용자가 카테고리 목록을 화면에서 확인할 수 있다.
- BE) category: furniture, fabric, electronics, cooking, lightings
- 상품 목록
- 사용자가 특정 카테고리를 선택할 시, 해당 카테고리에 속한 상품 목록이 화면에 나타난다.
- 상품 상세
- 사용자가 특정 상품을 선택할 시, 해당 상품의 상세 정보가 화면에 나타난다.
- db에서 상품의 이름, 가격, 설명, 제조사를 불러올 수 있다.
- 카테고리 추가
- 관리자는 관리자 페이지에서, 상품이 속할 카테고리를 추가할 수 있다.
- 카테고리 수정
- 관리자는 관리자 페이지에서, 상품이 속할 카테고리 관련 데이터 (카테고리 이름 등)를 수정할 수 있다.
- 카테고리 삭제
- 관리자는 관리자 페이지에서, 상품이 속할 카테고리 관련 데이터를 삭제할 수 있다.
- 상품 추가
- 관리자는 관리자 페이지에서 상품을 추가할 수 있다.
- 상품 수정
- 관리자는 관리자 페이지에서 상품 관련 데이터를 수정할 수 있다.
- 상품 삭제
- 관리자는 관리자 페이지에서 상품 관련 데이터를 삭제할 수 있다.
- 장바구니 관련 데이터는 localStorage에서 관리
- 장바구니에 속한 상품 관련 데이터가 저장되어서, 페이지를 새로고침해도 장바구니에 상품들이 그대로 남아 있다.
- 장바구니 추가
- 사용자는 상품을 장바구니에 추가할 수 있다.
- 장바구니 수정
- 사용자는 장바구니에 속한 상품의 수량을 수정할 수 있다.
- 장바구니 전체 삭제
- 사용자는 장바구니에서, 버튼 1번의 클릭으로, 장바구니 상의 전체 상품을 제거할 수 있다.
- 장바구니 부분 삭제
- 사용자는 장바구니에서, 일부 상품을 골라서 제거할 수 있다.
- 장바구니 조회
- 사용자는 장바구니에 담긴 상품 목록을 확인할 수 있다.
- 장바구니 가격 조회
- 사용자는 장바구니에 담긴 상품들의 총 가격을 확인할 수 있다.
✅ Order Schema ( * : 스키마에서 유니크한 키 )
*orderId(uuid), User스키마, receiver(receiverName, receiverPhoneNumber, postalCode, address1, address2, ), requestMessage (요청사항), orderStatus( 배송여부 ), timestamps,
✅ rderItem Schema ( * : 스키마에서 유니크한 키 )
orderId, *orderItemId(uuid), Product스키마, quantity(수량), itemStatus( 취소여부 ), timestamps
-
주문 진행
- 주문 상태 : 결제 완료(+결제 취소 개수), 상품 준비 중, 배송 중, 배송 완료
- 취소 여부 : 구매 완료, 취소 완료
- 사용자는 장바구니에 속한 상품들로 주문을 진행할 수 있다.
-
주문 수정
- 사용자는 주문 완료 후 배송이 **시작되기 전(결제 완료)**까지 주문 정보를 수정할 수 있다.
- 받는 사람 이름 수정
- 핸드폰 번호 수정
- 배송지 수정
- 요청 메시지
- 관리자는 사용자의 주문 내역에서 배송 상태를 수정할 수 있다.
- 사용자는 주문 완료 후 배송이 **시작되기 전(결제 완료)**까지 주문 정보를 수정할 수 있다.
-
주문 완료
- db에 배송 상태, 배송지 정보, 주문 총액, 수령자 이름 및 연락처가 저장된다.
- 주문 완료 시, 주문 완료 페이지로 이동한다.
-
주문 조회
- 사용자는 개인 페이지에서 자신의 주문 내역을 조회할 수 있다.
- 관리자는 관리 페이지에서 사용자들의 주문 내역을 조회할 수 있다.
-
주문 취소
- 사용자는 개인 페이지에서 자신의 주문 내역을 취소할 수 있다.
-
주문 삭제
- 관리자는 관리 페이지에서 사용자들의 주문 내역을 삭제할 수 있다.
-
20230418 주요 기능 설명 원본 (백업용)
✅ Schema
email, name, password, address, phoneNumber, role, timestamps- 회원가입
- [필수 입력값] email, name, password, password confirm
- [유효성 검사] 회원가입 폼의 입력 값이 조건에 안 맞을 시 이를 사용자에게 알려준다.
- FE) 이메일 형식, 비밀번호와 비밀번호 확인 일치 여부 확인
- BE) 이메일 중복 체크
- [제출 성공] 조건에 맞게 입력 후 제출 버튼을 누를 시, 백엔드 서버와 연결되어 회원가입 정보가 db에 저장된다.
- 로그인
- [필수 입력값] email, password
- [유효성 검사] 로그인 폼의 입력 값이 조건에 안 맞을 시
- FE) 이메일 형식 확인
- BE) 이메일과 비밀번호가 올바른지 확인
- [로그인 성공]
- FE) JWT 토큰이 sessionStorage에 저장되고, 메인 페이지로 이동한다.
- 로그아웃
- FE) sessionStorage에 저장되어 있던 JWT토큰이 제거된다.
- 사용자 정보 조회
- 개인 페이지에서 자신의 회원 정보를 조회할 수 있다.
- 사용자 정보 수정
- 사용자는 개인 페이지에서 자신의 회원 정보를 수정할 수 있다.
- db에 사용자의 이메일, 이름, 비밀번호(해쉬화된 문자열), 휴대폰 번호, 주소를 저장할 수 있다.
- 사용자 정보 삭제
- 사용자는 개인 페이지에서 자신의 회원 정보를 삭제(탈퇴)할 수 있다.
- 관리자 기능
- 관리자 계정이 존재하며, 일반 사용자 계정과 구분된다.
✅ Schema
productId(uuid), productName, company, price, category, description, timestamps
- 카테고리 조회
- FE) 사용자가 카테고리 목록을 화면에서 확인할 수 있다.
- BE) category: furniture, fabric, electronics, cooking, lightings
- 상품 목록
- 사용자가 특정 카테고리를 선택할 시, 해당 카테고리에 속한 상품 목록이 화면에 나타난다.
- 상품 상세
- 사용자가 특정 상품을 선택할 시, 해당 상품의 상세 정보가 화면에 나타난다.
- db에서 상품의 이름, 가격, 설명, 제조사를 불러올 수 있다.
- 카테고리 추가
- 관리자는 관리자 페이지에서, 상품이 속할 카테고리를 추가할 수 있다.
- 카테고리 수정
- 관리자는 관리자 페이지에서, 상품이 속할 카테고리 관련 데이터 (카테고리 이름 등)를 수정할 수 있다.
- 카테고리 삭제
- 관리자는 관리자 페이지에서, 상품이 속할 카테고리 관련 데이터를 삭제할 수 있다.
- 상품 추가
- 관리자는 관리자 페이지에서 상품을 추가할 수 있다.
- 상품 수정
- 관리자는 관리자 페이지에서 상품 관련 데이터를 수정할 수 있다.
- 상품 삭제
- 관리자는 관리자 페이지에서 상품 관련 데이터를 삭제할 수 있다.
- 장바구니 관련 데이터는 localStorage에서 관리
- 장바구니에 속한 상품 관련 데이터가 저장되어서, 페이지를 새로고침해도 장바구니에 상품들이 그대로 남아 있다.
- 장바구니 추가
- 사용자는 상품을 장바구니에 추가할 수 있다.
- 장바구니 수정
- 사용자는 장바구니에 속한 상품의 수량을 수정할 수 있다.
- 장바구니 전체 삭제
- 사용자는 장바구니에서, 버튼 1번의 클릭으로, 장바구니 상의 전체 상품을 제거할 수 있다.
- 장바구니 부분 삭제
- 사용자는 장바구니에서, 일부 상품을 골라서 제거할 수 있다.
- 장바구니 조회
- 사용자는 장바구니에 담긴 상품 목록을 확인할 수 있다.
- 장바구니 가격 조회
- 사용자는 장바구니에 담긴 상품들의 총 가격을 확인할 수 있다.
✅ Schema
userId(User - objectId), totalPrice, address(postalCode, address1, address2, receiverName, receiverPhoneNumber), status, timestamps
- 주문 진행
- 주문 상태: 결제 완료, 상품 준비 중, 배송 중, 배송 완료
- 사용자는 장바구니에 속한 상품들로 주문을 진행할 수 있다.
- 주문 수정
- 사용자는 주문 완료 후 배송이 **시작되기 전(상품 준비 중)**까지 주문 정보를 수정할 수 있다.
- 받는 사람 이름 수정
- 핸드폰 번호 수정
- 배송지 수정
- 관리자는 사용자의 주문 내역에서 배송 상태를 수정할 수 있다.
- 사용자는 주문 완료 후 배송이 **시작되기 전(상품 준비 중)**까지 주문 정보를 수정할 수 있다.
- 주문 완료
- db에 배송 상태, 배송지 정보, 주문 총액, 수령자 이름 및 연락처가 저장된다.
- 주문 완료 시, 주문 완료 페이지로 이동한다.
- 주문 조회
- 사용자는 개인 페이지에서 자신의 주문 내역을 조회할 수 있다.
- 관리자는 관리 페이지에서 사용자들의 주문 내역을 조회할 수 있다.
- 주문 취소
- 사용자는 개인 페이지에서 자신의 주문 내역을 취소할 수 있다.
- 주문 삭제
- 관리자는 관리 페이지에서 사용자들의 주문 내역을 삭제할 수 있다.
- 회원가입
git clone
npm install
make
이름 | 포지션 | 담당 업무 |
---|---|---|
천서연 | 프론트엔드 (팀장) | 메인, 상품 상세, 결제, 주문 내역, 주문 완료 페이지 |
김득열 | 프론트엔드 | 회원가입, 로그인, 회원 정보 수정, 장바구니, 관리자 페이지 |
이혜정 | 백엔드 | 유저(생성, 조회, 수정, 삭제), 주문(조회, 수정, 삭제, 생성) |
정명진 | 백엔드 | 상품(생성 조회, 수정, 삭제), 배포 |