Hyungi Ahn fd5a68e44a 🎯 프로젝트 리브랜딩: Kumamoto → Travel Planner v2.0
 주요 변경사항:
- 프로젝트 이름: kumamoto-travel-planner → travel-planner
- 버전 업그레이드: v1.0.0 → v2.0.0
- 멀티유저 시스템 구현 (JWT 인증)
- PostgreSQL 마이그레이션 시스템 추가
- Docker 컨테이너 이름 변경
- UI 브랜딩 업데이트 (Travel Planner)
- API 서버 및 인증 시스템 추가
- 여행 공유 기능 구현
- 템플릿 시스템 추가

🔧 기술 스택:
- Frontend: React + TypeScript + Vite
- Backend: Node.js + Express + JWT
- Database: PostgreSQL + 마이그레이션
- Infrastructure: Docker + Docker Compose

🌟 새로운 기능:
- 사용자 인증 및 권한 관리
- 다중 여행 계획 관리
- 여행 템플릿 시스템
- 공유 링크 및 댓글 시스템
- 관리자 대시보드
2025-11-25 10:39:58 +09:00

✈️ Travel Planner

스마트한 여행 계획 관리 시스템

다중 사용자를 지원하는 현대적인 여행 계획 웹 애플리케이션입니다. 여행 일정 관리, 지도 통합, 공유 기능을 제공합니다.

🌟 주요 기능

👥 멀티 사용자 시스템

  • 사용자 인증: JWT 기반 로그인/회원가입
  • 관리자 시스템: 사용자 및 시스템 관리
  • 권한 관리: 개인/공개 여행 계획 설정

🗺️ 여행 계획 관리

  • 다중 여행 관리: 여러 여행 계획 동시 관리
  • 템플릿 시스템: 도시별 여행 템플릿 제공
  • 일정 관리: 날짜별 상세 일정 작성
  • 장소 검색: Google Places API 통합

🔗 공유 및 협업

  • 여행 공유: 링크를 통한 여행 계획 공유
  • 권한 설정: 보기/편집/댓글 권한 제어
  • 댓글 시스템: 공유된 여행에 댓글 작성

🗺️ 지도 통합

  • Google Maps: 장소 검색 및 경로 최적화
  • Leaflet: 오프라인 지도 지원
  • 경로 계획: 여행지 간 최적 경로 제안

🚀 빠른 시작

Docker로 실행 (권장)

# 저장소 클론
git clone <repository-url>
cd travel-planner

# Docker 환경 시작
./docker-start.sh

# 또는 수동 실행
docker-compose up -d

로컬 개발 환경

# 의존성 설치
npm install

# 개발 서버 시작
npm run dev

# API 서버 시작 (별도 터미널)
cd server
npm install
npm run dev

🔧 환경 설정

필수 환경 변수

# 프론트엔드 (.env)
VITE_API_URL=http://localhost:3001
VITE_GOOGLE_OAUTH_CLIENT_ID=your-google-oauth-client-id

# 백엔드 (server/.env)
DATABASE_URL=postgresql://user:password@localhost:5432/travel_planner
JWT_SECRET=your-jwt-secret-key
GOOGLE_MAPS_API_KEY=your-google-maps-api-key

데이터베이스 설정

# PostgreSQL 설치 및 시작
brew install postgresql
brew services start postgresql

# 데이터베이스 생성
createdb travel_planner

# 마이그레이션 실행 (자동)
npm start  # 서버 시작 시 자동 실행

📁 프로젝트 구조

travel-planner/
├── src/                    # 프론트엔드 소스
│   ├── components/         # React 컴포넌트
│   ├── services/          # API 서비스
│   ├── types/             # TypeScript 타입
│   └── utils/             # 유틸리티 함수
├── server/                # 백엔드 API
│   ├── routes/            # API 라우트
│   ├── migrations/        # DB 마이그레이션
│   └── uploads/           # 파일 업로드
├── docker/                # Docker 설정
└── docs/                  # 문서

🛠️ 기술 스택

프론트엔드

  • React 18 + TypeScript
  • Vite (빌드 도구)
  • Tailwind CSS (스타일링)
  • React Router (라우팅)
  • Leaflet + Google Maps (지도)

백엔드

  • Node.js + Express
  • PostgreSQL (데이터베이스)
  • JWT (인증)
  • Multer (파일 업로드)

인프라

  • Docker + Docker Compose
  • Nginx (프로덕션)

📊 API 문서

인증 API

POST /api/auth/register     # 회원가입
POST /api/auth/login        # 로그인  
GET  /api/auth/verify       # 토큰 검증

여행 계획 API

GET    /api/travel-plans           # 여행 목록
POST   /api/travel-plans           # 여행 생성
GET    /api/travel-plans/:id       # 여행 조회
PUT    /api/travel-plans/:id       # 여행 수정
DELETE /api/travel-plans/:id       # 여행 삭제

공유 API

POST /api/share/create      # 공유 링크 생성
GET  /api/share/:code       # 공유된 여행 조회

🔒 보안

  • JWT 토큰: 안전한 사용자 인증
  • 비밀번호 해시: bcrypt 암호화
  • SQL 인젝션 방지: 매개변수화된 쿼리
  • CORS 설정: 허용된 도메인만 접근

🌍 배포

Docker 배포

# 프로덕션 빌드
docker-compose -f docker-compose.prod.yml up -d

수동 배포

# 프론트엔드 빌드
npm run build

# 서버 시작
cd server
npm start

🤝 기여하기

  1. Fork the repository
  2. Create feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open Pull Request

📝 라이선스

MIT License - 자세한 내용은 LICENSE 파일을 참조하세요.

📞 지원


Travel Planner - 당신의 완벽한 여행을 계획하세요! ✈️🗺️

Description
여행전용 서버
Readme 434 KiB
Languages
TypeScript 90.8%
JavaScript 4.7%
PLpgSQL 2.5%
Shell 0.9%
Python 0.6%
Other 0.3%