jungmyungjin / gonggan_mazzip

인테리어 용품 쇼핑몰 공간맛집

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

gonggan_mazzip

공간맛집 사이트 보러가기!↗️

🙋‍♀️서비스 소개


💎 Name 공간맛집

💎 Description 인테리어 물품을 빠르고 쉽게, 구매 및 판매할 수 있는 온라인 쇼핑몰 서비스를 구현합니다.

💎 Target Persona

  • 김땡땡 (20) : “나만의 집을 꾸미고 싶은데 어떻게 해야할지 모르겠어요”
  • 직업: 대학생
  • 캐릭터: 갓 자취를 시작한 대학생

✨ 주요 기능 설명


사용자(User) 관련 기능

✅ 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에 사용자의 비밀번호(해쉬화된 문자열), 휴대폰 번호, 주소를 저장할 수 있다.
  • 사용자 정보 삭제
    • 사용자는 개인 페이지에서 자신의 회원 정보를 삭제(탈퇴)할 수 있다.
  • 관리자 기능
    • 관리자 계정이 존재하며, 일반 사용자 계정과 구분된다.

상품(Product) 관련 기능

Schema

productId(uuid), productName, company, price, stock(재고), imageUrl, category, description, timestamps

  • 카테고리 조회
    • FE) 사용자가 카테고리 목록을 화면에서 확인할 수 있다.
    • BE) category: furniture, fabric, electronics, cooking, lightings
  • 상품 목록
    • 사용자가 특정 카테고리를 선택할 시, 해당 카테고리에 속한 상품 목록이 화면에 나타난다.
  • 상품 상세
    • 사용자가 특정 상품을 선택할 시, 해당 상품의 상세 정보가 화면에 나타난다.
    • db에서 상품의 이름, 가격, 설명, 제조사를 불러올 수 있다.
  • 카테고리 추가
    • 관리자는 관리자 페이지에서, 상품이 속할 카테고리를 추가할 수 있다.
  • 카테고리 수정
    • 관리자는 관리자 페이지에서, 상품이 속할 카테고리 관련 데이터 (카테고리 이름 등)를 수정할 수 있다.
  • 카테고리 삭제
    • 관리자는 관리자 페이지에서, 상품이 속할 카테고리 관련 데이터를 삭제할 수 있다.
  • 상품 추가
    • 관리자는 관리자 페이지에서 상품을 추가할 수 있다.
  • 상품 수정
    • 관리자는 관리자 페이지에서 상품 관련 데이터를 수정할 수 있다.
  • 상품 삭제
    • 관리자는 관리자 페이지에서 상품 관련 데이터를 삭제할 수 있다.

[FE] 장바구니 관련 기능

  • 장바구니 관련 데이터는 localStorage에서 관리
    • 장바구니에 속한 상품 관련 데이터가 저장되어서, 페이지를 새로고침해도 장바구니에 상품들이 그대로 남아 있다.
  • 장바구니 추가
    • 사용자는 상품을 장바구니에 추가할 수 있다.
  • 장바구니 수정
    • 사용자는 장바구니에 속한 상품의 수량을 수정할 수 있다.
  • 장바구니 전체 삭제
    • 사용자는 장바구니에서, 버튼 1번의 클릭으로, 장바구니 상의 전체 상품을 제거할 수 있다.
  • 장바구니 부분 삭제
    • 사용자는 장바구니에서, 일부 상품을 골라서 제거할 수 있다.
  • 장바구니 조회
    • 사용자는 장바구니에 담긴 상품 목록을 확인할 수 있다.
  • 장바구니 가격 조회
    • 사용자는 장바구니에 담긴 상품들의 총 가격을 확인할 수 있다.

주문(Order) 관련 기능

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 주요 기능 설명 원본 (백업용)

    사용자(User) 관련 기능

    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에 사용자의 이메일, 이름, 비밀번호(해쉬화된 문자열), 휴대폰 번호, 주소를 저장할 수 있다.
    • 사용자 정보 삭제
      • 사용자는 개인 페이지에서 자신의 회원 정보를 삭제(탈퇴)할 수 있다.
    • 관리자 기능
      • 관리자 계정이 존재하며, 일반 사용자 계정과 구분된다.

    상품(Product) 관련 기능

    Schema

    productId(uuid), productName, company, price, category, description, timestamps

    • 카테고리 조회
      • FE) 사용자가 카테고리 목록을 화면에서 확인할 수 있다.
      • BE) category: furniture, fabric, electronics, cooking, lightings
    • 상품 목록
      • 사용자가 특정 카테고리를 선택할 시, 해당 카테고리에 속한 상품 목록이 화면에 나타난다.
    • 상품 상세
      • 사용자가 특정 상품을 선택할 시, 해당 상품의 상세 정보가 화면에 나타난다.
      • db에서 상품의 이름, 가격, 설명, 제조사를 불러올 수 있다.
    • 카테고리 추가
      • 관리자는 관리자 페이지에서, 상품이 속할 카테고리를 추가할 수 있다.
    • 카테고리 수정
      • 관리자는 관리자 페이지에서, 상품이 속할 카테고리 관련 데이터 (카테고리 이름 등)를 수정할 수 있다.
    • 카테고리 삭제
      • 관리자는 관리자 페이지에서, 상품이 속할 카테고리 관련 데이터를 삭제할 수 있다.
    • 상품 추가
      • 관리자는 관리자 페이지에서 상품을 추가할 수 있다.
    • 상품 수정
      • 관리자는 관리자 페이지에서 상품 관련 데이터를 수정할 수 있다.
    • 상품 삭제
      • 관리자는 관리자 페이지에서 상품 관련 데이터를 삭제할 수 있다.

    [FE] 장바구니 관련 기능

    • 장바구니 관련 데이터는 localStorage에서 관리
      • 장바구니에 속한 상품 관련 데이터가 저장되어서, 페이지를 새로고침해도 장바구니에 상품들이 그대로 남아 있다.
    • 장바구니 추가
      • 사용자는 상품을 장바구니에 추가할 수 있다.
    • 장바구니 수정
      • 사용자는 장바구니에 속한 상품의 수량을 수정할 수 있다.
    • 장바구니 전체 삭제
      • 사용자는 장바구니에서, 버튼 1번의 클릭으로, 장바구니 상의 전체 상품을 제거할 수 있다.
    • 장바구니 부분 삭제
      • 사용자는 장바구니에서, 일부 상품을 골라서 제거할 수 있다.
    • 장바구니 조회
      • 사용자는 장바구니에 담긴 상품 목록을 확인할 수 있다.
    • 장바구니 가격 조회
      • 사용자는 장바구니에 담긴 상품들의 총 가격을 확인할 수 있다.

    주문(Order) 관련 기능

    Schema

    userId(User - objectId), totalPrice, address(postalCode, address1, address2, receiverName, receiverPhoneNumber), status, timestamps

    • 주문 진행
      • 주문 상태: 결제 완료, 상품 준비 중, 배송 중, 배송 완료
      • 사용자는 장바구니에 속한 상품들로 주문을 진행할 수 있다.
    • 주문 수정
      • 사용자는 주문 완료 후 배송이 **시작되기 전(상품 준비 중)**까지 주문 정보를 수정할 수 있다.
        • 받는 사람 이름 수정
        • 핸드폰 번호 수정
        • 배송지 수정
      • 관리자는 사용자의 주문 내역에서 배송 상태를 수정할 수 있다.
    • 주문 완료
      • db에 배송 상태, 배송지 정보, 주문 총액, 수령자 이름 및 연락처가 저장된다.
      • 주문 완료 시, 주문 완료 페이지로 이동한다.
    • 주문 조회
      • 사용자는 개인 페이지에서 자신의 주문 내역을 조회할 수 있다.
      • 관리자는 관리 페이지에서 사용자들의 주문 내역을 조회할 수 있다.
    • 주문 취소
      • 사용자는 개인 페이지에서 자신의 주문 내역을 취소할 수 있다.
    • 주문 삭제
      • 관리자는 관리 페이지에서 사용자들의 주문 내역을 삭제할 수 있다.

🛠️ 기술 스택


img

🖥 실행 방법


git clone 
npm install
make

👥 팀원 및 역할 소개


이름 포지션 담당 업무
천서연 프론트엔드 (팀장) 메인, 상품 상세, 결제, 주문 내역, 주문 완료 페이지
김득열 프론트엔드 회원가입, 로그인, 회원 정보 수정, 장바구니, 관리자 페이지
이혜정 백엔드 유저(생성, 조회, 수정, 삭제), 주문(조회, 수정, 삭제, 생성)
정명진 백엔드 상품(생성 조회, 수정, 삭제), 배포

About

인테리어 용품 쇼핑몰 공간맛집


Languages

Language:JavaScript 71.1%Language:CSS 15.8%Language:HTML 12.8%Language:Makefile 0.2%Language:Shell 0.1%Language:Dockerfile 0.1%