Skip to content

RE-FOOD/FE

Repository files navigation

RE:FOOD

🥇2025 우수성과 공유회 컨퍼런스 최우수상🥇

환경과 함께하는 똑똑한 한 끼

🌳RE:FOOD🌳
image

🌳 서비스 소개

가게에서 버려지는 식품들 너무 아까운데... 내가 싸게 살 수는 없을까?

리푸드는 남는 식품 거래 플랫폼 서비스로, 합리적 소비와 환경보호를 모두 얻는 똑똑한 푸드 픽업 서비스입니다.
이를 통해 합리적이고 환경친화적인 식문화에 기여하자! 라는 서비스 목표를 갖고 있습니다.

💰 우리 서비스의 가치

  • 경제적 가치 - 소비자 : 소비자는 근처 마감 할인을 통한 이득을 얻는 동시에, 환경 포인트 및 쿠폰 리워드를 통해 서비스 이용 동기를 얻습니다.
  • 경제적 가치 - 판매자 : 판매자는 재고에 대한 원가를 회수하고, 빠른 가게 노출을 통한 추가 매출 기회를 얻습니다.
  • 환경 보호: 음식물 쓰레기 감소를 통한 탄소 배출량 감축

🌟 주요 기능

✨주문 및 결제✨

Redis를 활용하여 장바구니를 빠르고 안정적으로 관리할 수 있습니다.
카드, 간편 결제, 포인트 결제를 지원합니다.
주문 건당 20포인트가 적립됩니다.

메뉴 상세 장바구니
주문완료 레벨업

✨지도 기반 서비스✨

사용자 위치를 기반으로 5Km 반경에 있는 가게를 검색할 수 있습니다.
사용자와 가게 간 거리를 자동으로 계산합니다.

지도

✨알림 서비스✨

FCM 푸시 알림으로 실시간 주문 상태를 확인할 수 있습니다.
환경 레벨 업 알림으로 포인트 적립 시 레벨 상승 소식을 받을 수 있습니다.
가게별 알림으로 관심 가게의 신메뉴와 할인 정보를 확인할 수 있습니다.

알림

✨가게 관리✨

사업자 등록 및 승인 기능을 통해 자격을 검증할 수 있습니다.
가게 관리 기능을 통해 메뉴, 영업시간, 위치 등 다양한 정보를 관리할 수 있습니다.
매출 정보 관리 기능을 통해 일별·월별 매출 현황을 확인할 수 있습니다.

사업자 승인 가게 메뉴 관리
주문 접수 가게 매출

💻 기술 스택

2025-09-05_10 51 55

Frontend

  • React 18
  • React Native 0.74 (모바일 앱 개발)

상태 관리 및 데이터

  • Zustand: 가벼운 전역 상태 관리
  • React Query (TanStack Query): 서버 상태 관리 및 캐싱
  • Async Storage: 로컬 스토리지
  • Encrypted Storage: 민감 데이터 보안 저장

네트워크 & API

  • Axios: HTTP 클라이언트
  • React Native WebView: 외부 웹 뷰 연동

네이티브 기능 연동

  • Geolocation (위치 서비스)
  • Permissions (권한 관리)
  • Image Picker (사진 업로드)
  • Fast Image (고성능 이미지 로딩)
  • Date Picker (날짜 선택)
  • Naver Map SDK (지도 서비스)
  • Kakao Login (소셜 로그인)
  • Toss Payments SDK (결제 모듈)

UI/UX

  • React Navigation (Stack, Bottom Tabs): 화면 전환/탭 네비게이션
  • Gesture Handler & Reanimated: 제스처, 애니메이션
  • Safe Area Context & Screens: 안전 영역, 네이티브 화면 관리
  • Vector Icons & Evil Icons: 아이콘 세트
  • Linear Gradient: 그라데이션 효과
  • Shadow-2: 그림자 효과
  • SVG + Transformer: SVG 렌더링
  • Lottie: 애니메이션
  • Toast Message: 알림 메시지
  • Bootsplash: 앱 시작 로딩 화면
  • Gifted Charts: 차트 시각화

알림 & 메시징

  • Firebase App & Messaging: 푸시 알림
  • Notifee: 로컬 알림 확장

품질 관리 & 개발 환경

  • TypeScript 5.0: 정적 타입
  • ESLint + Prettier: 코드 품질 및 포맷팅
  • Husky + Lint-staged: Git Hook 기반 코드 검사 자동화
  • Jest + React Test Renderer: 테스트 프레임워크

빌드/런타임

  • Metro Bundler (React Native 기본)
  • Babel (Module Resolver 포함)
  • Node.js 18+

📁 프로젝트 구조

📦src
 ┣ 📂api
 ┃ ┣ 📜auth.ts
 ┃ ┣ 📜axios.ts
 ┃ ┣ 📜cart.ts
 ┃ ┣ 📜environment.ts
 ┃ ┣ 📜history.ts
 ┃ ┣ 📜image.ts
 ┃ ┣ 📜like.ts
 ┃ ┣ 📜location.ts
 ┃ ┣ 📜map.ts
 ┃ ┣ 📜member.ts
 ┃ ┣ 📜mypage.ts
 ┃ ┣ 📜notification.ts
 ┃ ┣ 📜order.ts
 ┃ ┣ 📜queryClient.ts
 ┃ ┣ 📜review.ts
 ┃ ┣ 📜seller.ts
 ┃ ┗ 📜store.ts
 ┣ 📂assets
 ┃ ┣ 📂dummy
 ┃ ┃ ┗ 📜dummy.webp
 ┃ ┣ 📂fonts
 ┃ ┃ ┣ 📜Pretendard-Black.ttf
 ┃ ┃ ┣ 📜Pretendard-Bold.ttf
 ┃ ┃ ┣ 📜Pretendard-ExtraBold.ttf
 ┃ ┃ ┣ 📜Pretendard-ExtraLight.ttf
 ┃ ┃ ┣ 📜Pretendard-Light.ttf
 ┃ ┃ ┣ 📜Pretendard-Medium.ttf
 ┃ ┃ ┣ 📜Pretendard-Regular.ttf
 ┃ ┃ ┣ 📜Pretendard-SemiBold.ttf
 ┃ ┃ ┗ 📜Pretendard-Thin.ttf
 ┃ ┣ 📂icons
 ┃ ┃ ┣ 📜accept-active.svg
 ┃ ┃ ┣ 📜accept.svg
 ┃ ┃ ┣ 📜alert-off.svg
 ┃ ┃ ┣ 📜alert-on.svg
 ┃ ┃ ┣ 📜arrow-down-line.svg
 ┃ ┃ ┣ 📜arrow-down.svg
 ┃ ┃ ┣ 📜arrow-right-light.svg
 ┃ ┃ ┣ 📜arrow-right.svg
 ┃ ┃ ┣ 📜arrow.svg
 ┃ ┃ ┣ 📜back.svg
 ┃ ┃ ┣ 📜bin.svg
 ┃ ┃ ┣ 📜cancle.svg
 ┃ ┃ ┣ 📜cart.svg
 ┃ ┃ ┣ 📜check-black.svg
 ┃ ┃ ┣ 📜check.svg
 ┃ ┃ ┣ 📜clock.svg
 ┃ ┃ ┣ 📜delete.svg
 ┃ ┃ ┣ 📜eco.svg
 ┃ ┃ ┣ 📜favorite-active.svg
 ┃ ┃ ┣ 📜favorite.svg
 ┃ ┃ ┣ 📜home-active.svg
 ┃ ┃ ┣ 📜home.svg
 ┃ ┃ ┣ 📜kakao.svg
 ┃ ┃ ┣ 📜levelup.svg
 ┃ ┃ ┣ 📜like.svg
 ┃ ┃ ┣ 📜list.svg
 ┃ ┃ ┣ 📜map-active.svg
 ┃ ┃ ┣ 📜map.svg
 ┃ ┃ ┣ 📜menu-active.svg
 ┃ ┃ ┣ 📜menu.svg
 ┃ ┃ ┣ 📜minus.svg
 ┃ ┃ ┣ 📜modal-check.svg
 ┃ ┃ ┣ 📜modal-warn.svg
 ┃ ┃ ┣ 📜msg-check.svg
 ┃ ┃ ┣ 📜msg-error.svg
 ┃ ┃ ┣ 📜my-active.svg
 ┃ ┃ ┣ 📜my.svg
 ┃ ┃ ┣ 📜order-active.svg
 ┃ ┃ ┣ 📜order.svg
 ┃ ┃ ┣ 📜Pencil.svg
 ┃ ┃ ┣ 📜plus.svg
 ┃ ┃ ┣ 📜region-gray.svg
 ┃ ┃ ┣ 📜region.svg
 ┃ ┃ ┣ 📜search-gray.svg
 ┃ ┃ ┣ 📜search.svg
 ┃ ┃ ┣ 📜star-gray.svg
 ┃ ┃ ┣ 📜star.svg
 ┃ ┃ ┣ 📜trash.svg
 ┃ ┃ ┗ 📜unlike.svg
 ┃ ┣ 📂images
 ┃ ┃ ┣ 📜chinese.webp
 ┃ ┃ ┣ 📜closedPin.png
 ┃ ┃ ┣ 📜dessert.webp
 ┃ ┃ ┣ 📜donuts.webp
 ┃ ┃ ┣ 📜empty-cart.webp
 ┃ ┃ ┣ 📜goroke.webp
 ┃ ┃ ┣ 📜gorokeone.webp
 ┃ ┃ ┣ 📜gwabegi.webp
 ┃ ┃ ┣ 📜gwabegione.webp
 ┃ ┃ ┣ 📜japanese.webp
 ┃ ┃ ┣ 📜korean.webp
 ┃ ┃ ┣ 📜level1.webp
 ┃ ┃ ┣ 📜level2.webp
 ┃ ┃ ┣ 📜level3.webp
 ┃ ┃ ┣ 📜level4.webp
 ┃ ┃ ┣ 📜login-img.webp
 ┃ ┃ ┣ 📜order-success.webp
 ┃ ┃ ┣ 📜pin.png
 ┃ ┃ ┣ 📜refood.webp
 ┃ ┃ ┣ 📜splash.png
 ┃ ┃ ┣ 📜street.webp
 ┃ ┃ ┗ 📜western.webp
 ┃ ┗ 📂lottie
 ┃ ┃ ┣ 📜earth.json
 ┃ ┃ ┣ 📜levelup.json
 ┃ ┃ ┗ 📜trees.json
 ┣ 📂components
 ┃ ┣ 📂cart
 ┃ ┃ ┣ 📜CartFooter.tsx
 ┃ ┃ ┣ 📜CartMenuItem.tsx
 ┃ ┃ ┗ 📜CartStoreHeader.tsx
 ┃ ┣ 📂environment
 ┃ ┃ ┣ 📜CountUp.tsx
 ┃ ┃ ┣ 📜KakaoButton.tsx
 ┃ ┃ ┗ 📜MetricBox.tsx
 ┃ ┣ 📂location
 ┃ ┃ ┗ 📜LocationItem.tsx
 ┃ ┣ 📂map
 ┃ ┃ ┗ 📜HearIcon.tsx
 ┃ ┣ 📂mypage
 ┃ ┃ ┗ 📜LevelProgress.tsx
 ┃ ┣ 📂order
 ┃ ┃ ┣ 📜LevelUpPopup.tsx
 ┃ ┃ ┣ 📜MenuItem.tsx
 ┃ ┃ ┣ 📜ReuseOption.tsx
 ┃ ┃ ┗ 📜RippleCircle.tsx
 ┃ ┣ 📂seller
 ┃ ┃ ┗ 📜MonthlySalesChart.tsx
 ┃ ┣ 📂signup
 ┃ ┃ ┣ 📜BusinessNumberInput.tsx
 ┃ ┃ ┣ 📜NicknameInput.tsx
 ┃ ┃ ┣ 📜PhoneNumberInput.tsx
 ┃ ┃ ┣ 📜PhonePrefixDropdown.tsx
 ┃ ┃ ┣ 📜RegionSelector.tsx
 ┃ ┃ ┗ 📜ValidationMessage.tsx
 ┃ ┣ 📂store
 ┃ ┃ ┣ 📜CategoryCarousel.tsx
 ┃ ┃ ┣ 📜CategoryHeader.tsx
 ┃ ┃ ┣ 📜HorizontalSnapList.tsx
 ┃ ┃ ┣ 📜LoadingFooter.tsx
 ┃ ┃ ┣ 📜ReviewItem.tsx
 ┃ ┃ ┣ 📜SearchSection.tsx
 ┃ ┃ ┣ 📜StarRating.tsx
 ┃ ┃ ┣ 📜StickyControls.tsx
 ┃ ┃ ┣ 📜StoreCard.tsx
 ┃ ┃ ┣ 📜StoreHeader.tsx
 ┃ ┃ ┣ 📜StoreListCard.tsx
 ┃ ┃ ┣ 📜StoreMap.tsx
 ┃ ┃ ┣ 📜StoreMenuItem.tsx
 ┃ ┃ ┗ 📜TopBar.tsx
 ┃ ┣ 📂_common
 ┃ ┃ ┣ 📜BackButton.tsx
 ┃ ┃ ┣ 📜CartButton.tsx
 ┃ ┃ ┣ 📜EmptyState.tsx
 ┃ ┃ ┣ 📜ItemSeparator.tsx
 ┃ ┃ ┣ 📜RestaurantList.tsx
 ┃ ┃ ┗ 📜Sort.tsx
 ┃ ┗ 📂_modal
 ┃ ┃ ┗ 📜CustomModal.tsx
 ┣ 📂constants
 ┃ ┣ 📜categoryImages.ts
 ┃ ┣ 📜colors.ts
 ┃ ┣ 📜environmentLevel.ts
 ┃ ┣ 📜keys.ts
 ┃ ┣ 📜messages.ts
 ┃ ┣ 📜modalStates.ts
 ┃ ┣ 📜navigations.ts
 ┃ ┗ 📜numbers.ts
 ┣ 📂hooks
 ┃ ┣ 📂queries
 ┃ ┃ ┣ 📜useAuth.ts
 ┃ ┃ ┣ 📜useCart.ts
 ┃ ┃ ┣ 📜useEnvironment.ts
 ┃ ┃ ┣ 📜useHistory.ts
 ┃ ┃ ┣ 📜useImage.ts
 ┃ ┃ ┣ 📜useLike.ts
 ┃ ┃ ┣ 📜useLocation.ts
 ┃ ┃ ┣ 📜useMap.ts
 ┃ ┃ ┣ 📜useMember.ts
 ┃ ┃ ┣ 📜useMyPage.ts
 ┃ ┃ ┣ 📜useNotification.ts
 ┃ ┃ ┣ 📜useOrder.ts
 ┃ ┃ ┣ 📜useReview.ts
 ┃ ┃ ┣ 📜useSeller.ts
 ┃ ┃ ┗ 📜useStore.ts
 ┃ ┣ 📂useAnimation
 ┃ ┃ ┗ 📜useRippleAnimation.ts
 ┃ ┗ 📂useNotification
 ┃ ┃ ┣ 📜index.ts
 ┃ ┃ ┗ 📜NotificationProvider.tsx
 ┣ 📂navigations
 ┃ ┣ 📂bottomTabs
 ┃ ┃ ┣ 📜SellerBottomTabsNavigator.tsx
 ┃ ┃ ┗ 📜UserBottomTabsNavigator.tsx
 ┃ ┣ 📂root
 ┃ ┃ ┗ 📜RootNavigator.tsx
 ┃ ┗ 📂stack
 ┃ ┃ ┣ 📜LoggedOutStackNavigator.tsx
 ┃ ┃ ┣ 📜SellerStackNavigator.tsx
 ┃ ┃ ┗ 📜UserStackNavigator.tsx
 ┣ 📂screens
 ┃ ┣ 📂auth
 ┃ ┃ ┗ 📜LoginScreen.tsx
 ┃ ┣ 📂cart
 ┃ ┃ ┗ 📜CartScreen.tsx
 ┃ ┣ 📂history
 ┃ ┃ ┣ 📜HistoryDetailScreen.tsx
 ┃ ┃ ┣ 📜HistoryHomeScreen.tsx
 ┃ ┃ ┗ 📜ReviewWriteScreen.tsx
 ┃ ┣ 📂like
 ┃ ┃ ┗ 📜LikeHomeScreen.tsx
 ┃ ┣ 📂location
 ┃ ┃ ┣ 📜LocationPostcodeScreen.tsx
 ┃ ┃ ┗ 📜LocationScreen.tsx
 ┃ ┣ 📂map
 ┃ ┃ ┣ 📜MapHomeScreen.tsx
 ┃ ┃ ┗ 📜NearStoreListScreen.tsx
 ┃ ┣ 📂mypage
 ┃ ┃ ┣ 📜GreenReportScreen.tsx
 ┃ ┃ ┣ 📜MypageHomeScreen.tsx
 ┃ ┃ ┣ 📜NicknameChangeScreen.tsx
 ┃ ┃ ┣ 📜PrivateScreen.tsx
 ┃ ┃ ┣ 📜ReviewScreen.tsx
 ┃ ┃ ┗ 📜RuleScreen.tsx
 ┃ ┣ 📂notification
 ┃ ┃ ┣ 📜InAppNotification.tsx
 ┃ ┃ ┗ 📜NotificationScreen.tsx
 ┃ ┣ 📂order
 ┃ ┃ ┣ 📜CouponBoxScreen.tsx
 ┃ ┃ ┣ 📜OrderScreen.tsx
 ┃ ┃ ┣ 📜OrderSuccessScreen.tsx
 ┃ ┃ ┣ 📜ProgressIndicator.tsx
 ┃ ┃ ┗ 📜TossPaymentScreen.tsx
 ┃ ┣ 📂seller
 ┃ ┃ ┣ 📜SellerCreateScreen.tsx
 ┃ ┃ ┣ 📜SellerMenuModifyScreen.tsx
 ┃ ┃ ┣ 📜SellerMenuRegisterScreen.tsx
 ┃ ┃ ┣ 📜SellerMenuScreen.tsx
 ┃ ┃ ┣ 📜SellerMypageScreen.tsx
 ┃ ┃ ┣ 📜SellerOrderScreen.tsx
 ┃ ┃ ┗ 📜SellerStoreReigster.tsx
 ┃ ┣ 📂signup
 ┃ ┃ ┣ 📜DaumPostcodeScreen.tsx
 ┃ ┃ ┣ 📜SellerSignupScreen.tsx
 ┃ ┃ ┣ 📜SignupTypeScreen.tsx
 ┃ ┃ ┗ 📜UserSignupScreen.tsx
 ┃ ┣ 📂store
 ┃ ┃ ┣ 📜CategoryListScreen.tsx
 ┃ ┃ ┣ 📜MenuDetailScreen.tsx
 ┃ ┃ ┣ 📜SearchResultScreen.tsx
 ┃ ┃ ┣ 📜StoreDetailScreen.tsx
 ┃ ┃ ┣ 📜StoreHomeScreen.tsx
 ┃ ┃ ┣ 📜StoreInfoScreen.tsx
 ┃ ┃ ┗ 📜StoreReviewScreen.tsx
 ┃ ┗ 📂_common
 ┃ ┃ ┣ 📜EmptyStateScreen.tsx
 ┃ ┃ ┗ 📜LoadingScreen.tsx
 ┣ 📂types
 ┃ ┣ 📜api.ts
 ┃ ┣ 📜domain.ts
 ┃ ┗ 📜postcode.ts
 ┣ 📂utils
 ┃ ┣ 📜address.ts
 ┃ ┣ 📜asyncStorage.ts
 ┃ ┣ 📜date.ts
 ┃ ┣ 📜encryptStorage.ts
 ┃ ┣ 📜format.ts
 ┃ ┣ 📜header.ts
 ┃ ┣ 📜level.ts
 ┃ ┣ 📜navigation.tsx
 ┃ ┣ 📜notification.tsx
 ┃ ┣ 📜pushNoti.js
 ┃ ┗ 📜toast.ts
 ┣ 📂zustand
 ┃ ┣ 📜useAuthStore.ts
 ┃ ┣ 📜useListScrollStore.ts
 ┃ ┗ 📜useSignupStore.ts
 ┗ 📜declarations.d.ts


🏛 시스템 아키텍처

image

👥 팀원

Picture 이름1 이름2 이름3 이름4 이름5
Name 최이서 구희원 이원석 배지원 김동현
Position Frontend Frontend Backend Backend Backend
GitHub

About

🌳환경과 함께하는 똑똑한 한끼, RE:FOOD 🥇 2025 IITP 최우수상

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •