BedalFriend / BaedalFriend-FE

BaedalFriend-FE
3 stars 1 forks source link

배달 프렌드 BaedalFriend

👉🏻 Click!! 👈🏻


👫 배달프렌드는

모집글을 등록하거나 검색하여 주변에서 함께 배달을 시킬 프렌드를 찾는다는 의미로,

" 비싼 배달비 및 최소배달금액 때문에 배달을 망설이는 사람들을 위한 공동 배달서비스 " 입니다.


💡 프로젝트 개요

🥲 너무 먹고 싶은 음식을 결제하려고 보니 배달비가 터무니 없이 비싸서 포기한 경험,

😢 혼자 오붓하게 먹고 싶은데 최소 배달 금액이 너무 높아서 포기한 경험, 한번 쯤은 있으시죠!

같이 시킬 사람이 한명만 더 있어도 배달 부담이 줄어들 거라는 아이디어에서

‘배달프렌드’ 가 탄생하였습니다.


⚙️ 프로젝트 주요 기능

배달 프렌드분들의 더욱 편리한 매칭을 위해 위치 기반으로 서비스를 제공합니다.

주소를 등록해주시면 가까운 곳에서 열리고 있는 배달 모집글의

🔍 검색, 🌏 위치 확인, 💬 프렌드들과 채팅이 가능합니다.


###  반응형 웹/앱 ![반응형](https://user-images.githubusercontent.com/85330584/207781840-153a83a5-9875-4a7e-910b-046d8b591bbb.gif) - 디바이스 종류에 구애받지 않고 편안한 화면을 제공합니다.
###  간단하고 안전한 회원가입 ![image](https://user-images.githubusercontent.com/85330584/207784223-c2a8107d-70ea-4662-b746-31f9d451dc7c.png) - 카카오 소셜로그인을 통한 간단한 가입도 가능하지만, 자체적인 회원가입 또한 간편하고 안전하게 이용 가능합니다.
###  지도를 사용할 수 있는 게시물 작성 ![image](https://user-images.githubusercontent.com/85330584/207784412-325ca93b-1a8d-4084-abe6-e30c8800d8a8.png) - 배달 공동 주문에 필요한 항목을 폼에 간편하게 기입하여 업로드할 수 있습니다. - 카카오맵을 통해 음식점 장소와 만날 장소의 검색이 가능하며, 지도에 표시되는 위치로 선택이 가능합니다.
###  키워드 및 카테고리, 지도를 통한 반경 1km 이내의 게시물 맞춤 검색 ![image](https://user-images.githubusercontent.com/85330584/207784574-b9ada521-8c81-4dcf-af75-ff56ba75d4df.png) - 키워드와 카테고리로 구분된 검색 페이지에서 사용자가 찾고 싶은 모집 글을 쉽게 검색할 수 있습니다. - 주소를 설정해 주시면 ‘Nearby’를 통해 설정 주소 기반 1km 이내의 게시물을 확인할 수 있습니다. - 검색 결과의 데이터를 바탕으로 정렬이 가능합니다.
###  배프들과의 실시간 채팅 ![image](https://user-images.githubusercontent.com/85330584/207784671-adc6709f-339d-41ef-9a26-d587a2d4a890.png) - 게시물에 참여하면, 참여 중인 배프들과 채팅을 통해 배달 관련 정보 교환을 하여 성공적인 공동 주문이 가능합니다.
###  개인의 취향에 맞게 프로필 수정 ![image](https://user-images.githubusercontent.com/85330584/207784821-ba5c128e-065e-4895-8111-8a1ce01e3f0e.png) - 마이페이지에서 유저의 취향대로 프로필사진과 닉네임을 변경할 수 있고, 작성한 게시글을 조회할 수 있습니다.


♻️ 아키텍처

image


🛠 사용한 패키지

이름 버전 설명
react-redux @reduxjs/toolkit ^1.9.0 React의 전역 상태 관리를 위해 도입했다.
Toolkit을 사용해서 기존 Redux의 긴 보일러플레이트 코드를 줄였고,
immer가 내장되어 있어 불변성을 쉽게 지킬 수 있다.
@sentry/react @sentry/tracing ^7.23.0 실시간 로그 취합 및 분석 도구, 모니터링 플랫폼이다.
더 나아가서 발생한 로그들을 시각화 도구로 쉽게 분석할 수 있게 도와준다.
@stomp/stompjs ^6.1.2 Stomp가 제공하는 Publish-Subscribe 매커니즘에 따라 소켓 통신을 구현하였다.
sockjs-client ^1.6.1 WebSocket과 비슷한 기능을 제공하는 브라우저 js 라이브러리이다.
짧은 지연시간과 크로스 브라우징을 지원한다.
react-router-dom ^6.4.3 클라이언트 사이드 라우팅을 도와주는 패키지이다.
react-cookie ^4.1.1 React에서 보다 편리하게 Cookie를 사용할 수 있게 해준다.
axios ^1.1.3 Promise API를 활용하는 HTTP 비동기 통신 라이브러리이다.
크로스 브라우징에 최적화되어서 브라우저 호환성이 뛰어나다.
styled-components ^5.3.6 프로젝트 전반적으로 활용한 스타일 도구이다.
CSS-in-JS 스타일 도구여서 JS 환경을 활용하기가 쉽다. JS와 CSS간 상수/함수 공유가 쉽고, 특히 React 환경에서 props를 활용한 조건부 스타일링에 용이하다.
browser-image-compression ^2.0.0 서버에 업로드하기 전 해상도, 저장 크기를 줄여 이미지를 압축함으로써 리소스를 절약할 수 있다.


🤯 이슈 및 트러블 슈팅

1️⃣ 검색 시 debounce를 이용하여 API 호출 한번만 하기

2️⃣ 로그인 유지와 로그인 여부에 따른 특정 페이지 접근 제한

3️⃣ 프로필 이미지 변경 시 이미지 리사이징


🚀 피드백 반영 및 기능 개선

1️⃣ 캐러셀 / 상세 페이지 지도 배경 UX 개선

2️⃣ 게시글 마감시간에 따른 날짜 변경 기능 개선


✈️ 바로가기


👨‍👨‍👧‍👧 고생한 멤버들

김재명 👑 김정은 🗡 노희진 🔨 지영주 🖌
Github Github Github Behance
FE / React FE / React FE / React Designer