Skip to content

이거어때?(What Do You Think About?) _음악, 식당, 영화, 강의, 여행지, 전자기기, 호텔, 와인, 옷, 앱 등 다양한 분야의 상품을 리뷰하는 플랫폼!

Notifications You must be signed in to change notification settings

Codeit-Part4-SFJs/WDYTA

Repository files navigation


image



What Do You Think About?

BuildTestCICDNotificateMergedNotificatePullRequest

이거어때?(What Do You Think About?)
음악, 식당, 영화, 강의, 여행지, 전자기기, 호텔, 와인, 옷, 앱 등
다양한 분야의 상품을 리뷰하는 플랫폼

🔗 프로젝트 링크 WDYTA

📅 개발 기간 : 24.05.18 ~ 24.06.24 (6주)



💁🏻‍♀팀원 소개💁🏻‍♂

남현준 손승현 안연아 이주형 최수민

@hyunjun9788

@linason-esc

@yeona813

@mangang0713

@suMin-97


⚙️ 기술 스택

기술스택



📺 화면 구성

Image 1 Image 2
Image 3 Image 4
Image 5 Image 6


📋 역할 분담

🐻 남현준

  • 개발
    • 공통 컴포넌트 : image, icon, loading, productCard
    • 페이지 : 프로필 페이지
    • 모달 : 팔로워, 팔로잉 유저 목록, 프로필 편집 모달
    • Product, Follow API 초기 세팅
  • 비개발

🐰손승현

  • 개발
    • 공통 컴포넌트 : chip
    • 페이지 : 홈페이지
    • 모달 : 상품 추가 모달
    • 로고, favicon 디자인
  • 비개발
    • 팀미팅 회의록 작성

🐤 안연아

  • 개발
    • 공통 컴포넌트 : input
    • 페이지 : 로그인, 회원가입, 소셜 로그인, 404 페이지
    • 모달 : Alert, 리뷰 작성, 상품 편집 모달
    • Oauth, Image, Auth API 초기 세팅
    • 상품 추가, 상품 리뷰 수정 모달 UI
  • 비개발
    • 피그마를 활용한 기술스택 제작
    • 발표 자료 준비 및 제작
    • 리드미 작성

🐭 이주형

  • 개발
    • 개발 환경 초기 세팅
    • 공통 컴포넌트 : button, dropdown, floating, sort
    • 페이지 : 상품 비교 페이지
    • 모달 : 비교 상품 교체 모달, 비교 상품 확인 모달
  • 비개발
    • 팀미팅 회의 진행
    • 발표

🐶 최수민

  • 개발
    • 개발환경 초기 세팅
    • 공통 컴포넌트 : gnb, sidemenu
    • 페이지 : 상품 상세 페이지
    • 모달 : 리뷰 수정 모다리
    • Category, Review, User API 초기 세팅
    • 모달, Tanstack Query, Zustand 초기 세팅
    • AWS 배포 및 CICD 자동화 구축
  • 비개발
    • 발표 자료 준비


⚒️ 주요 기능

회원가입, 로그인 페이지

  • React Hook Form을 사용하여 모든 입력 필드를 효율적으로 관리
  • 이메일, 닉네임, 비밀번호를 입력하여 회원가입 가능
  • 중복된 이메일•닉네임으로 가입이 불가
  • 이메일과 비밀번호를 입력하여 로그인 가능
  • 로그인 성공 시, 발급된 accessToken•userId를 Next.js 쿠키에 저장

소셜 로그인 페이지

  • OAuth 2.0을 활용한 카카오톡, 구글 간편 로그인 가능
  • 소셜 로그인 성공 시, 발급된 accessToken•userId를 Next.js 쿠키에 저장

홈 페이지

  • 페이지 무한 스크롤 및 스켈레톤 적용
  • 반응형을 고려한 그리드 레이아웃 구현
  • 리뷰 수로 정렬된 상위 6개 상품("지금 핫한 상품"), 별점으로 정렬된 상위 6개 상품("별점이 높은 상품") 데이터 반영
  • 카테고리•검색•정렬을 변경할 시 URL 및 query key 변경으로 상품 동적 데이터 반영
  • Zustand를 활용하여 페이지 이동 시 검색어 삭제
  • 팔로워 수에 따른 리뷰어 랭킹 확인 가능
  • 상품 추가하기 버튼(Floating)을 통한 새로운 상품 추가 가능
    • 상품 추가 모달을 통한 상품의= 이름, 카테고리, 이미지, 소개글 작성 가능
    • 상품 추가 완료 후 추가한 상품 상세 페이지로 이동
  • 설정하기 버튼을 통한 내프로필 페이지 이동 및 로그아웃 기능

상품 상세 페이지

  • 찜 버튼과 리뷰 좋아요 Optimistic Updates 적용
  • 카카오 공유하기 및 URL 클립보드 복사 가능
  • 리뷰 무한 스크롤 적용
  • 리뷰 정렬 버튼을 클릭할 때 URL을 변경하고, 이에 따라 URL의 query key를 변경하여 리뷰 리스트의 정렬 순서를 조정
  • 비교하기 버튼을 통해 비교 상품 변경 가능
    • 이미 비교 상품에 들어가 있는 상품을 비교하려고 할 시 중복 알림 기능
    • 비교 상품 두 개 중 하나를 선택하여 교체 가능
    • 즉시 비교하기 페이지로 이동 가능
  • 자신이 생성한 상품일 경우 상품 편집하기 버튼 표시
    • 상품 편집하기 모달을 통한 상품의 상품명, 이미지, 카테고리, 소개글 변경 가능
    • 이전 캐시값 초기화 및 재요청으로 편집된 상품 정보가 화면에 바로 반영
  • 자신이 생성한 리뷰일 경우 수정 및 삭제 기능 추가
    • 상품 리뷰 작성•수정 모달을 통한 상품의 별점, 리뷰 이미지, 리뷰글 변경 가능
    • 이전 캐시값 초기화 및 재요청으로 수정된 리뷰가 화면에 바로 반영

비교하기 페이지

  • QueryString을 통해 URL의 상태에 따라 페이지 초기값이 변경
  • Zustand를 통해 Compare 페이지 접근 시 자동으로 QueryString이 적용되어 이동
  • 비교 후 이긴 상품의 상세 페이지로 이동 가능
  • 상품 간의 비교가 무승부일 시 홈 페이지로 이동 가능

프로필 페이지

  • 페이지 무한 스크롤 및 스켈레톤 적용
  • 반응형을 고려한 그리드 레이아웃 구현
  • query params 사용하여 URL에 userId 및 메뉴 이름 저장
    • 본인 프로필은 userId를 입력하지 않아도 접근 가능
    • 메뉴 이름 입력하지 않고 접근 시 '리뷰 남긴 상품'으로 기본값 설정
  • query key에 상품 탭 이름을 props로 받아 효율적으로 데이터 갱신
  • URL과 query key를 활용한 메뉴별 상품 리스트 정렬
  • 본인 프로필이 아닌 다른 유저 프로필 경우 팔로우 기능 사용 가능
  • 팔로워, 팔로잉 유저 목록 모달 무한 스크롤 적용
  • 팔로우 버튼 Optimistic Updates 적용
  • 본인 프로필 페이지인 경우에만 프로필 편집 기능 사용 가능
    • 프로필 편집 기능으로 닉네임, 프로필 이미지, 소개글 변경 가능
    • 이전 캐시 초기화 및 재요청으로 수정된 프로필이 화면에 바로 반영

About

이거어때?(What Do You Think About?) _음악, 식당, 영화, 강의, 여행지, 전자기기, 호텔, 와인, 옷, 앱 등 다양한 분야의 상품을 리뷰하는 플랫폼!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages