Giter VIP home page Giter VIP logo

final-04-fearless4's Introduction

TravelUs 🚌

🔗TravelUs 바로가기

목차

  1. TravelUs 서비스 소개
  2. 개발 기간
  3. 팀 소개
  4. 역할 분담
  5. 협업 방식
  6. 프로젝트 목표
  7. 기능
  8. 컨벤션 및 브랜치 전략
  9. 개발 환경
  10. 폴더 구조
  11. 프로젝트 소감
  12. 출처

1. TravelUs 서비스 소개

서비스명 TravelUs는 "Travel"과 "Us"의 합성어로, 함께 여행하자는 의미를 담고 있습니다. 또한 읽을 때, "Travelers"로도 들릴 수 있어 여행자들을 의미하기도 합니다.

그리고 저희 마스코트는 떠돌이 고양이입니다. 떠돌이 고양이처럼 자유롭게 여러 장소를 다니면서 새로운 만남을 한다는 의미에서 선택하게 되었습니다.

저희 서비스는 동행을 원하는 여행자들뿐만 아니라, 여행상품 판매자들, 그리고 새로운 사람들과 만남과 교류를 통해 직간접 여행 경험을 공유하고 싶은 분들에게도 적합한 서비스입니다. 이 서비스를 통해 여행자들을 함께 여행의 즐거움을 공유하고, 여러 사람들과 연결될 수도 있습니다.

  • 여행자들은 게시글 작성을 통해 여행에 대한 경험이나, 원하는 여행 상품 동행을 구할 수 있고, 댓글 기능을 통해 서로 소통하며 여행의 즐거움을 공유할 수 있습니다.
  • 여행상품 판매자들은 자신의 상품을 등록하고 홍보할 수 있습니다.

2. 개발 기간

6/1 - 6/6 : 프로젝트 계획 설립
6/7 - 6/27 : 공통 컴퍼넌트 개발 → 역할분담별 기능 구현 → 유지보수

3. 팀 소개

Hello, there! 저희는 4명의 Front-End 개발자로 구성된 Fearless 4 입니다. 저희는 모든 팀원이 MBTI F성격 유형이며, 팀원들과 함께라면 어떤 어려움에도 두려움 없이 도전에 임하겠다는 마음으로 팀명을 Fearless 4로 정하였습니다.

( LIKELION FE5 Project Team 4)

강동훈 김소연 정준영 최사라
강동훈_profile_img 김소연_profile_img 정준영_profile_img 최사라_profile_img
starcradle101 sy412 DayTeaJun developer-sala
팀장 팀원 팀원 / 테크 리더 팀원

4. 역할 분담

강동훈

팀장으로서의 역할

  • 팀장으로서 프로젝트의 전반적인 일정을 관리했습니다.
  • 프로젝트에서 사용할 기술스택, 코드 및 커밋 컨벤션, 브랜치 전략을 제안하고 팀원과의 논의롤 통해 결정했습니다.

게시물

회원가입 단계 프로필 설정 페이지 마크업 및 기능 구현

  • 사용자가 회원가입 시 닉네임, ID를 입력하고 프로필 사진 및 소개 문구를 입력하는 페이지의 마크업 및 기능을 구현했습니다.
  • 정규표현식을 사용하여 제공된 백엔드의 프로필 이미지 확장자와 용량 제한에 대한, 그리고 사용자 ID에 대한 유효성 검사를 진행했습니다.

게시물 마크업 및 기능 구현

  • 게시물 작성 페이지에서는 useRef 훅을 사용하여 사용자가 textarea에 입력한 값을 참조하고, 이를 상태로 저장해 사용자가 업로드한 이미지와 함께 서버에 요청을 보낼 수 있도록 했습니다. 또한 scrollHeight 속성을 사용해 사용자가 텍스트를 입력할때마다 textarea의 크기가 조절되도록 했습니다.
  • 게시물 상세 페이지에서는 사용자가 작성한 게시물을 확인하고, 삭제 버튼을 클릭할 경우 사용자가 작성한 게시글을 삭제할 수 있도록 했습니다.
  • 게시물 상세 페이지에서 게시글을 수정할 경우, React Router를 사용해 상세 페이지의 텍스트와 이미지 콘텐츠를 불러와 수정할 수 있도록 했습니다.
  • 프로필 페이지에서 사용자가 원하는 게시글 목록 스타일에 따라 리스트 형태로 게시글을 확인하거나 그리드 형태로 사진이 포함된 게시글을 확인할 수 있도록 했습니다.

댓글

  • 사용자는 게시글 상세 페이지에서 댓글을 작성할 수 있으며, 작성된 댓글은 moment.js를 사용하여 초, 분, 시, 일 단위로 언제 작성되었는지 확인할 수 있도록 했습니다.
  • 현재 로그인한 사용자가 댓글 작성자와 일치할 경우 댓글을 삭제할 수 있도록 했으며, 타 사용자가 작성한 댓글을 클릭할 경우 신고가 가능하도록 했습니다.

김소연

홈피드 페이지

검색 페이지

채팅 페이지

  • 채팅 페이지 마크업

정준영

테크리더로서의 역할

  • 모두가 처음으로 시작한 팀 프로젝트로, 저도 그러해서 ‘기술적인 문제로 모르는 것이 있다면 내가 모르더라도 해결할 때까지 끝까지 도와주겠다’ 고 팀원들에게 말하고 프로젝트에 임하였습니다.

프로필 페이지

  • 사용자 프로필 페이지
  • 사용자 프로필 수정 페이지
  • 다른 사용자 프로필 페이지
  • 작업 내용
    • 프로필 페이지에서 프로필 컴포넌트를 담당하였고, 해당 유저에 따른 프로필 정보를 구현했습니다.
    • 프로필 수정 시, 기존 유저의 데이터에서 수정하도록 하고, 수정이 완료되면 해당 유저DB에 반영하도록 구현하였습니다.
    • 해당 프로필 페이지에서 계정ID가 없는 유저로 이동했다면, 404 페이지를 보여주도록 하였습니다.
    • Modal을 구현해, 로그아웃 기능을 구현하였습니다.

팔로우 페이지

  • 팔로잉 목록 페이지
  • 팔로워 목록 페이지
  • 작업 내용
    • 다른 유저의 프로필에서 팔로우를 할 수 있는 기능을 구현하였습니다.
    • 해당 유저의 프로필에서의 기준으로 팔로잉 및 팔로우 수를 구현하였습니다.
    • 팔로워 및 팔로우 수를 클릭 시, 해당 팔로우 페이지로 이동하여 누가 팔로우를 했는지 볼 수 있으며, 해당 페이지에서 로그인한 유저의 기준으로 팔로우 및 팔로우 취소를 할 수 있도록 구현하였습니다.
    • 해당 팔로우 페이지에서 팔로우 유저가 없다면, 검색 페이지 이동하는 것을 권장하는 UI를 구현하였습니다.

기타

  • 모바일 뷰 적용
  • 라우터 및 페이지 경로 관리
  • 리팩토링 : 렌더링 상향을 위한 이미지 최적화 라이브러리 도입

최사라

상품페이지

  • 상품 리스트
  • 상품 등록 페이지
  • 상품 수정 페이지

기타

  • bottomnav 애니메이션 효과 기능 추가
  • Splash 및 404페이지 화면 디자인 및 애니메이션 효과 추가
  • Toast 기능 추가

공통

로그인 페이지

  • 로그인 메인 페이지
  • 이메일 로그인 페이지
  • 이메일로 회원가입
  • 프로필 설정

5. 협업 방식

  • 🎨 피그마 디자인
  • 🤙 라이브 쉐어
    • Visual Studio Code의 Live Share 확장 프로그램을 사용하여 프로젝트 진행 중 어려움을 겪는 부분을 공유하고 해결했습니다.
  • 🌳 브랜치 전략
    • 소규모 프로젝트의 원할한 진행을 위해서, GitHub Flow 브랜치 전략을 사용했습니다. 개발부터 배포까지의 흐름이 단순해서 첫 협업 경험에서 사용하기 좋다고 판단했습니다.

6. 프로젝트 목표

  1. 리액트 사용법을 익히고 실력 향상시키기

  2. 협업에 필요한 소프트 스킬 기르기

  3. 다른 사람들과 같이 하는 프로젝트 환경에 익숙해지기

7. 기능

페이지별 기능

Splash 회원가입 로그인
splash email loginPage
홈피드 검색 404 페이지
HomeFeed searchPage 404page
채팅 프로필 프로필 수정
chatpage profilepage profileeditpage
게시글 등록 게시글 수정 게시글 삭제
postUpload postEdit postDel
게시글 댓글 상품 등록 상품 정렬
댓글 작성 상품등록 상품정렬
팔로우 로그아웃 토스트
followpage logoutpage 토스트

차별화 기능

1) 이미지 유효성 검사 구체화

validation

  • 프로필, 게시글, 상품에서 사용자가 이미지 업로드 시 input 요소 accept 속성에 지정되지 않은 파일들도 선택되는 문제를 해결하기 위해 유효성 검사 기능을 좀 더 구체적으로 만들어 추가하였습니다.
  • 기존에는 input 요소 accept 속성에 accept='image/*'로 설정하여, 이미지 업로드 시 지정된 확장자의 파일만 사용자가 선택할 수 있게 설정하였습니다.
  • 하지만 사용자가 형식을 사용자 지정 파일로 선택하지 않고, 모든 파일로 선택하여 업로드하는 경우, accept에 지정하지 않은 파일들도 선택이 가능해지는 문제점이 있습니다.
  • 그래서 저희는 업로드되는 파일의 형식이 이미지 파일로만 설정되도록 한번 더 구체적 유효성 검사 기능을 추가하였습니다.

2) 요건에 맞는 상품을 정렬하여 보여주는 기능

filter

  • 사용자들이 원하는 조건에 맞는 상품을 손쉽게 찾을 수 있도록 해당 기능을 추가하였습니다.
  • 사용자들이 함께 떠나는 상품 목록에서 🔥추천 상품이나 🤑할인 상품 버튼을 클릭하면, 해당 요건에 맞는 상품이 정렬되어 보여집니다.
  • 상품 판매자가 상품 등록할 때 카테고리 [추천], [할인]을 선택할 수 있고, 선택하면 해당 카테고리가 적용됩니다.
  • 또한, 사용자들이 추천이나 할인 상품을 보다가 전체 상품을 보고 싶을 때, # 전체 상품 버튼을 누르면 처음처럼 전체 상품 목록을 볼 수 있습니다.

3) 검색 디바운스 기능

search_Animation

  • 불필요한 검색 요청의 수를 제어함으로써 서버 부하를 감소시키기 위해 해당 기능을 추가하였습니다. 즉, 사용자가 검색어를 입력하는 동안 실시간으로 관련 검색어를 보여주면서도, 불필요한 요청을 최소화하여 사이트의 성능과 사용자 경험을 향상시킵니다.
  • 사용자가 계정 검색에서 입력할 때마다 바로 검색 요청이 보내지지 않고, 일정 시간 동안 입력이 없을 때에만 요청이 보내집니다.
  • 사용자가 연속적으로 검색어를 입력하는 동안 디바운스 타이머는 재설정되어, 마지막 입력 이후 일정 시간이 경과되어야 찾고자 하는 계정명이 보여집니다.

4) bottomnav 아이콘 선택 시 애니메이션 효과

navbarbottom_Animation

  • 다른 페이지로 이동할 때, 사용자가 현재 본인이 선택한 아이콘에 대해 시각적으로 인식 할 수 있어 가고자 하는 페이지를 탐색하는데 도움을 주고, 사용자가 더욱 즐겁게 앱 또는 웹 사이트를 탐색할 수 있도록 해당 기능을 추가하였습니다.
  • 다른 페이지를 이동하기 위해 사용자가 bottomnav에서 아이콘을 선택하면 아이콘의 색 변화와 360도 회전하는 애니메이션 효과가 적용됩니다.

8. 컨벤션 및 브랜치 전략

컨벤션

코드컨벤션

  • Prettierrc: 일관된 코드 스타일을 적용시켜 개발자들이 코드 스타일을 일일이 조정할 필요가 없습니다. 따라서 시간을 절약할 수 있고, 가독성도 향상되며 유지보수에도 용이하게 하는 등 개발 프로세스를 더 효율적으로 해주기에 사용하였습니다.

.prettierrc 설정

{
	"printWidth": 80,
	"tabWidth": 2,
	"useTabs": true,
	"semi": true,
	"singleQuote": true,
	"jsxSingleQuote": true,
	"trailingComma": "es5",
	"bracketSpacing": true,
	"bracketSameLine": false,
	"arrowParens": "always"
}

커밋 컨벤션

feat        : 기능 (새로운 기능)  
fix         : 버그 (버그 수정)  
refactor    : 리팩토링  
design      : CSS 등 사용자 UI 디자인 변경  
comment     : 필요한 주석 추가 및 변경  
style       : 스타일 (코드 형식, 세미콜론 추가: 비즈니스 로직에 변경 없음)  
docs        : 문서 수정 (문서 추가, 수정, 삭제, README)  
test        : 테스트 (테스트 코드 추가, 수정, 삭제: 비즈니스 로직에 변경 없음)  
chore       : 기타 변경사항 (빌드 스크립트 수정, assets, 패키지 매니저 등)  
init        : 초기 생성  
rename      : 파일 혹은 폴더명을 수정하거나 옮기는 작업만 한 경우  
remove      : 파일을 삭제하는 작업만 수행한 경우

브랜치 전략

  • GitHubFlow: 비교적 단순하고 직관적인 구조를 가지고 있어, 작은 규모의 단기간 프로젝트에 팀원들이 쉽게 학습하고 적용할 수 있어 이 전략을 선택하였습니다.

9. 개발 환경

1 ) 프론트엔드 기술

  • 리팩토링 이후

2 ) 백엔드 기술

멋쟁이사자처럼 프론트엔드 스쿨에서 제공된 API 사용

3 ) 도구 및 라이브러리

Prettier

4 ) 협업 및 프로젝트 관리

Notion Discord

5 ) 디자인

Figma

10. 폴더 구조

final-04-fearless4
  
├─ .gitignore
├─ .prettierrc
├─ package-lock.json
├─ package.json
├─ README.md
└─ src
   ├─ App.js
   ├─ api.js
   ├─ GlobalStyle.jsx
   ├─ index.css
   ├─ index.js
   ├─ assets
     └─ image
     └─ icon
   ├─ components
     ├─ background
     ├─ bottomnav
     ├─ button
     ├─ form
     ├─ loading
     ├─ loginJoin
     ├─ logo
     ├─ modal
     ├─ navbar
     ├─ post
     ├─ toast
     ├─ style
   ├─ fonts
   ├─ hook
   ├─ mobile
   ├─ pages
       ├─ chat
       ├─ follow
       ├─ homeFeed
       ├─ login
       ├─ loginEmail
       ├─ page404
       ├─ post
       ├─ product
       ├─ profileSetup
       ├─ search
       ├─ splash
       ├─ userProfile
   ├─ routes

11. 프로젝트 소감

강동훈

저 역시도 처음으로 진행해 보는 팀 프로젝트였는데요, 이 프로젝트를 통해서 정말 많은 것들을 배워간다고 느꼈습니다. 기술적인 부분도 있었지만, 가장 큰 부분은 협업과 관련된 부분이었던 것 같습니다. 혼자 코드를 작성할 때는 코드 컨벤션이나 커밋 컨벤션 같은 부분들을 신경쓰지 않고 작업했었는데, 이번 프로젝트를 통해서 왜 그러한 것들을 정해두고 작업을 진행해야 하는지 확실하게 경험한 것 같습니다. 그리고 프로젝트 기간동안 수고해주신 저희 팀원 분들 모두에게도 감사인사를 드립니다.

김소연

프로젝트 경험을 통해 고민해보고 차근차근 하는 연습을 한 것 같고 혼자였다면 절대 하지 못한 경험을 한 것 같습니다! 무엇보다 좋은 팀원분들 덕분에 많이 배운 것 같고 저도 얼른 성장해 도움이 될 수 있도록 노력하겠습니다~!!!! fearless4 팀원분들 감사합니다~!!👍🥹👍

정준영

프로젝트를 시작하기 전까지는 제 자신이 아직 많이 부족하다고 느꼈는데, 팀원들과 함께 프로젝트를 하면서, 제 자신이 생각보다 멋사에서 많이 성장하였다고 느끼게 되었고, 저의 부족한 부분은 팀원분들이 많이 채워주셨습니다! 저희 팀원분들과 멋사 여러분들께 감사드립니다!

최사라

프로젝트 시작 전에는 첫 개발 팀 프로젝트여서 걱정이 되었으나, 걱정과 달리 팀원 분들에게 많이 배우고 도움받았습니다.
그리고 어떤 서비스로 프로젝트를 시작할지 기획부터 제작까지 모든 프로세스를 경험해보아서 좋았습니다.
힘들었던 과정이었지만 팀원 분들 덕에 해낼 수 있었고, 개발자로서의 기술적 성장뿐만 아니라 협업 스킬 등 기술 외적으로도 많이 성장할 수 있었던 뜻깊은 경험이었습니다. fearless4 팀원분들 너무 감사합니다!!

12. 출처

이미지 출처

폰트 출처

final-04-fearless4's People

Contributors

dayteajun avatar starcradle101 avatar developer-sala avatar sy412 avatar likelionfes avatar

Stargazers

 avatar  avatar Daeyeob Kim avatar shiwoo.park avatar Alex James avatar  avatar  avatar

final-04-fearless4's Issues

[준영] 팔로우 페이지

🚨 작업 설명

사용자가 팔로우 및 팔로우 취소를 할 수 있는 페이지입니다.

📦 할 일 목록

  • 팔로우 페이지 공통
  • 팔로우 및 팔로잉 페이지 마크업
  • #34
  • #28
  • Follower 페이지
  • 팔로우 및 취소를 할 때 버튼을 누를 때마다 팔로우 및 취소로 버튼이 변화
  • 팔로우 및 취소 버튼이 활성화될 때 마다 서버와 데이터를 보내고 받아오는 기능 구현
  • Following 페이지

📚 기타 사항

  • 팔로우 페이지 공통 ( 추가사항)
  • 팔로워나 팔로잉된 유저가 없을 경우의 페이지 추가
  • 팔로워나 팔로잉된 유저가 뜨기전에 로딩될 이미지 추가

[Feat] 홈피드 무한 스크롤 기능 추가

Description

homefeed 페이지에 무한 스크롤을 적용

Todo

  • react-query 설치 후 useInfiniteQuery로 데이터 페칭
  • react-intersection-observer 라이브러리를 이용해 요소 감지 후 데이터를 불러오는 기능 추가
  • axiosInstance 사용

ETC

기타 사항

댓글 컴포넌트 리팩토링

Description

댓글 컴포넌트와 관련된 리팩토링을 진행하는 이슈입니다.
다음과 같은 문제를 개선해야 합니다:

  • 모바일 뷰에서 확인할 경우 댓글 게시 버튼이 찌그러집니다.
  • 댓글 게시 버튼의 대비가 떨어집니다. 접근성을 고려해 수정해야 합니다.
  • 댓글을 신고하거나 삭제하는 기능을 가진 메서드를 API로 따로 분리하면 좋을 것 같습니다.

Todo

  • Comment.jsx 컴포넌트 위치를 Pages -> Component로 이동
  • 모바일 뷰에서 댓글 게시 버튼 수정
  • Comment.jsx 컴포넌트 API 수정

ETC

[Feat] 상품 페이지 관련 새로운 기능 추가

Description

상품 클릭 시 새로운 ProductCard 뜨게 하는 기능 추가하여, 더 크게 상품 이미지 볼 수 있게 함
카테고리에 해당하는 상품이 없을 경우 기존 빈 화면 대신에 정해진 이미지와 "상품이 없습니다" 문구를 표시하여 해당하는 상품이 없음을 사용자에게 확실하게 보여줌

Todo

  • 상품 클릭 시 기존 상품을 더 크게 보이게 하는 ProductCard.jsx 생성
  • 카테고리에 해당하는 상품이 없을 경우 정해진 이미지 및 문구 처리 추가

ETC

기타 사항

[동훈] 게시글 목록 리스트

🚨 작업 설명

유저 프로필과 내 프로필에서 게시글을 확인할 수 있는 게시글 목록 리스트입니다.

  • 사용자가 작성한 게시글들을 목록형과 앨범형으로 확인 가능합니다.
  • 기본형은 목록형으로, 앨범형에는 이미지가 없는 게시글이 표시되지 않습니다.

📦 할 일 목록

  • 게시글 목록 컴포넌트 구현
  • 게시글 목록 기능 구현
  • 게시글 목록 API 통신 구현

📚 기타 사항

[Refactor] sign up 페이지 리팩토링

Description

회원가입 페이지 리팩토링

Todo

  • onBlur 속성이 아닌, onChange로 경고 텍스트 및 버튼 활성화 하기
  • “사용가능한 이메일입니다” 메세지 색상 변경
  • react-query로 변경
  • api 분리

ETC

기타 사항

[소연] 홈피드 페이지

🚨 작업 설명

내가 팔로우하고 있는 유저의 게시글 목록입니다.

📦 할 일 목록

  • 홈피드 마크업
  • 피드가 있을 경우와 없을 경우 다른 화면 띄우기
  • 팔로우하고 있는 유저의 게시글 목록 가져오는 API 통신

📚 기타 사항

[Feat] 프로필 페이지 주소 변경

Description

각 프로필 페이지의 useParams로 라우터 세부주소 설정

Todo

  • myProfile 페이지 라우터 세부주소 변경
  • userProfile 페이지 라우터 세부주소 변경
  • 각 컴포넌트에서 Link to 및 useNavigate를 이용한 주소 변경의 로직을 변경

ETC

기타 사항

  • post, follow, comment, search, bottomnav 등의 컴포넌트에서 porifle로 통하는 navigate를 변경 및 state를 보내지 않고,
  • profile 페이지에서 useParams를 이용하여 어떤 유저의 프로필인지 확인할 수 있도록 변경함.

[사라] 404 페이지

🚨 작업 설명

에러 페이지를 표시하는 페이지입니다.

📦 할 일 목록

  • 404 페이지 마크업
  • 404 페이지 고양이 이미지 위에 잠자는 애니메이션 효과 넣기
  • 홈으로 돌아가기 버튼 HomeFeed 페이지에 연결하기

📚 기타 사항

[Refactor] 프로필 페이지 리팩토링

Description

사용자 및 다른 유저 프로필 페이지 통합 및 useParams로 데이터 받아오기

Todo

  • 사용자 및 다른 유저 프로필 통합
  • 사용자 프로필 수정시 state 받아오기
  • 다른 유저 프로필에서 팔로우 버튼 비정상적으로 크기가 바뀌는 현상 수정
  • 리액트 쿼리로 로직 변경
  • 프로필 렌더링 리액트 쿼리로 변경
  • api 폴더안에 axiosInstance 생성하여 중복 로직(header, url) 개선
  • profileAPI로 프로필 컴포넌트 API로직 코드 수 줄이기
  • 프로필 페이지 팔로우 렌더링 리액트 쿼리로 변경
  • 프로필 스타일드 컴포넌트명 userProfile -> profile 변경
  • 프로필 수정 페이지 리액트 쿼리로 변경
  • 프로필 페이지의 프로필 로직을 ProfileCard로 분리
  • 없는 유저의 프로필로 URL을 통해서 이동할 경우 404 보이게 개선
  • 팔로우 페이지 리액트 쿼리 변경 및 무한스크롤 로직 수정
  • 시맨틱 태그로 수정

ETC

[준영] 라우터 경로 리팩토링

🚨 작업 설명

각 페이지의 라우터 경로 리팩토링

📦 할 일 목록

  • 홈피드 페이지 경로
  • 로그인, 회원가입 페이지 경로
  • 프로필 페이지 경로
  • 상품 페이지 경로
  • 게시글 페이지 경로
  • 검색 페이지 경로

📚 기타 사항

[Refactor] 상품관련 페이지 리팩토링

Description

상품 페이지 관련하여 리팩토링하는 이슈입니다.

Todo

  • ProductsForSale 컴포넌트에서 상품 목록을 렌더링하는 부분을 createProductList 함수로 분리하여 중복된 코드를 줄임
  • 이미지 유효성 검사하는 부분을 새로운 컴포넌트로 분리하여 코드의 중복을 줄임
  • Product, ProductsForSaleEdit 페이지를 Product 페이지 하나로 통합하여 코드의 중복을 줄임
  • 기존과 달리 productCard.jsx 부분이 생기면서 여기서 OptionModalTab을 누르면 그때 삭제/수정/웹사이트 이동 모달창이 뜨게 함
  • Product.jsx에 있는 Toast 부분을 별도의 Toast.jsx로 분리하여 코드의 재사용성을 높임
  • 이미지 유효성 검사하는 부분 browser-image-compression 라이브러리 사용하여 이미지 압축
  • 카테고리에 해당하는 상품이 없을 경우 표시되는 이미지 및 문구 디자인 수정하여 사용자에게 해당하는 상품이 없다는 것을 더 명시적으로 보여줌
  • ProductsForSale.jsx react-query 적용
  • Product.jsx react-query 적용
  • 시맨틱 태그 사용하여 문서의 의미론적 구조를 개선

ETC

기타 사항

[준영] 소셜 로그인 페이지

🚨 작업 설명

소셜 로그인 페이지입니다. 이 페이지는 로그인하지 않았다면 나오는 페이지입니다.

📦 할 일 목록

  • 소셜 로그인 페이지 마크업 및 css
  • 로그인 및 회원가입 Link 라우터 연결
  • #50
  • token이 있을 경우 homefeed 가도록 함

📚 기타 사항

[Feat] 게시글 리팩토링

Description

게시글과 관련된 페이지 및 컴포넌트를 전반적으로 리팩토링하는 이슈입니다.
각 컴포넌트, 페이지 별로 이슈를 따로 생성해서 연결할 예정입니다.

Todo

ETC

기타 사항

게시글 컴포넌트 리팩토링

Description

게시글 컴포넌트 리팩토링을 진행하는 이슈입니다. 다음과 같은 문제를 개선해야 합니다:

  • post.style.jsx 내부에 Post 컴포넌트와 스타일드 컴포넌트가 같이 존재합니다. 컴포넌트의 통일성을 위해서 분리해 주어야 합니다.
  • Post 컴포넌트 내부에서 Axios로 API 요청을 보낼 때 headers가 중복되고 있습니다. 이를 최소화해야 합니다.
  • 에러 핸들링 시 전체적으로 콘솔만 찍고 있는 상황입니다. 사용자가 분명히 상태를 확인할 수 있도록 모달 경고를 추가해야 합니다.

Todo

  • post.style.jsx에서 Post 컴포넌트와 스타일드 컴포넌트 분리
  • 중복된 API 요청을 최소화
  • 컴포넌트 라우터 경로 수정
  • 에러 핸들링 시 콘솔을 찍는 대신 모달 경고를 추가

ETC

[Refactor] 검색페이지 리팩토링

Description

검색 페이지 UI 개선 및 리팩토링

Todo

  • axiosInstance 사용
  • useQuery로 로직 변경
  • UI 개선
  • 더보기 기능 추가
  • 검색결과가 없을 때 결과가 없다는 메세지 띄우기
  • 검색중일때 로딩인디케이터 표시

ETC

기타 사항

[사라] 상품 등록 페이지

🚨 작업 설명

상품을 등록할 수 있는 페이지입니다.

📦 할 일 목록

  • 상품 등록 페이지 마크업
  • #30
  • 상품명은 2~15자 이내로 입력되지 않으면 경고문구 뜨게하기
  • #85
  • 가격은 숫자를 입력하면 자동으로 원단위로 변환시키기
  • 모든 입력된 값이 유효한 경우 저장버튼 활성화 시키기
  • 저장버튼을 누르면 서버에 입력된 값을 보내기
  • 서버에 입력된 값이 잘 보내지면 myProfile로 이동하기

📚 기타 사항

[사라] 판매중인 상품 섹션

🚨 작업 설명

등록된 상품 정보를 가져와서 판매 중인 상품 목록에 보여주는 섹션입니다.

📦 할 일 목록

  • 상품 목록 섹션 마크업
  • #56
  • 상품 가격은 원단위로 변환하여 표시
  • 상품 선택시 모달창이 생성
  • 상품 선택시 모달창에 있는 삭제버튼을 누르면 해당 선택된 상품 삭제
  • 상품 선택시 모달창에 있는 웹사이트에서 상품 보기 누르면 선택된 상품에 등록된 링크로 이동
  • 전체, 추천, 할인상품 버튼을 선택할 시 해당 요건에 맞는 상품을 정렬하여 보여주는 기능 추가

📚 기타 사항

[Refactor] 게시글 및 페이지 컴포넌트 API 요청 간소화

Description

API 요청 간소화

axiosInstance.js와 imageValidation.js를 활용하여, 다음과 같은 페이지 및 컴포넌트들의 API 요청을 간소화 함.

  • Post.jsx
  • PostSection.jsx
  • EditPost.jsx
  • ViewPost.jsx
  • WritePost.jsx
  • Comment.jsx (댓글 작성 및 삭제를 위한 CommentAPI.js 파일 추가적으로 생성)

Todo

  • 게시글 관련 페이지 및 컴포넌트들의 API 요청 간소화.
  • imageValidation.js를 활용하여, 기존에 이미지 유효성 검사 관련 로직의 가독성을 높임.

ETC

기타 사항

[Refactor] 팔로우 페이지 리팩토링

Description

팔로우 페이지 렌더링 속도 향상 및 중복 코드 개선

Todo

  • 팔로우 및 팔로잉의 중복 컴포넌트를 하나의 팔로우 컴포넌트로 통합
  • 팔로우 페이지를 useParams로만 데이터 받아오기
  • 팔로우 페이지 렌더링 속도 향상
  • 리액트 쿼리로 로직 변경
  • 팔로우 페이지 더보기 버튼 생성
  • 더보기 버튼을 무한스크롤로 변경
  • CSS 디자인 리팩토링
  • 팔로우 및 취소 버튼 렌더링 속도 개선
  • HTML 시맨틱 코드 사용
  • 중복 로직 최소화 작업

ETC

[Refactor] hotfixes 전체적인 리팩토링

Description

부분 페이지별로 수정이 아닌, hotfixes 브랜치를 통한 전체적인 리팩토링

Todo

  • 모바일에서 바텀네브바가 잘리는 현상 수정
  • 스크롤 상단으로 이동하는 탑버튼 생성
  • 각 navbar position relative로 변경 (반응형 고려) 및 전체 페이지 height 뷰포트값 수정
  • 상단 nav 시맨틱 태그 변경 및 버튼 이름 추가
  • 불필요한 index.css 삭제 (GlobalStyle.jsx 이용)
  • 프로필 편집 a태그 styled-components 새로 생성 -> ProfileEdit
  • 채팅페이지 콘솔 경고 해결 (styledComponent를 jsx함수 외부로 이동)
  • 채팅페이지 HTML/CSS UI 조금 수정
  • 404페이지 HTML/CSS 수정 (alt, 홈으로 돌아가기 버튼 안눌러지는 버그 수정)
  • asset image 크기들을 렌더링될 이미지만큼 줄이기
  • 회원가입 및 프로필편집 때 유효성 검사를 onBlur -> onChage로 변경하면서 debounce를 사용하여 변경

ETC

[준영] 모바일뷰로 바꾸기

🚨 작업 설명

전체 페이지를 모바일화면으로 바꾸는 작업입니다.

📦 할 일 목록

  • 모바일 컴포넌트 생성
  • 상단 네브바 컴포넌트 길이 조절
  • 하단 네브바 컴포넌트 길이 조절
  • 모달창 컴포넌트 길이 조절
  • 각 페이지 너비 확인

📚 기타 사항

[Refactor] 로그인 페이지 리팩토링

Description

로그인 페이지 리액트 쿼리로 변경 및 로직 단순화 작업

Todo

  • axiosInstance 로 axios 로직 단순화
  • 리액트 쿼리 변경

ETC

기타 사항

[준영] 프로필 페이지

🚨 작업 설명

사용자 및 다른 유저의 프로필 페이지입니다.

📦 할 일 목록

  • 공통 프로필
  • 사용자 및 유저 프로필 마크업
  • Followers Followings 페이지로 이동 구현
  • 프로필 하단에 상품목록 컴포넌트 연결
  • 프로필 하단에 게시글목록 컴포넌트 연결
  • 사용자 프로필
  • 사용자 프로필 수정 구현
  • 유저 프로필
  • 유저 팔로우 및 팔로우 취소 버튼 구현

📚 기타 사항

  • 사용자 프로필 ( 리팩토링 )
  • 사용자 프로필 이미지 업로드시 유효성 검사 추가
  • 공통 프로필 ( 리팩토링 )
  • 프로필 상품목록 렌더링 최적화

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.