여행 스타일 설문을 기반으로 사용자에게 맞춤형 제주도 여행계획을 추천하고,
여행계획 관리 및 여행후기 공유까지 가능한 웹 서비스입니다.
- 여행 스타일에 따른 맞춤형 제주도 여행계획 추천
- Quick / Full 설문 모드를 제공하여 사용자 선택권 강화
- 추천된 여행계획 저장 및 수정·삭제 기능 제공
- 여행 후기 공유 및 여행 스타일 기반 탐색 기능 제공
- 본 프로젝트는 프레임워크 없이 순수 JavaScript와 jQuery를 기반으로 구현되었습니다.
- Figma: https://www.figma.com/design/ItGE3eBC6f0n1sWUBLneVi/PLAN-Jeju?node-id=0-1&p=f&t=bjSm6fVjgN8G1XoF-0
- Notion: https://www.notion.so/PLAN-Jeju-2ed0e26c31448057b95dd224cac91720?source=copy_link
- JavaScript (ES6+)
- jQuery
- HTML5
- CSS5
- Bootstrap
- Bootstrap
- CSS3
- npm
- ESLint
- Prettier
| 이름 | 역할 | 담당 기능 |
|---|---|---|
| 윤규식 | 팀장 | |
| 최준열 | 팀원 | |
| 김민호 | 팀원 | |
| 윤석규 | 팀원 | |
| 김민국 | 팀원 | |
| 김민채 | 팀원 | |
| 고완석 | 팀원 |
사용자는 여행 관련 설문조사를 통해 자신의 여행스타일을 분석받고,
분석된 결과를 바탕으로 개인 성향에 맞는 제주도 여행계획을 추천받을 수 있습니다.
- 여행에 관련된 설문조사를 통해 사용자의 여행스타일을 분석할 수 있다.
- 사용자는 설문 진행 방식으로 Quick 모드와 Full 모드 중 하나를 선택할 수 있다.
- Quick 모드: 필수 항목 위주의 간단한 설문 (빠른 추천)
- Full 모드: 상세한 설문을 통한 정밀한 여행스타일 분석 (정확도▲)
- 설문 모드에 따라 질문 수 및 흐름이 동적으로 변경된다.
- 설문 결과를 기반으로 사용자 여행스타일에 적합한 여행계획을 추천한다.
- AI 기반 분석을 통해 사용자의 성향에 맞는 여행 일정 및 테마를 제안한다.
- 추천된 여행계획은 미리보기 형태로 확인할 수 있다.
- 로그인한 사용자는 추천된 여행계획을 저장할 수 있다.
- 저장된 추천 여행계획은 여행 플랜 작성 기능과 연계하여 수정 및 확장이 가능하다.
제주도 여행 플랜 기능은 사용자가 여행 일정을 체계적으로 구성하고 관리할 수 있도록 돕는 핵심 기능입니다.
여행 기간, 인원, 테마 설정부터 일차별 일정·이동수단·비용 관리까지 하나의 계획 안에서 정리할 수 있습니다.
- 여행계획 표지에 제목, 여행 위치, 대표 이미지를 작성할 수 있다.
- 여행 시작일과 종료일을 설정할 수 있다.
- 여행 인원 수를 설정할 수 있다.
- ‘새 여행 만들기’ 버튼을 통해 새로운 여행 계획표를 작성할 수 있다.
- 여행의 테마(힐링, 맛집, 액티비티) 를 설정할 수 있다.
- 기존 여행계획을 수정 및 삭제할 수 있다.
- 여행계획을 저장하고 공유할 수 있다.
- 항목별 예상 비용을 입력할 수 있다.
- 항공권의 최저가 / 최고가 정보를 확인할 수 있다.
- 출발지와 도착지를 설정할 수 있다.
- 날짜별 이동수단(렌터카, 대중교통) 을 추가할 수 있다.
- 여행별 개인 메모를 추가할 수 있다.
- 여행 일차(Day 1, Day 2 …)가 자동으로 생성된다.
- 각 여행 일차마다 관광지 및 액티비티를 추가할 수 있다.
- 장소별 예상 소요 시간을 입력할 수 있다.
- 지도 기반 검색을 통해 장소를 검색하고 일정에 추가할 수 있다.
- 숙소의 주소를 입력할 수 있다.
- 숙소의 체크인 / 체크아웃 시간을 설정할 수 있다.
여행 후기를 기록하고 공유할 수 있는 커뮤니티 기능을 제공합니다.
본 커뮤니티는 댓글, 대댓글 등 일반적인 커뮤니티 기능보다는
여행 후기 게시 및 열람에 초점을 둔 게시형 커뮤니티입니다.
- 여행 후기 제목과 본문을 작성할 수 있다.
- 여행 중 촬영한 이미지(사진)를 첨부할 수 있다.
- 작성한 여행 리뷰 게시글을 커뮤니티에 게시할 수 있다.
- 여행 후기 게시글에 여행스타일 태그를 추가할 수 있다.
- 전체 여행 후기 게시글 목록을 확인할 수 있다.
- 특정 여행스타일 태그 기준으로 게시글을 필터링할 수 있다.
- 게시글 선택 시 여행 후기 상세 내용을 확인할 수 있다.
- 본인의 여행계획을 공개 / 비공개로 설정할 수 있다.
- 공개된 여행계획에 대해 접근 가능한 공유 URL이 생성된다.
- 다른 사용자의 여행계획을 읽기 전용(Read Only) 으로 확인할 수 있다.
- 여행 후기 게시글에 좋아요(Like) 를 누를 수 있다.
- 좋아요 수를 통해 게시글의 인기도를 확인할 수 있다.
본 프로젝트는 아래 절차를 통해 로컬 환경에서 실행할 수 있습니다.
1. 저장소 복사
git clone https://github.com/prgrms-aibe-devcourse/AIBE5_Project1_Team1.git
2. 디렉토리 이동
cd AIBE5_Project1_Team1
3. 패키지 설치
npm install
4. 프로젝트 실행
npm start
5. 브라우저에서 아래 주소로 접속
http://localhost:3000📦 project-root
┣ 📂 src
┃ ┣ 📂 components
┃ ┣ 📂 pages
┃ ┣ 📂 hooks
┃ ┣ 📂 services
┃ ┣ 📂 styles
┃ ┗ 📂 utils
┣ 📂 public
┣ 📂 docs
┣ 📜 package.json
┗ 📜 README.md본 프로젝트는 커밋 메시지를 통해 작업 내용과 변경 이력을 명확히 파악할 수 있도록 아래 규칙을 따릅니다.
[기능분류]: [작성내용] - [날짜]
- 기능분류: 작업의 성격
- 수정/작성내용: 추가·수정한 작업 내용을 간단히 요약
- 수정/작성일: 작업을 완료한 날짜 (YYYY-MM-DD)
| 타입 | 의미 |
|---|---|
| feat | 새로운 기능 추가 |
| docs | 문서 작성 / 수정 |
| fix | 버그 수정 |
| refact | 코드 리팩토링 |
[기능분류]: [파일명] - [작업내용] - [날짜]
- 작성내용 앞에 작업한 파일명 명시
- 작업내용을 중심으로 간단히 작성
예시
feat: Login.html - 로그인 UI 추가 - 26.01.22
feat: authController.html - 로그인 API 구현 - 26.01.22
feat: Login.html, authController.html - 로그인 기능 구현 - 26.01.22
본 프로젝트는 아래와 같은 브랜치 구조를 사용합니다.
main (배포 브랜치)
↑
feature (통합 브랜치)
↑
t1 ~ t7 (개인 작업 브랜치)
본 프로젝트는 안정적인 코드 통합과 배포를 위해
Pull Request 기반 협업 방식을 사용합니다.
-
main 브랜치
- 배포 전용 브랜치로 사용한다.
- 팀장만 push 및 merge 권한을 가진다.
- 개인 작업 및 직접적인 수정은 금지한다.
-
feature 브랜치
- 개인 브랜치에서 작업한 내용을 통합하는 브랜치이다.
- 개인 브랜치(t1 ~ t7)에서 직접 push는 불가하다.
- 반드시 Pull Request(PR) 를 통해서만 병합할 수 있다.
- PR은 팀장의 승인(Approve) 후에만 merge 가능하다.
-
개인 브랜치 (t1 ~ t7)
- 각 팀원은 본인에게 할당된 브랜치에서만 작업한다.
- 작업 완료 후 feature 브랜치를 대상으로 PR을 생성한다.
| 브랜치 | 팀장 | 부팀장 | 팀원 |
|---|---|---|---|
| main | ✅ push | ❌ | ❌ |
| feature | ❌ | ✅ push / PR | ✅ PR |
| t1~t7 | ❌ | ❌ | ✅ push |
- 개인 브랜치(t1 ~ t7)에서 기능 개발을 진행한다.
- 작업 완료 후 feature 브랜치를 대상으로 Pull Request를 생성한다.
- PR에는 작업 내용 및 변경 사항을 간단히 설명한다.
- 팀장이 PR을 리뷰하고 승인(Approve)한다.
- 승인 완료 후 feature 브랜치에 병합된다.
- main, feature 브랜치는 보호 브랜치로 설정한다.
- 보호 브랜치에는 다음 규칙을 적용한다.
- 직접 push 금지
- Pull Request 없이 merge 금지
- 팀장 승인 필수
... 추후 프로젝트 개발 중 발생한 문제 작성할 예정 ...