Skip to content

NET-ZERO-FitFit/FE

Repository files navigation

NET ZERO-FitFit_FE

alt text


🎯 Goal

NET ZERO-FitFit은 지속 κ°€λŠ₯ν•œ νŒ¨μ…˜ μ†ŒλΉ„λ₯Ό μž₯λ €ν•˜κ³ , μ‚¬μš©μžλ“€μ΄ μžμ‹ μ˜ μ²΄ν˜•μ— λ§žλŠ” μ˜·μ„ κ°€μƒμœΌλ‘œ μž…μ–΄λ΄„μœΌλ‘œμ¨ λΆˆν•„μš”ν•œ 의λ₯˜ ꡬ맀와 λ°˜ν’ˆμ„ μ€„μ΄λŠ” 것을 λͺ©ν‘œλ‘œ ν•©λ‹ˆλ‹€. νƒ„μ†Œ 배좜 저감(Net Zero)에 κΈ°μ—¬ν•˜λŠ” μΉœν™˜κ²½ νŒ¨μ…˜ ν”Œλž«νΌμ„ μ§€ν–₯ν•©λ‹ˆλ‹€.


✨ Motivation

νŒ¨μ…˜ 산업은 μ „ 세계 νƒ„μ†Œ 배좜의 큰 비쀑을 μ°¨μ§€ν•©λ‹ˆλ‹€. 특히 온라인 μ‡Όν•‘μ˜ ν™œμ„±ν™”λ‘œ 인해 μ‚¬μ΄μ¦ˆ 미슀 λ“±μœΌλ‘œ μΈν•œ λ°˜ν’ˆκ³Ό 폐기가 ν™˜κ²½μ— μ•…μ˜ν–₯을 미치고 μžˆμŠ΅λ‹ˆλ‹€. μ €ν¬λŠ” AI 가상 ν”ΌνŒ… 기술과 쀑고 거래 ν™œμ„±ν™”, **μΉœν™˜κ²½ 보상 μ‹œμŠ€ν…œ(Leaf)**을 κ²°ν•©ν•˜μ—¬ 재미있고 κ°€μΉ˜ μžˆλŠ” μ†ŒλΉ„ κ²½ν—˜μ„ μ œκ³΅ν•˜κ³ μž ν•©λ‹ˆλ‹€.


πŸ”‘ Key Features

  • πŸ‘— AI 가상 ν”ΌνŒ…λ£Έ: λ‚΄ μ „μ‹  사진과 옷 이미지λ₯Ό ν•©μ„±ν•˜μ—¬ κ°€μƒμœΌλ‘œ μ˜·μ„ μž…μ–΄λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.
  • πŸ“ 지도 기반 쀑고 거래: λ‚΄ μ£Όλ³€μ˜ μ‚¬μš©μžλ“€κ³Ό μ•ˆμ „ν•˜κ²Œ 쀑고 의λ₯˜λ₯Ό κ±°λž˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • πŸ’¬ μ‹€μ‹œκ°„ μ±„νŒ…: νŒλ§€μžμ™€ ꡬ맀자 κ°„μ˜ κ°„νŽΈν•œ μ†Œν†΅μ„ μ§€μ›ν•©λ‹ˆλ‹€.
  • πŸ€– 챗봇 μ„œλΉ„μŠ€: μ„œλΉ„μŠ€ 이용 μ•ˆλ‚΄ 및 κΆκΈˆν•œ 점을 λΉ λ₯΄κ²Œ ν•΄κ²°ν•΄μ€λ‹ˆλ‹€.
  • 🌿 μΉœν™˜κ²½ 포인트(Leaf): ν€΄μ¦ˆ ν’€κΈ°, 쀑고 거래 λ“±μœΌλ‘œ 포인트λ₯Ό λͺ¨μ•„ ν˜œνƒμ„ 받을 수 μžˆμŠ΅λ‹ˆλ‹€.
  • πŸ”Ž μƒν’ˆ 검색 및 μΉ΄ν…Œκ³ λ¦¬: μ›ν•˜λŠ” μ˜·μ„ 쉽고 λΉ λ₯΄κ²Œ 찾을 수 μžˆμŠ΅λ‹ˆλ‹€.

πŸ“Œ Supported Notices

  • λ³Έ ν”„λ‘œμ νŠΈλŠ” Chrome λΈŒλΌμš°μ € 및 λͺ¨λ°”일 ν™˜κ²½μ— μ΅œμ ν™”λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
  • 일뢀 κΈ°λŠ₯(AI ν”ΌνŒ…)은 μ„œλ²„ μƒνƒœμ— 따라 지연될 수 μžˆμŠ΅λ‹ˆλ‹€.

πŸ‘₯ Contributors

이름 μ—­ν• 
μ΄μ£Όν•œ FE Developer
박해원 BE Developer
박은경 BE Developer
μ‹¬ν˜„λ―Ό BE Developer & AI Developer
μœ ν˜„μ§€ AI Developer
μ΅œμ„œμ—° AI Developer

(νŒ€μ› 정보λ₯Ό μˆ˜μ •ν•΄μ£Όμ„Έμš”)


πŸ“± Platforms

Web Mobile Web

πŸ“‚ Project structure

src
β”œβ”€β”€ api                                          # API μš”μ²­ ν•¨μˆ˜ λͺ¨μŒ
β”‚Β Β  β”œβ”€β”€ authApi.js                               # 인증 κ΄€λ ¨ API (둜그인, νšŒμ›κ°€μž… λ“±)
β”‚Β Β  β”œβ”€β”€ chatApi.js                               # μ±„νŒ… κ΄€λ ¨ API (λ©”μ‹œμ§€ 전솑, 쑰회)
β”‚Β Β  β”œβ”€β”€ chatbotApi.js                            # 챗봇 κ΄€λ ¨ API
β”‚Β Β  β”œβ”€β”€ clothesApi.js                            # 의λ₯˜ κ΄€λ ¨ API (μƒν’ˆ 등둝, 쑰회)
β”‚Β Β  β”œβ”€β”€ common.js                                # 곡톡 API μ„€μ • 및 ν•¨μˆ˜
β”‚Β Β  β”œβ”€β”€ fittingApi.js                            # 가상 ν”ΌνŒ… κ΄€λ ¨ API
β”‚Β Β  β”œβ”€β”€ memberApi.js                             # νšŒμ› 정보 κ΄€λ ¨ API
β”‚Β Β  β”œβ”€β”€ orderApi.js                              # μ£Όλ¬Έ 및 거래 λ‚΄μ—­ API
β”‚Β Β  β”œβ”€β”€ quizApi.js                               # ν€΄μ¦ˆ κ΄€λ ¨ API
β”‚Β Β  └── recommendationApi.js                     # μΆ”μ²œ μ‹œμŠ€ν…œ κ΄€λ ¨ API
β”œβ”€β”€ App.css                                      # μ•± μ „μ—­ CSS 파일
β”œβ”€β”€ App.jsx                                      # μ•±μ˜ 메인 λΌμš°νŒ… 및 λ ˆμ΄μ•„μ›ƒ μ„€μ • μ»΄ν¬λ„ŒνŠΈ
β”œβ”€β”€ assets                                       # 정적 λ¦¬μ†ŒμŠ€ (이미지, μ•„μ΄μ½˜ λ“±)
β”‚Β Β  β”œβ”€β”€ advertisement1.png                       # κ΄‘κ³  λ°°λ„ˆ 이미지
β”‚Β Β  β”œβ”€β”€ bnkBank.png                              # 뢀산은행 μ•„μ΄μ½˜
β”‚Β Β  β”œβ”€β”€ earth_quiz.png                           # ν€΄μ¦ˆ 지ꡬ 이미지
β”‚Β Β  β”œβ”€β”€ earth.png                                # 지ꡬ μ•„μ΄μ½˜
β”‚Β Β  β”œβ”€β”€ fitfit.png                               # 핏핏 둜고 이미지
β”‚Β Β  β”œβ”€β”€ hanaBank.png                             # ν•˜λ‚˜μ€ν–‰ μ•„μ΄μ½˜
β”‚Β Β  β”œβ”€β”€ ibkBank.png                              # 기업은행 μ•„μ΄μ½˜
β”‚Β Β  β”œβ”€β”€ kakao_login_medium_wide.png              # 카카였 둜그인 λ²„νŠΌ 이미지
β”‚Β Β  β”œβ”€β”€ kakaoBank.png                            # μΉ΄μΉ΄μ˜€λ±…ν¬ μ•„μ΄μ½˜
β”‚Β Β  β”œβ”€β”€ kBank.png                                # 케이뱅크 μ•„μ΄μ½˜
β”‚Β Β  β”œβ”€β”€ kbBank.png                               # ꡭ민은행 μ•„μ΄μ½˜
β”‚Β Β  β”œβ”€β”€ kebBank.png                              # ν•˜λ‚˜μ€ν–‰(ꡬ μ™Έν™˜) μ•„μ΄μ½˜
β”‚Β Β  β”œβ”€β”€ kfccBank.png                             # μƒˆλ§ˆμ„κΈˆκ³  μ•„μ΄μ½˜
β”‚Β Β  β”œβ”€β”€ logo-fitfit copy.png                     # 둜고 사본
β”‚Β Β  β”œβ”€β”€ logo-fitfit.png                          # 메인 둜고
β”‚Β Β  β”œβ”€β”€ nhBank.png                               # λ†ν˜‘μ€ν–‰ μ•„μ΄μ½˜
β”‚Β Β  β”œβ”€β”€ postBank.png                             # 우체ꡭ μ•„μ΄μ½˜
β”‚Β Β  β”œβ”€β”€ scBank.png                               # SCμ œμΌμ€ν–‰ μ•„μ΄μ½˜
β”‚Β Β  β”œβ”€β”€ shinhanBank.png                          # μ‹ ν•œμ€ν–‰ μ•„μ΄μ½˜
β”‚Β Β  β”œβ”€β”€ space.png                                # 우주 λ°°κ²½ 이미지
β”‚Β Β  β”œβ”€β”€ suhyupBank.png                           # μˆ˜ν˜‘ μ•„μ΄μ½˜
β”‚Β Β  β”œβ”€β”€ tossBank.png                             # ν† μŠ€λ±…ν¬ μ•„μ΄μ½˜
β”‚Β Β  β”œβ”€β”€ userLocation.png                         # μ‚¬μš©μž μœ„μΉ˜ ν‘œμ‹œ μ•„μ΄μ½˜
β”‚Β Β  └── wooriBank.png                            # μš°λ¦¬μ€ν–‰ μ•„μ΄μ½˜
β”œβ”€β”€ components                                   # κ³΅ν†΅μœΌλ‘œ μ‚¬μš©λ˜λŠ” UI μ»΄ν¬λ„ŒνŠΈ
β”‚Β Β  β”œβ”€β”€ BottomNavBar.jsx                         # ν•˜λ‹¨ λ„€λΉ„κ²Œμ΄μ…˜ λ°” (메인 메뉴 이동)
β”‚Β Β  └── PhotoPickerModal.jsx                     # 사진 선택 λͺ¨λ‹¬ (카메라/앨범)
β”œβ”€β”€ constants                                    # μƒμˆ˜ 데이터 λͺ¨μŒ
β”‚Β Β  β”œβ”€β”€ categories.js                            # μƒν’ˆ μΉ΄ν…Œκ³ λ¦¬ μ •μ˜
β”‚Β Β  └── termContent.js                           # μ•½κ΄€ λ‚΄μš© μ •μ˜
β”œβ”€β”€ contexts                                     # μ „μ—­ μƒνƒœ 관리 (Context API)
β”‚Β Β  β”œβ”€β”€ MapContext.jsx                           # 지도 κ΄€λ ¨ μƒνƒœ μ»¨ν…μŠ€νŠΈ
β”‚Β Β  β”œβ”€β”€ SellFormContext.jsx                      # νŒλ§€κΈ€ μž‘μ„± 폼 μƒνƒœ μ»¨ν…μŠ€νŠΈ
β”‚Β Β  └── SignupContext.jsx                        # νšŒμ›κ°€μž… μ§„ν–‰ μƒνƒœ μ»¨ν…μŠ€νŠΈ
β”œβ”€β”€ Hello.jsx                                    # ν…ŒμŠ€νŠΈμš© Hello μ»΄ν¬λ„ŒνŠΈ
β”œβ”€β”€ hooks                                        # μ»€μŠ€ν…€ ν›… λͺ¨μŒ
β”‚Β Β  └── useRequireAuth.js                        # 둜그인 μ—¬λΆ€ 확인 및 λ¦¬λ‹€μ΄λ ‰νŠΈ ν›…
β”œβ”€β”€ index.css                                    # Tailwind CSS μ§„μž…μ  및 κΈ°λ³Έ μŠ€νƒ€μΌ
β”œβ”€β”€ main.jsx                                     # React μ•± μ§„μž…μ  (DOM λ Œλ”λ§)
β”œβ”€β”€ pages                                        # νŽ˜μ΄μ§€ λ‹¨μœ„ μ»΄ν¬λ„ŒνŠΈ 폴더
β”‚Β Β  β”œβ”€β”€ auth                                     # 인증 κ΄€λ ¨ νŽ˜μ΄μ§€
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ AuthStartPage.css                    # μ‹œμž‘ νŽ˜μ΄μ§€ μŠ€νƒ€μΌ
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ AuthStartPage.jsx                    # μ‹œμž‘ νŽ˜μ΄μ§€ (둜그인/νšŒμ›κ°€μž… λΆ„κΈ°)
β”‚Β Β  β”‚Β Β  └── kakao                                # 카카였 둜그인 κ΄€λ ¨
β”‚Β Β  β”‚Β Β      └── KakaoRedirect.jsx                # 카카였 둜그인 콜백 처리 νŽ˜μ΄μ§€
β”‚Β Β  β”œβ”€β”€ category                                 # μΉ΄ν…Œκ³ λ¦¬ κ΄€λ ¨ νŽ˜μ΄μ§€
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ CategoryPage.jsx                     # μΉ΄ν…Œκ³ λ¦¬ λͺ©λ‘ νŽ˜μ΄μ§€
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ CategoryResultPage.jsx               # μΉ΄ν…Œκ³ λ¦¬ 선택 κ²°κ³Ό 리슀트 νŽ˜μ΄μ§€
β”‚Β Β  β”‚Β Β  └── components                           # μΉ΄ν…Œκ³ λ¦¬ νŽ˜μ΄μ§€ λ‚΄λΆ€ μ»΄ν¬λ„ŒνŠΈ
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ AccessoriesCategory.jsx          # μ•‘μ„Έμ„œλ¦¬ μΉ΄ν…Œκ³ λ¦¬ μ»΄ν¬λ„ŒνŠΈ
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ BagsCategory.jsx                 # κ°€λ°© μΉ΄ν…Œκ³ λ¦¬ μ»΄ν¬λ„ŒνŠΈ
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ BottomsCategory.jsx              # ν•˜μ˜ μΉ΄ν…Œκ³ λ¦¬ μ»΄ν¬λ„ŒνŠΈ
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ CategoryClothesList.jsx          # μΉ΄ν…Œκ³ λ¦¬ 의λ₯˜ λͺ©λ‘ μ»΄ν¬λ„ŒνŠΈ
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ DressesCategory.jsx              # μ›ν”ΌμŠ€ μΉ΄ν…Œκ³ λ¦¬ μ»΄ν¬λ„ŒνŠΈ
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ OuterwearCategory.jsx            # μ•„μš°ν„° μΉ΄ν…Œκ³ λ¦¬ μ»΄ν¬λ„ŒνŠΈ
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ RecommendedCategory.jsx          # μΆ”μ²œ μΉ΄ν…Œκ³ λ¦¬ μ»΄ν¬λ„ŒνŠΈ
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ ShoesCategory.jsx                # μ‹ λ°œ μΉ΄ν…Œκ³ λ¦¬ μ»΄ν¬λ„ŒνŠΈ
β”‚Β Β  β”‚Β Β      └── TopsCategory.jsx                 # μƒμ˜ μΉ΄ν…Œκ³ λ¦¬ μ»΄ν¬λ„ŒνŠΈ
β”‚Β Β  β”œβ”€β”€ Chat                                     # μ±„νŒ… κ΄€λ ¨ νŽ˜μ΄μ§€
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ChatPage.jsx                         # μ±„νŒ…λ°© λͺ©λ‘ νŽ˜μ΄μ§€
β”‚Β Β  β”‚Β Β  └── ChatRoomPage.jsx                     # κ°œλ³„ 1:1 μ±„νŒ…λ°© νŽ˜μ΄μ§€
β”‚Β Β  β”œβ”€β”€ Closet                                   # 옷μž₯ κ΄€λ ¨ νŽ˜μ΄μ§€
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Closet.jsx                           # λ‚΄ 옷μž₯ 메인 νŽ˜μ΄μ§€ (λ“±λ‘λœ 옷 확인)
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ components                           # 옷μž₯ νŽ˜μ΄μ§€ λ‚΄λΆ€ μ»΄ν¬λ„ŒνŠΈ
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── ClosetTab.jsx                    # 옷μž₯ νƒ­ μ»΄ν¬λ„ŒνŠΈ
β”‚Β Β  β”‚Β Β  └── FittingRoomPage.jsx                  # 가상 ν”ΌνŒ…λ£Έ νŽ˜μ΄μ§€ (AI ν”ΌνŒ… μ‹€ν–‰)
β”‚Β Β  β”œβ”€β”€ LoadingPage.jsx                          # λ‘œλ”© ν™”λ©΄ νŽ˜μ΄μ§€
β”‚Β Β  β”œβ”€β”€ MainPage                                 # 메인화면 νŽ˜μ΄μ§€
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ components                           # 메인화면 λ‚΄λΆ€ μ»΄ν¬λ„ŒνŠΈ
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ AdSection.jsx                    # κ΄‘κ³  μ„Ήμ…˜
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ MainNavBar.jsx                   # 메인 상단 λ„€λΉ„κ²Œμ΄μ…˜λ°”
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ NewTab.jsx                       # μ‹ μƒν’ˆ νƒ­ 컨텐츠
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ PopularRankingSection.jsx        # 인기 λž­ν‚Ή μ„Ήμ…˜
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ PopularTab.jsx                   # 인기 μƒν’ˆ νƒ­ 컨텐츠
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ProductCard.jsx                  # μƒν’ˆ μΉ΄λ“œ μ»΄ν¬λ„ŒνŠΈ (썸넀일, 가격 λ“±)
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ RecommendTab.jsx                 # μΆ”μ²œ μƒν’ˆ νƒ­ 컨텐츠
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ SaleTab.jsx                      # 세일 μƒν’ˆ νƒ­ 컨텐츠
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ SearchBar.jsx                    # 검색바 μ»΄ν¬λ„ŒνŠΈ
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── WelcomeModal.jsx                 # ν™˜μ˜ λͺ¨λ‹¬ μ»΄ν¬λ„ŒνŠΈ
β”‚Β Β  β”‚Β Β  └── MainPage.jsx                         # 메인 νŽ˜μ΄μ§€ μ§„μž…μ 
β”‚Β Β  β”œβ”€β”€ map                                      # 지도 κ΄€λ ¨ νŽ˜μ΄μ§€
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ LocationSearchModal.jsx              # μœ„μΉ˜ 검색 λͺ¨λ‹¬
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ MapPage.jsx                          # 지도 νŽ˜μ΄μ§€ (λ‚΄ μ£Όλ³€ μƒν’ˆ μ°ΎκΈ°)
β”‚Β Β  β”‚Β Β  └── useKakaoLoader.jsx                   # 카카였맡 λ‘œλ” ν›…
β”‚Β Β  β”œβ”€β”€ MyPage                                   # λ§ˆμ΄νŽ˜μ΄μ§€
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ AccountManagePage.jsx                # 계정 관리 νŽ˜μ΄μ§€
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ BodyInfoPage.jsx                     # μ²΄ν˜• 정보 관리 νŽ˜μ΄μ§€
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ChatbotPage.jsx                      # 챗봇 상담 νŽ˜μ΄μ§€
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ components                           # λ§ˆμ΄νŽ˜μ΄μ§€ λ‚΄λΆ€ μ»΄ν¬λ„ŒνŠΈ
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ CleanTransactionModal.jsx        # 클린 거래 μ•ˆλ‚΄ λͺ¨λ‹¬
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ HistoryPageLayout.jsx            # λ‚΄μ—­ νŽ˜μ΄μ§€ λ ˆμ΄μ•„μ›ƒ
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ PurchaseHistoryList.jsx          # ꡬ맀 λ‚΄μ—­ 리슀트
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ PurchaseHistoryTab.jsx           # ꡬ맀 λ‚΄μ—­ νƒ­
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ReviewModal.jsx                  # 리뷰 μž‘μ„± λͺ¨λ‹¬
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ SalesHistoryList.jsx             # 판맀 λ‚΄μ—­ 리슀트
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── SalesHistoryTab.jsx              # 판맀 λ‚΄μ—­ νƒ­
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ LeafManagePage.jsx                   # 리프(포인트) 관리 νŽ˜μ΄μ§€
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ MyPage.jsx                           # λ§ˆμ΄νŽ˜μ΄μ§€ 메인 ν™”λ©΄
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ProfileEditPage.jsx                  # ν”„λ‘œν•„ νŽΈμ§‘ νŽ˜μ΄μ§€
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ PurchaseHistoryPage.jsx              # ꡬ맀 λ‚΄μ—­ 전체 νŽ˜μ΄μ§€
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ QuizPage                             # ν€΄μ¦ˆ κ΄€λ ¨ νŽ˜μ΄μ§€ 폴더
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ QuizPage.jsx                     # ν€΄μ¦ˆ 메인 νŽ˜μ΄μ§€
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── QuizQuestionPage.jsx             # ν€΄μ¦ˆ 문제 풀이 νŽ˜μ΄μ§€
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ SalesHistoryPage.jsx                 # 판맀 λ‚΄μ—­ 전체 νŽ˜μ΄μ§€
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ SellPage                             # μƒν’ˆ 판맀 등둝 폴더
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ components                       # 판맀 νŽ˜μ΄μ§€ λ‚΄λΆ€ μ»΄ν¬λ„ŒνŠΈ
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ BasicInfoSection.jsx         # κΈ°λ³Έ 정보 μž…λ ₯ μ„Ήμ…˜
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DatePickerModal.jsx          # λ‚ μ§œ 선택 λͺ¨λ‹¬
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DirectTransactionSection.jsx # 직거래 μ„€μ • μ„Ήμ…˜
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ PhotoUploadSection.jsx       # 사진 μ—…λ‘œλ“œ μ„Ήμ…˜
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ PriceSection.jsx             # 가격 μ„€μ • μ„Ήμ…˜
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ SizeSection.jsx              # μ‚¬μ΄μ¦ˆ μ„€μ • μ„Ήμ…˜
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ SpecialSaleSection.jsx       # νŠΉκ°€ μ„€μ • μ„Ήμ…˜
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ StyleSection.jsx             # μŠ€νƒ€μΌ νƒœκ·Έ μ„€μ • μ„Ήμ…˜
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  └── VirtualFittingSection.jsx    # κ°€μƒν”ΌνŒ… ν—ˆμš© μ„€μ •
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ EditSellPage.jsx                 # νŒλ§€κΈ€ μˆ˜μ • νŽ˜μ΄μ§€
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── SellPage.jsx                     # νŒλ§€κΈ€ 등둝 νŽ˜μ΄μ§€
β”‚Β Β  β”‚Β Β  └── WithdrawalPage.jsx                   # νšŒμ› νƒˆν‡΄ νŽ˜μ΄μ§€
β”‚Β Β  β”œβ”€β”€ Payment                                  # 결제 κ΄€λ ¨ νŽ˜μ΄μ§€
β”‚Β Β  β”‚Β Β  └── PaymentPage.jsx                      # 결제 μ§„ν–‰ νŽ˜μ΄μ§€
β”‚Β Β  β”œβ”€β”€ ProductDetailPage                        # μƒν’ˆ 상세 νŽ˜μ΄μ§€
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ components                           # 상세 νŽ˜μ΄μ§€ λ‚΄λΆ€ μ»΄ν¬λ„ŒνŠΈ
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ProductActionButtons.jsx         # ꡬ맀/μ±„νŒ… λ²„νŠΌ
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ProductDescription.jsx           # μƒν’ˆ 상세 μ„€λͺ…
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ProductDetailHeader.jsx          # 상세 νŽ˜μ΄μ§€ 헀더
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ProductImageCarousel.jsx         # μƒν’ˆ 이미지 μŠ¬λΌμ΄λ”
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ProductInfoSection.jsx           # μƒν’ˆ 정보 μ„Ήμ…˜
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ProductSizeSection.jsx           # μ‹€μΈ‘ μ‚¬μ΄μ¦ˆ μ„Ήμ…˜
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── SellerInfoBox.jsx                # 판맀자 정보 λ°•μŠ€
β”‚Β Β  β”‚Β Β  └── ProductDetailPage.jsx                # μƒν’ˆ 상세 νŽ˜μ΄μ§€ 메인
β”‚Β Β  β”œβ”€β”€ SearchPage                               # 검색 κ΄€λ ¨ νŽ˜μ΄μ§€
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ components                           # 검색 νŽ˜μ΄μ§€ λ‚΄λΆ€ μ»΄ν¬λ„ŒνŠΈ
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ PriceFilterDropdown.jsx          # 가격 ν•„ν„° 
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ RegionFilterDropdown.jsx         # μ§€μ—­ ν•„ν„°
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── StyleFilterDropdown.jsx          # μŠ€νƒ€μΌ ν•„ν„°
β”‚Β Β  β”‚Β Β  └── SearchPage.jsx                       # 검색 κ²°κ³Ό νŽ˜μ΄μ§€
β”‚Β Β  └── signup                                   # νšŒμ›κ°€μž… κ΄€λ ¨ νŽ˜μ΄μ§€
β”‚Β Β      β”œβ”€β”€ components                           # νšŒμ›κ°€μž… λ‚΄λΆ€ μ»΄ν¬λ„ŒνŠΈ
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ BirthDateSelector.css            # 생년월일 선택 μŠ€νƒ€μΌ
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ BirthDateSelector.jsx            # 생년월일 선택 μ»΄ν¬λ„ŒνŠΈ
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ GenderSelector.css               # 성별 선택 μŠ€νƒ€μΌ
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ GenderSelector.jsx               # 성별 선택 μ»΄ν¬λ„ŒνŠΈ
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ InputWithCheckButton.css         # 쀑볡확인 λ²„νŠΌ 포함 μž…λ ₯μ°½ μŠ€νƒ€μΌ
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ InputWithCheckButton.jsx         # 쀑볡확인 λ²„νŠΌ 포함 μž…λ ₯μ°½
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ LabeledInput.css                 # 라벨 포함 μž…λ ₯μ°½ μŠ€νƒ€μΌ
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ LabeledInput.jsx                 # 라벨 포함 μž…λ ₯μ°½
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ PasswordFields.css               # λΉ„λ°€λ²ˆν˜Έ μž…λ ₯ ν•„λ“œ μŠ€νƒ€μΌ
β”‚Β Β      β”‚Β Β  └── PasswordFields.jsx               # λΉ„λ°€λ²ˆν˜Έ μž…λ ₯ ν•„λ“œ
β”‚Β Β      β”œβ”€β”€ SignupPage.jsx                       # νšŒμ›κ°€μž… 메인 νŽ˜μ΄μ§€
β”‚Β Β      β”œβ”€β”€ SignupStep1.css                      # 단계1 μŠ€νƒ€μΌ
β”‚Β Β      β”œβ”€β”€ SignupStep1.jsx                      # 단계1 (μ•½κ΄€λ™μ˜)
β”‚Β Β      β”œβ”€β”€ SignupStep2.css                      # 단계2 μŠ€νƒ€μΌ
β”‚Β Β      β”œβ”€β”€ SignupStep2.jsx                      # 단계2 (μ •λ³΄μž…λ ₯)
β”‚Β Β      β”œβ”€β”€ SignupStep3.css                      # 단계3 μŠ€νƒ€μΌ
β”‚Β Β      β”œβ”€β”€ SignupStep3.jsx                      # 단계3 (μ™„λ£Œ)
β”‚Β Β      β”œβ”€β”€ styles                               # νšŒμ›κ°€μž… 곡톡 μŠ€νƒ€μΌ
β”‚Β Β      β”‚Β Β  └── common.css                       # 곡톡 CSS
β”‚Β Β      β”œβ”€β”€ TermsDetailPage.css                  # μ•½κ΄€ 상세 μŠ€νƒ€μΌ
β”‚Β Β      β”œβ”€β”€ TermsDetailPage.jsx                  # μ•½κ΄€ 상세 λ‚΄μš© νŽ˜μ΄μ§€
β”‚Β Β      β”œβ”€β”€ TermsPage.css                        # μ•½κ΄€ λͺ©λ‘ μŠ€νƒ€μΌ
β”‚Β Β      └── TermsPage.jsx                        # μ•½κ΄€ λͺ©λ‘ νŽ˜μ΄μ§€
β”œβ”€β”€ reducers                                     # Redux Reducer λͺ¨μŒ
β”‚Β Β  β”œβ”€β”€ auth.js                                  # 인증 κ΄€λ ¨ λ¦¬λ“€μ„œ
β”‚Β Β  β”œβ”€β”€ counter.js                               # μΉ΄μš΄ν„° λ¦¬λ“€μ„œ (예제용)
β”‚Β Β  └── index.js                                 # 루트 λ¦¬λ“€μ„œ κ²°ν•©
β”œβ”€β”€ store.js                                     # Redux Store μ„€μ • 파일
β”œβ”€β”€ styles                                       # μŠ€νƒ€μΌ κ΄€λ ¨ 폴더
β”‚Β Β  └── global.css                               # μ „μ—­ CSS 파일
└── utils                                        # μœ ν‹Έλ¦¬ν‹° ν•¨μˆ˜ 폴더
    β”œβ”€β”€ formatters.js                            # λ‚ μ§œ/κΈˆμ•‘ ν¬λ§·νŒ… ν•¨μˆ˜
    β”œβ”€β”€ imageCompression.js                      # 이미지 μ••μΆ• μœ ν‹Έλ¦¬ν‹°
    └── imageUtils.js                            # 이미지 처리 κ΄€λ ¨ ν•¨μˆ˜

πŸš€ Start

1. Requirements

  • Node.js 18+
  • npm 9+

2. Install

$ npm install

Copy your local environment

.env νŒŒμΌμ„ μƒμ„±ν•˜κ³  ν•„μš”ν•œ ν™˜κ²½ λ³€μˆ˜λ₯Ό μ„€μ •ν•˜μ„Έμš”.

VITE_API_URL=your_api_url
VITE_KAKAO_API_KEY=your_kakao_key
...

To run the project locally:

$ npm run dev

πŸ“š Documentation (Developer Docs)


πŸ‘¨β€πŸ’» How to contribute

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feat/AmazingFeature)
  3. Commit your Changes (git commit -m 'feat: some AmazingFeature')
  4. Push to the Branch (git push origin feat/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ’» Open-Source Software (OSS)

이 ν”„λ‘œμ νŠΈλŠ” 핡심 κΈ°λŠ₯을 κ΅¬ν˜„ν•˜κΈ° μœ„ν•΄ λ‹€μŒκ³Ό 같은 μ˜€ν”ˆμ†ŒμŠ€ λΌμ΄λΈŒλŸ¬λ¦¬μ™€ νŒ¨ν‚€μ§€λ“€μ„ ν™œμš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€:

Category Package(s) Description
Core Framework react, react-dom, vite μ›Ή μΈν„°νŽ˜μ΄μŠ€ ꡬ좕 및 κ³ μ„±λŠ₯ λΉŒλ“œ ν™˜κ²½ 제곡
State Management redux-toolkit, react-redux μ „μ—­ μƒνƒœ 관리 및 효율적인 데이터 흐름 μ œμ–΄
Data Fetching react-query, axios μ„œλ²„ 데이터 페칭, 캐싱 및 비동기 HTTP 톡신
Real-time Comm. stompjs, sockjs-client μ›Ήμ†ŒμΌ“ 기반의 μ‹€μ‹œκ°„ μ±„νŒ… κΈ°λŠ₯ κ΅¬ν˜„
Routing react-router-dom 선언적 λΌμš°νŒ…μ„ ν†΅ν•œ νŽ˜μ΄μ§€ κ°„ 이동 관리
Map & Location react-kakao-maps-sdk 카카였맡 API 연동을 ν†΅ν•œ 지도 기반 거래 정보 제곡
UI Components react-icons, sweetalert2, react-hot-toast μ•„μ΄μ½˜ μ‹œμŠ€ν…œ 및 μŠ€λƒ…λ°± μ•Œλ¦Ό/λͺ¨λ‹¬ UI 제곡
UI & UX react-confetti, react-day-picker, react-markdown λŒ€ν™”ν˜• μ• λ‹ˆλ©”μ΄μ…˜, λ‚ μ§œ 선택 및 λ§ˆν¬λ‹€μš΄ λ Œλ”λ§ 지원
Utilities browser-image-compression 이미지 μ—…λ‘œλ“œ μ΅œμ ν™”λ₯Ό μœ„ν•œ λΈŒλΌμš°μ € 단 이미지 μ••μΆ•
Styling tailwindcss, postcss, autoprefixer μœ ν‹Έλ¦¬ν‹° 퍼슀트 ν”„λ ˆμž„μ›Œν¬λ₯Ό μ΄μš©ν•œ ν˜„λŒ€μ μΈ λ””μžμΈ κ΅¬ν˜„
Development eslint, globals μ½”λ“œ ν’ˆμ§ˆ μœ μ§€ 및 μΌκ΄€λœ μ½”λ”© μ»¨λ²€μ…˜ 적용

πŸ“ Questions or Support

λ¬Έμ˜μ‚¬ν•­μ€ Issues에 λ“±λ‘ν•΄μ£Όμ‹œκ±°λ‚˜ leejuhan0527@gmail.com으둜 이메일을 λ³΄λ‚΄μ£Όμ„Έμš”.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors