wcamper

캠핑메이트 (Camping Mate)

AI 기반 캠핑장 추천 플랫폼입니다. 사용자의 취향과 요구사항을 분석하여 한국 내 최적의 캠핑장을 추천합니다.

주요 기능

기술 스택

분류 기술
프레임워크 Next.js 16, React 19, TypeScript 5
스타일링 Tailwind CSS 4, PostCSS
AI OpenAI API, Vercel AI SDK
데이터베이스 Vercel Postgres
데이터 수집 Cheerio (웹 스크래핑)
스키마 검증 Zod 4
패키지 매니저 pnpm

프로젝트 구조

├── app/                      # Next.js App Router
│   ├── page.tsx             # 홈페이지 (히어로 + 인기 캠핑장)
│   ├── chat/                # AI 채팅 인터페이스
│   ├── questions/           # 질문 플로우 위저드
│   ├── results/             # 추천 결과 페이지
│   └── api/                 # API 라우트
│       ├── chat/            # OpenAI 스트리밍 채팅
│       ├── db/              # 데이터베이스 설정
│       └── thankq/          # 땡큐캠핑 API 연동
├── components/              # 재사용 가능한 UI 컴포넌트
│   ├── home/                # 홈페이지 컴포넌트
│   ├── chat/                # 채팅 컴포넌트
│   ├── question-flow/       # 질문 위저드 컴포넌트
│   └── recommendation/      # 결과 표시 컴포넌트
├── lib/                     # 비즈니스 로직
│   ├── data/                # 정적/동적 데이터
│   ├── services/            # 핵심 서비스
│   │   ├── recommendation.ts  # 추천 점수 알고리즘
│   │   ├── thankq-api.ts      # 땡큐캠핑 API
│   │   └── thankq-cache.ts    # 캐시 관리
│   ├── db/                  # 데이터베이스 레이어
│   └── types/               # TypeScript 타입 정의
└── public/                  # 정적 파일

시작하기

필수 요구사항

설치

# 의존성 설치
pnpm install

환경 변수 설정

프로젝트 루트에 .env.local 파일을 생성하세요:

# OpenAI API (필수)
OPENAI_API_KEY=sk-...

# Vercel Postgres (선택)
POSTGRES_PRISMA_URL=postgresql://...
POSTGRES_URL_NON_POOLING=postgresql://...

실행

# 개발 서버 실행
pnpm dev

# 프로덕션 빌드
pnpm build

# 프로덕션 서버 시작
pnpm start

# 린트 검사
pnpm lint

개발 서버는 http://localhost:3000에서 실행됩니다.

추천 알고리즘

12가지 요소를 분석하여 캠핑장을 추천합니다:

질문 가중치 설명
출발 위치 9 수도권, 충청도, 강원도 등 6개 지역
캠핑 경험 7 초보부터 전문가까지 4단계
목적 8 힐링, 액티비티, 가족, 커플, 단체, 풍경
계절 6 봄, 여름, 가을, 겨울
환경 10 산, 계곡, 해변, 호수, 숲
캠핑 스타일 8 오토, 글램핑, 카라반, 펜션, 백패킹
동반자 8 솔로, 커플, 가족, 친구, 반려동물
우선순위 9 뷰, 조용함, 시설, 접근성, 액티비티, 가격
예산 5 4단계 가격대
사이트 특성 6 넓은 사이트, 그늘, 프라이빗, 평지, 수변
필수 시설 6 샤워장, 화장실, 전기, 수도, 매점, Wi-Fi
불호 요소 7 시끄러움, 혼잡함, 벌레, 화장실 거리, 비포장

API 엔드포인트

엔드포인트 메서드 설명
/api/chat POST AI 채팅 (스트리밍)
/api/thankq/search?keyword= GET 캠핑장 검색
/api/thankq/[campSeq] GET 캠핑장 상세 정보
/api/db/setup GET 데이터베이스 초기화
/api/db/migrate GET 스키마 마이그레이션

데이터 소스

배포

Vercel에서 쉽게 배포할 수 있습니다:

Deploy with Vercel

라이선스

이 프로젝트는 비공개 프로젝트입니다.