Skip to content

UMC-SeaTea/FE

Repository files navigation

🌊 SeaTea

9th UMC Web

ν˜„λŒ€μΈμ„ μœ„ν•œ λ§žμΆ€ν˜• νœ΄μ‹ 곡간 μΆ”μ²œ μ„œλΉ„μŠ€
Tea Tasting Noteμ—μ„œ μ˜κ°μ„ λ°›μ•„, μ§€κΈˆμ˜ λ‚˜μ—κ²Œ κΌ­ λ§žλŠ” νœ΄μ‹μ„ μΆ”μ²œν•©λ‹ˆλ‹€.

πŸ“Œ Project Overview

SeaTeaλŠ” μ°¨(Tea)의 ν…Œμ΄μŠ€νŒ… λ…ΈνŠΈ κ°œλ…μ„ ν™•μž₯ν•˜μ—¬
μ‚¬μš©μžμ˜ κ°μ •Β·μƒνƒœλ₯Ό 8κ°€μ§€ νœ΄μ‹ μœ ν˜•μœΌλ‘œ λΆ„λ₯˜ν•˜κ³ ,
이에 μ–΄μšΈλ¦¬λŠ” 곡간과 κ²½ν—˜μ„ μΆ”μ²œν•˜λŠ” μ„œλΉ„μŠ€μž…λ‹ˆλ‹€.

πŸ‘₯ Contributors

Contributor Role Description

μ΄μ±„μœ€
@cchaeyoon
Lead
Web
β€’ Architecture: React ν”„λ‘œμ νŠΈ κΈ°λ³Έ μ„ΈνŒ… 및 λΌμš°νŒ… ꡬ쑰 ꡬ좕
β€’ Core Module: Axios Interceptor 및 곡톡 인증/인가 둜직 κ΅¬ν˜„
β€’ Feature: ν™ˆ ν™”λ©΄, 지도(곡간 μ‘°νšŒΒ·κ²€μƒ‰Β·μƒμ„Έ) νŽ˜μ΄μ§€, μ‚¬μ΄λ“œλ°”Β·404Β·λ‘œλ”© νŽ˜μ΄μ§€ λ‹΄λ‹Ή

μ΅œνš¨λΉ„
@Hyobee02
Web β€’ Design System: Figma 기반 λ””μžμΈ 토큰 μ •μ˜ 및 κΈ€λ‘œλ²Œ μŠ€νƒ€μΌ μ‹œμŠ€ν…œ ꡬ좕
β€’ Feature: 진단(간단·상세) νŽ˜μ΄μ§€, 진단 κ²°κ³Ό νŽ˜μ΄μ§€ λ‹΄λ‹Ή
β€’ Infra: ν”„λ‘œμ νŠΈ 배포 및 운영 ν™˜κ²½ μ„€μ •

이지민
@jimiiiy
Web β€’ Feature: 둜그인(일반/μ†Œμ…œ) 및 νšŒμ›κ°€μž… νŽ˜μ΄μ§€, λ§ˆμ΄νŽ˜μ΄μ§€(ν”„λ‘œν•„ μˆ˜μ •) 및 마이 ν‹°λ°±(뢁마크) νŽ˜μ΄μ§€ λ‹΄λ‹Ή
β€’ Docs: README μž‘μ„±

✨ Key Features

πŸ” 인증

  • μ†Œμ…œ 둜그인: 카카였 μ†Œμ…œ λ‘œκ·ΈμΈμ„ ν†΅ν•œ νšŒμ›κ°€μž…/둜그인 지원
  • 일반 둜그인: 이메일 기반의 자체 νšŒμ›κ°€μž… 및 둜그인 지원
  • ν”„λ‘œν•„ μ„€μ •: νšŒμ›κ°€μž… μ‹œ λ‹‰λ„€μž„ μ„€μ • 및 ν”„λ‘œν•„ 이미지 μ„€μ • κΈ°λŠ₯

πŸ“ ν…Œμ΄μŠ€νŒ… λ…ΈνŠΈ 진단

  • 진단 μ˜¨λ³΄λ”©: μ„œλΉ„μŠ€ μ†Œκ°œ 및 μ‚¬μš©μž 선택에 λ”°λ₯Έ 진단 λͺ¨λ“œ(상세/간단) 선택
  • 상세 진단: 상세 μ§ˆλ¬Έμ„ ν†΅ν•œ 진단 κΈ°λŠ₯. 점수 μ°¨ 결과에 따라 μ •ν™•ν•œ 진단을 μœ„ν•΄ μΆ”κ°€ 질문 κΈ°λŠ₯
  • 간단 진단: 20개의 ν‚€μ›Œλ“œ 쀑 3개λ₯Ό μ„ νƒν•˜μ—¬ λΉ λ₯΄κ²Œ 진단
  • 진단 κ²°κ³Ό: 진단 결과에 λ”°λ₯Έ ν…Œμ΄μŠ€νŒ… λ…ΈνŠΈ μ„€λͺ… 및 λ§žμΆ€ν˜• 곡간 νλ ˆμ΄μ…˜ 제곡
  • μƒˆλ‘œ μ§„λ‹¨ν•˜κΈ°: μƒˆλ‘­κ²Œ μœ ν˜• 진단
  • κ³Όκ±° 진단 λ‚΄μ—­: κ³Όκ±° 진단 λ‚΄μ—­ 제곡

πŸ—ΊοΈ 곡간 μΆ”μ²œ 및 탐색

  • ν…Œμ΄μŠ€νŒ… λ…ΈνŠΈ 별 곡간 μΆ”μ²œ: ν…Œμ΄μŠ€νŒ… λ…ΈνŠΈμ— 맞좰 ν•„ν„°λ§λœ 곡간 λͺ©λ‘ 제곡
  • 곡간 지도: 카카였맡 API 연동, μœ„μΉ˜ 선택에 λ”°λ₯Έ 지도 λ·° 제곡, ν…Œμ΄μŠ€νŒ… λ…ΈνŠΈμ— λ”°λ₯Έ 곡간 μœ„μΉ˜ 마컀둜 ν‘œμ‹œ
  • 곡간 검색: 지도 λ‚΄ ν‚€μ›Œλ“œλ₯Ό ν†΅ν•œ 곡간 검색
  • 곡간 상세: ν•΄λ‹Ή 곡간 상세 정보 제곡, κ³΅μœ ν•˜κΈ° κΈ°λŠ₯, 마이 ν‹°λ°± μ €μž₯ κΈ°λŠ₯

πŸ‘€ λ§ˆμ΄νŽ˜μ΄μ§€

  • μœ μ € ν”„λ‘œν•„μΉ΄λ“œ: 이메일, ν˜„μž¬ ν…Œμ΄μŠ€νŒ… λ…ΈνŠΈ, μ €μž₯ν•œ 곡간 수 ν‘œμ‹œ
  • ν”„λ‘œν•„ 관리: λ‹‰λ„€μž„ μˆ˜μ • 및 ν”„λ‘œν•„ 이미지 λ³€κ²½ κΈ°λŠ₯
  • 마이 ν‹°λ°±: λ‚΄κ°€ μ €μž₯ν•œ 곡간을 리슀트 ν˜•νƒœλ‘œ ν‘œμ‹œ, μ •λ ¬ 및 νŽΈμ§‘μ„ ν†΅ν•œ μ·¨μ†Œ κΈ°λŠ₯

πŸ›  Tech Stack

Frontend

Package Version Description
React v19.2.0 UI 라이브러리
TypeScript v5.9.3 정적 νƒ€μž… μ–Έμ–΄
Vite v7.2.4 λΉŒλ“œ 툴 & 개발 μ„œλ²„
React Router v7.11.0 νŽ˜μ΄μ§€ λΌμš°νŒ…
TanStack Query v5.90.20 μ„œλ²„ μƒνƒœ 관리 & 데이터 패칭
Axios v1.13.4 HTTP ν΄λΌμ΄μ–ΈνŠΈ
Tailwind CSS v4.1.18 μœ ν‹Έλ¦¬ν‹° 퍼슀트 CSS ν”„λ ˆμž„μ›Œν¬
React Icons v5.5.0 μ•„μ΄μ½˜ 라이브러리
CLSX v2.1.1 쑰건뢀 클래슀 병합 μœ ν‹Έλ¦¬ν‹°
Zustand v5.0.11 κΈ€λ‘œλ²Œ ν΄λΌμ΄μ–ΈνŠΈ μƒνƒœ 관리 라이브러리

Development Tools

Package Version Description
ESLint v9.39.2 μ½”λ“œ λ¦°νŒ… 도ꡬ
Prettier v3.8.1 μ½”λ“œ 포맷터
Vite Plugin SVGR v4.5.0 SVG μ»΄ν¬λ„ŒνŠΈ λ³€ν™˜ 도ꡬ

πŸ“‚ Project Structure

FE/
β”œβ”€β”€ public/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ apis/                   # API 톡신 λͺ¨λ“ˆ
β”‚   β”‚   β”œβ”€β”€ auth/               # 인증 κ΄€λ ¨ API (둜그인, νšŒμ›κ°€μž…)
β”‚   β”‚   β”œβ”€β”€ diagnosis/          # ν…Œμ΄μŠ€νŒ… λ…ΈνŠΈ 진단 API
β”‚   β”‚   β”œβ”€β”€ spaces/             # 곡간(지도) 및 검색 API
β”‚   β”‚   β”œβ”€β”€ teabag/             # 마이 ν‹°λ°± API
β”‚   β”‚   β”œβ”€β”€ axios.ts            # Axios μΈμŠ€ν„΄μŠ€ 및 인터셉터 μ„€μ •
β”‚   β”‚   └── member.ts           # μ‚¬μš©μž 정보 κ΄€λ ¨ API
β”‚   β”œβ”€β”€ assets/                 # λ¦¬μ†ŒμŠ€ (μ•„μ΄μ½˜, 이미지)
β”‚   β”œβ”€β”€ components/             # μž¬μ‚¬μš© κ°€λŠ₯ν•œ UI μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”œβ”€β”€ Button/             # 곡톡 λ²„νŠΌ μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”œβ”€β”€ common/             # 기타 곡톡 μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”œβ”€β”€ Diagnosis/          # 진단 μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”œβ”€β”€ Feedback/           # ν”Όλ“œλ°± UI μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”œβ”€β”€ LoadingSpinner/     # λ‘œλ”©μŠ€ν”Όλ„ˆ
β”‚   β”‚   β”œβ”€β”€ MyPage/             # ν”„λ‘œν•„ μΉ΄λ“œ 및 μ„€μ • μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”œβ”€β”€ PlaceTest/          # 곡간 ν…ŒμŠ€νŠΈ κ΄€λ ¨ μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”œβ”€β”€ Search/             # 검색 κ²°κ³Ό 리슀트 μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”œβ”€β”€ SearchBar/          # 검색 μž…λ ₯λ°” μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”œβ”€β”€ SideBar/            # μ‚¬μ΄λ“œλ°”
β”‚   β”‚   β”œβ”€β”€ SignUp/             # νšŒμ›κ°€μž… 폼 μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   └── Toast/              # ν† μŠ€νŠΈ λ©”μ‹œμ§€ μ»΄ν¬λ„ŒνŠΈ
β”‚   β”œβ”€β”€ constants/              # μƒμˆ˜ 데이터
β”‚   β”œβ”€β”€ hooks/                  # μ»€μŠ€ν…€ ν›…
β”‚   β”œβ”€β”€ layouts/                # λ ˆμ΄μ•„μ›ƒ
β”‚   β”œβ”€β”€ lib/                    # 라이브러리 μ„€μ •
β”‚   β”œβ”€β”€ pages/                  # νŽ˜μ΄μ§€ μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”œβ”€β”€ Diagnosis/          # 진단
β”‚   β”‚   β”œβ”€β”€ Login/              # 둜그인
β”‚   β”‚   β”œβ”€β”€ Map/                # 지도 및 곡간 탐색
β”‚   β”‚   β”œβ”€β”€ MyPage/             # λ§ˆμ΄νŽ˜μ΄μ§€
β”‚   β”‚   β”œβ”€β”€ MyTasting/          # 마이 ν…Œμ΄μŠ€νŒ… λ…ΈνŠΈ
β”‚   β”‚   β”œβ”€β”€ ErrorPage.tsx       # 404 및 μ—λŸ¬ 처리 νŽ˜μ΄μ§€
β”‚   β”‚   β”œβ”€β”€ HomePage.tsx        # 메인 ν™ˆ νŽ˜μ΄μ§€
β”‚   β”‚   β”œβ”€β”€ MyTeabagPage.tsx    # 마이 ν‹°λ°± (μ €μž₯ν•œ 곡간) νŽ˜μ΄μ§€
β”‚   β”‚   β”œβ”€β”€ OAuthCallbackPage.tsx # 카카였 μ†Œμ…œ 둜그인 λ¦¬λ‹€μ΄λ ‰νŠΈ 처리 νŽ˜μ΄μ§€
β”‚   β”‚   β”œβ”€β”€ SignUpPage.tsx      # νšŒμ›κ°€μž… 및 초기 ν”„λ‘œν•„ μ„€μ • νŽ˜μ΄μ§€
β”‚   β”‚   └── SpaceRecommendPage.tsx # 맞좀 곡간 μΆ”μ²œ νŽ˜μ΄μ§€
β”‚   β”œβ”€β”€ routes/                 # λΌμš°νŒ… μ„€μ •
β”‚   β”‚   β”œβ”€β”€ ProtectedRoutes.tsx 
β”‚   β”‚   β”œβ”€β”€ PublicRoutes.tsx    
β”‚   β”‚   └── index.ts          
β”‚   β”œβ”€β”€ styles/                 # μŠ€νƒ€μΌ
β”‚   β”œβ”€β”€ types/                  # νƒ€μž… μ •μ˜
β”‚   β”œβ”€β”€ utils/                  # μœ ν‹Έλ¦¬ν‹° ν•¨μˆ˜
β”‚   β”œβ”€β”€ App.tsx
β”‚   β”œβ”€β”€ main.tsx
β”‚   └── vite-env.d.ts
β”œβ”€β”€ .env
β”œβ”€β”€ package.json
β”œβ”€β”€ tailwind.config.js
β”œβ”€β”€ tsconfig.json
└── vite.config.ts

πŸ“± Key Pages

πŸ” Authentication (인증)

νŽ˜μ΄μ§€ 경둜 (Path) μ„€λͺ…
둜그인 및 νšŒμ›κ°€μž… μ˜¨λ³΄λ”© /login/start 둜그인/νšŒμ›κ°€μž… μ§„μž… 및 μ†Œμ…œ 둜그인(μƒˆλ‘œμš΄ μœ μ € λŒ€μƒ)
둜그인 /login 이메일 계정 둜그인 및 μ†Œμ…œ 둜그인(κΈ°μ‘΄ μœ μ € λŒ€μƒ)
νšŒμ›κ°€μž… /signup 이메일 기반 자체 νšŒμ›κ°€μž…, λ‹‰λ„€μž„ 및 ν”„λ‘œν•„ μ„€μ •

πŸ“ Diagnosis (ν…Œμ΄μŠ€νŒ… λ…ΈνŠΈ 진단)

νŽ˜μ΄μ§€ 경둜 (Path) μ„€λͺ…
진단 μ˜¨λ³΄λ”© /diagnosis μ„œλΉ„μŠ€ μ†Œκ°œ 및 진단 λͺ¨λ“œ(상세/간단) 선택
상세 진단 /diagnosis/detail 상세 μ§ˆλ¬Έμ„ ν†΅ν•œ μ •λ°€ 진단 μ§„ν–‰
간단 진단 /diagnosis/simple ν‚€μ›Œλ“œ 선택을 ν†΅ν•œ 간단 진단 μ§„ν–‰
진단 κ²°κ³Ό /diagnosis/complete ν…Œμ΄μŠ€νŒ… λ…ΈνŠΈ κ²°κ³Ό 및 μ„€λͺ… 제곡
맞좀 μΆ”μ²œ /diagnosis/recommend 결과에 λ”°λ₯Έ λ§žμΆ€ν˜• 곡간 νλ ˆμ΄μ…˜ 제곡
마이 ν…Œμ΄μŠ€νŒ… /mytasting ν˜„μž¬ ν…Œμ΄μŠ€νŒ… λ…ΈνŠΈ 및 κ³Όκ±° 진단 이λ ₯ 쑰회

πŸ—ΊοΈ Map (곡간 탐색)

νŽ˜μ΄μ§€ 경둜 (Path) μ„€λͺ…
곡간 지도 /map μœ„μΉ˜ 선택에 λ”°λ₯Έ 곡간 탐색 및 ν…Œμ΄μŠ€νŒ… λ…ΈνŠΈλ³„ 필터링
곡간 검색 /map/search ν‚€μ›Œλ“œλ₯Ό ν†΅ν•œ 곡간 검색
곡간 상세 /map/:sid κ°œλ³„ κ³΅κ°„μ˜ 상세 정보 쑰회 및 λ§ˆμ΄ν‹°λ°± μ €μž₯

πŸ‘€ My Page (λ§ˆμ΄νŽ˜μ΄μ§€)

νŽ˜μ΄μ§€ 경둜 (Path) μ„€λͺ…
λ§ˆμ΄νŽ˜μ΄μ§€ /mypage μœ μ € ν”„λ‘œν•„ μΉ΄λ“œ 및 μ„€μ • 관리
ν”„λ‘œν•„ μˆ˜μ • /mypage/profile-edit λ‹‰λ„€μž„ λ³€κ²½ 및 ν”„λ‘œν•„ 이미지 μˆ˜μ •
마이 ν‹°λ°± /myteabag λ‚΄κ°€ μ €μž₯ν•œ 곡간 λͺ¨μ•„보기

πŸ“Œ Commit Convention

Format

#이슈번호 [νƒ€μž…] μž‘μ—…λͺ…

Type List

  • [FEAT] : μƒˆλ‘œμš΄ κΈ°λŠ₯ κ΅¬ν˜„
  • [MOD] : μ½”λ“œ μˆ˜μ • 및 λ‚΄λΆ€ 파일 μˆ˜μ •
  • [ADD] : 라이브러리 μΆ”κ°€, μ‹ κ·œ 파일 생성
  • [CHORE] : μ„€μ • λ³€κ²½, νƒ€μž…/λ³€μˆ˜λͺ… μˆ˜μ • λ“± μ‚¬μ†Œν•œ μž‘μ—…
  • [DEL] : λΆˆν•„μš”ν•œ μ½”λ“œ/파일 μ‚­μ œ
  • [UI] : UI μž‘μ—…
  • [FIX] : 버그 및 였λ₯˜ ν•΄κ²°
  • [MOVE] : 파일 λ˜λŠ” μ½”λ“œ 이동
  • [RENAME] : 파일λͺ… λ³€κ²½
  • [REFACTOR] : λ¦¬νŒ©ν† λ§
  • [DOCS] : README, WIKI λ“± λ¬Έμ„œ μˆ˜μ •

🌿 Git Flow Strategy

Branch Types

  • main
    β†’ 배포 κ°€λŠ₯ν•œ μ΅œμ’… μ½”λ“œ 브랜치

  • develop
    β†’ 개발 쀑인 κΈ°λŠ₯이 ν†΅ν•©λ˜λŠ” 브랜치

  • feature
    β†’ κΈ°λŠ₯ λ‹¨μœ„ μž‘μ—… 브랜치

  • hotfix
    β†’ κΈ΄κΈ‰ 였λ₯˜ μˆ˜μ • 브랜치

πŸ”„ Workflow

  1. Issue 생성

    • μž‘μ—… λ‚΄μš©μ— λŒ€ν•œ Issueλ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
  2. Branch 생성

    • Issueλ₯Ό κΈ°μ€€μœΌλ‘œ feature λ˜λŠ” hotfix 브랜치λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
  3. κΈ°λŠ₯ κ΅¬ν˜„

    • κΈ°λŠ₯ λ‹¨μœ„λ‘œ 컀밋을 λ‚˜λˆ„μ–΄ μ§„ν–‰ν•©λ‹ˆλ‹€.
    • κΈ°λŠ₯ κ΅¬ν˜„ 쀑 μ„€μΉ˜ν•œ λΌμ΄λΈŒλŸ¬λ¦¬λŠ” Discord μŠ€λ ˆλ“œμ— κ³΅μœ ν•©λ‹ˆλ‹€.
  4. Pull Request 생성

    • PR을 μƒμ„±ν•˜κΈ° μ „ npm run build둜 λΉŒλ“œ 였λ₯˜ μ—¬λΆ€λ₯Ό ν™•μΈν•©λ‹ˆλ‹€.
    • λΉŒλ“œκ°€ μ •μƒμ μœΌλ‘œ μ™„λ£Œλ˜λ©΄ PR을 μƒμ„±ν•©λ‹ˆλ‹€.
  5. Code Review

    • PR μž‘μ„±μž μ™Έ νŒ€μ›λ“€μ΄ 리뷰λ₯Ό μ§„ν–‰ν•©λ‹ˆλ‹€.
    • ν•„μˆ˜ 리뷰어: 2λͺ…
  6. 리뷰 반영

    • μˆ˜μ • μš”μ²­μ„ 반영 ν›„ λ‹€μ‹œ push ν•©λ‹ˆλ‹€.
  7. Merge

    • λ¦¬λ·°μ–΄μ˜ Approve 2개λ₯Ό 받은 ν›„ mergeλ₯Ό μ§„ν–‰ν•©λ‹ˆλ‹€.
  8. Pull

    • merge μ™„λ£Œ ν›„ develop 브랜치둜 μ΄λ™ν•˜μ—¬
      git pull develop으둜 μ΅œμ‹  μƒνƒœλ₯Ό μœ μ§€ν•©λ‹ˆλ‹€.
    • 이후 npm install을 μ‹€ν–‰ν•˜μ—¬ μ΅œμ‹  라이브러리λ₯Ό μ„€μΉ˜ν•©λ‹ˆλ‹€.
  9. 브랜치 정리

    • mergeκ°€ μ™„λ£Œλœ λΈŒλžœμΉ˜λŠ” μƒμ„±μžκ°€ μ‚­μ œν•©λ‹ˆλ‹€.

About

FrontEnd Repository for SeaTea

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages