Skip to content

FE19-Team7/GlobalNomad

Repository files navigation

πŸ“š GlobalNomad

GlobalNomadλŠ” ν•˜λ‚˜μ˜ κ³„μ •μœΌλ‘œ νŒλ§€μžμ™€ μ²΄ν—˜μž 역할을 λͺ¨λ‘ μˆ˜ν–‰ν•  수 μžˆλŠ” μ²΄ν—˜ 기반 μ˜ˆμ•½ ν”Œλž«νΌμž…λ‹ˆλ‹€.

✨ μ†Œκ°œ

μ‚¬μš©μžκ°€ μ²΄ν—˜ μƒν’ˆμ„ 직접 등둝해 νŒλ§€μžκ°€ 될 수 있으며, λ™μ‹œμ— λ‹€λ₯Έ μ‚¬μš©μžμ˜ μ²΄ν—˜μ„ μ˜ˆμ•½ν•˜λŠ” μ²΄ν—˜μžλ‘œλ„ ν™œλ™ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ£Όμš” κΈ°λŠ₯

νšŒμ›κ°€μž… & 둜그인 μ²΄ν—˜ 등둝 및 관리 (판맀자) μ²΄ν—˜ 탐색 & μ˜ˆμ•½ (μ²΄ν—˜μž) μ˜ˆμ•½ μƒνƒœ 관리 λ§ˆμ΄νŽ˜μ΄μ§€ 리뷰 & μ•Œλ¦Ό

πŸ› οΈ 기술 μŠ€νƒ

ν”„λ ˆμž„μ›Œν¬ & 라이브러리

Next JS React TypeScript

  • Next.js 16.0.3 - React 기반 ν’€μŠ€νƒ ν”„λ ˆμž„μ›Œν¬ (App Router, Server Actions)
  • React 19.2.0 - μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€ ꡬ좕 (React Compiler 적용)
  • TypeScript 5 - 정적 νƒ€μž… 검사

μŠ€νƒ€μΌλ§

TailwindCSS

  • Tailwind CSS 4 - μœ ν‹Έλ¦¬ν‹° 퍼슀트 CSS ν”„λ ˆμž„μ›Œν¬
  • tailwind-variants - νƒ€μž… μ•ˆμ „ν•œ variant 관리
  • clsx & tailwind-merge - 쑰건뢀 클래슀 병합
  • Pretendard Font - ν•œκ΅­μ–΄ μ΅œμ ν™” 폰트

개발 도ꡬ

ESLint Prettier

  • ESLint 9 - μ½”λ“œ ν’ˆμ§ˆ 관리
  • Prettier - μ½”λ“œ ν¬λ§·νŒ…
  • Husky - Git hooks μžλ™ν™”

배포 ν™˜κ²½

Vercel

  • Vercel - μžλ™ 배포 ν™˜κ²½
  • 배포 URL: https://global-nomad-alpha.vercel.app/
  • 프리뷰 배포 - PR 생성 μ‹œ 미리보기 ν™˜κ²½ μžλ™ 생성

πŸ‘₯ Team

이름 λ‹΄λ‹Ή 업무
κΆŒν˜„μ„± μ²΄ν—˜μƒμ„Έ, 계정섀정, λ²„νŠΌ, λ‚΄ 정보 νŽ˜μ΄μ§€ 전체 λ ˆμ΄μ•„μ›ƒ
μ‘°λ™ν˜„ 둜그인/νšŒμ›κ°€μž…, μ „μ—­μƒνƒœ, 헀더/ν‘Έν„°, λͺ¨λ‹¬, μ˜ˆμ•½ λ‚΄μ—­, μ˜ˆμ•½ ν˜„ν™©
κΉ€μ€€μ—΄ 인풋, μ‚¬μ΄λ“œλ©”λ‰΄, λ“œλ‘­λ‹€μš΄, μΊ˜λ¦°λ”μ…€, 뱃지
μ „μ„±ν˜„ μ²΄ν—˜ μΉ΄λ“œ, μ˜ˆμ•½ μΉ΄λ“œ, λ‚΄ μ²΄ν—˜ 관리 μΉ΄λ“œ, 검색 κΈ°λŠ₯, 메인 νŽ˜μ΄μ§€

πŸ“‚ 디렉토리 ꡬ쑰

GLOBALNOMAD/                
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/               
β”‚   β”‚   β”œβ”€β”€ (auth)/       
β”‚   β”‚   β”‚   β”œβ”€β”€ activities/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ [activityId]/
β”‚   β”‚   β”‚   β”‚   β”‚   └─ edit/
β”‚   β”‚   β”‚   β”‚   β”‚   
β”‚   β”‚   β”‚   β”‚   └─ create
β”‚   β”‚   β”‚   β”‚   
β”‚   β”‚   β”‚   β”œβ”€β”€ mypage/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ activities/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ my-profile/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ reservation-status/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ reservations/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ layout
β”‚   β”‚   β”‚   β”‚   └─  MypageLayout
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   └─ layout
β”‚   β”‚   β”œβ”€β”€ public/
β”‚   β”‚   β”‚   β”œβ”€β”€ login/    
β”‚   β”‚   β”‚   β”œβ”€β”€ oauth/
β”‚   β”‚   β”‚   β”‚   └── signup/
β”‚   β”‚   β”‚   β”‚   β”‚   └── kakao/   
β”‚   β”‚   β”‚   β”œβ”€β”€ signup/    
β”‚   β”‚   β”‚   └── layout 
β”‚   β”‚   β”œβ”€β”€ activities/           
β”‚   β”‚   β”‚   β”œβ”€β”€ [activityId]/     
β”‚   β”‚   β”‚   └── layout
β”‚   β”‚   β”œβ”€β”€ api/
β”‚   β”‚   β”‚   β”œβ”€β”€ activities/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ [activityId]/
β”‚   β”‚   β”‚   β”‚   β”‚   └── reservations/
β”‚   β”‚   β”‚   β”‚   └── image/  
β”‚   β”‚   β”‚   β”œβ”€β”€ login/   
β”‚   β”‚   β”‚   β”œβ”€β”€ logout/  
β”‚   β”‚   β”‚   β”œβ”€β”€ my-activities/
β”‚   β”‚   β”‚   β”‚   └──[activityId]/
β”‚   β”‚   β”‚   β”œβ”€β”€ my-notifications/
β”‚   β”‚   β”‚   β”‚   └──[notificationId]/
β”‚   β”‚   β”‚   β”œβ”€β”€ my-reservations/
β”‚   β”‚   β”‚   β”‚   └── [reservationId]/
β”‚   β”‚   β”‚   β”œβ”€β”€ refresh/
β”‚   β”‚   β”‚   β”œβ”€β”€ signup/ 
β”‚   β”‚   β”‚   β”œβ”€β”€ token/  
β”‚   β”‚   β”‚   └── users/
β”‚   β”‚   β”‚   β”‚   └── me/
β”‚   β”‚   β”‚   β”‚   β”‚   └── image/
β”‚   β”‚   β”œβ”€β”€ favicon.ico
β”‚   β”‚   β”œβ”€β”€ globals.css
β”‚   β”‚   β”œβ”€β”€ layout
β”‚   β”‚   β”œβ”€β”€ aseets/
β”‚   β”œβ”€β”€ components/  
β”‚   β”‚   β”œβ”€β”€ Button/  
β”‚   β”‚   β”œβ”€β”€ Calendar/
β”‚   β”‚   β”œβ”€β”€ Card/   
β”‚   β”‚   β”œβ”€β”€ Dropdown/
β”‚   β”‚   β”‚   └── base/
β”‚   β”‚   β”œβ”€β”€ Header/       
β”‚   β”‚   β”œβ”€β”€ Footer/       
β”‚   β”‚   β”œβ”€β”€ Modal/        
β”‚   β”‚   β”œβ”€β”€ Notification/  
β”‚   β”‚   β”œβ”€β”€ Pagination/   
β”‚   β”‚   β”œβ”€β”€ Input/       
β”‚   β”‚   β”œβ”€β”€ Popover/    
β”‚   β”‚   β”œβ”€β”€ Reservation/
β”‚   β”‚   β”œβ”€β”€ Search/
β”‚   β”‚   └── SideMenu/
β”‚   β”œβ”€β”€ features/    
β”‚   β”‚   β”œβ”€β”€ ActivityCreate     
β”‚   β”‚   β”‚   β”œβ”€β”€ api/
β”‚   β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”‚   β”œβ”€β”€ hooks/
β”‚   β”‚   β”‚   β”œβ”€β”€ types.ts
β”‚   β”‚   β”‚   └── utils/
β”‚   β”‚   β”œβ”€β”€ mainpage/
β”‚   β”‚   β”‚   β”œβ”€β”€ activities.ts
β”‚   β”‚   β”‚   └── components/
β”‚   β”‚   β”œβ”€β”€ myActivities/
β”‚   β”‚   β”‚   β”œβ”€β”€ api/
β”‚   β”‚   β”‚   β”œβ”€β”€ mock/
β”‚   β”‚   β”‚   └── type.ts
β”‚   β”‚   β”œβ”€β”€ mypage
β”‚   β”‚   β”‚   β”œβ”€β”€ reservation-status/
β”‚   β”‚   β”‚   β”‚   └── hooks/
β”‚   β”‚   β”‚   β”œβ”€β”€ reservations/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ hooks/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ mocks/
β”‚   β”‚   β”‚   β”‚   └── utils/
β”‚   β”‚   β”‚   └── services/
β”‚   β”‚   └── notification/
β”‚   β”‚   β”‚   └── hooks/
β”‚   β”œβ”€β”€ lib/             
β”‚   β”‚   β”œβ”€β”€ api/
β”‚   β”‚   β”œβ”€β”€ hooks/
β”‚   β”‚   └── server/
β”‚   β”œβ”€β”€ types/             
β”‚   └── styles/            
β”œβ”€β”€ eslint.config.mjs      
β”œβ”€β”€ .prettierrc            
└── package.json

🚩 Starting (ν”„λ‘œμ νŠΈ μ‹œμž‘ 방법)

ν•„μˆ˜ 쑰건

  • Node.js 18.0.0 이상
  • pnpm

μ„€μΉ˜ 및 μ‹€ν–‰

  1. μ €μž₯μ†Œ 클둠

    git clone
    cd GlobalNomad
  2. μ˜μ‘΄μ„± μ„€μΉ˜

    pnpm install
  3. ν™˜κ²½ λ³€μˆ˜ μ„€μ •

    ν”„λ‘œμ νŠΈ λ£¨νŠΈμ— .env νŒŒμΌμ„ μƒμ„±ν•˜κ³  λ‹€μŒ λ‚΄μš©μ„ μΆ”κ°€ν•˜μ„Έμš”:

NEXT_PUBLIC_API_URL=https://sp-globalnomad-api.vercel.app/19-7 NEXT_PUBLIC_BASE_URL=http://localhost:3000/

NEXT_PUBLIC_KAKAO_MAP_API_KEY=53bbfc0c7bdd02c4fee2f9d5ddfd301a


4. **개발 μ„œλ²„ μ‹€ν–‰**

```bash
pnpm run dev
  1. λΈŒλΌμš°μ €μ—μ„œ 확인
    http://localhost:3000
    

μ‚¬μš© κ°€λŠ₯ν•œ 슀크립트

pnpm run dev          # 개발 μ„œλ²„ μ‹€ν–‰
pnpm run build        # ν”„λ‘œλ•μ…˜ λΉŒλ“œ
pnpm run start        # ν”„λ‘œλ•μ…˜ μ„œλ²„ μ‹€ν–‰
pnpm run lint         # ESLint 검사
pnpm run lint:fix     # ESLint μžλ™ μˆ˜μ •
pnpm run format       # Prettier ν¬λ§·νŒ…
pnpm run format:check # Prettier κ²€μ‚¬λ§Œ μ‹€ν–‰
pnpm run type-check   # TypeScript νƒ€μž… 검사

πŸ”Œ API Routes

ν”„λ‘œμ νŠΈλŠ” Next.js App Router의 Route Handlersλ₯Ό μ‚¬μš©ν•˜μ—¬ λ°±μ—”λ“œ APIλ₯Ό κ΅¬ν˜„ν•©λ‹ˆλ‹€.

About

GlobalNomad

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages