본문 바로가기
웹 개발

[공모전] README.md

by doraemin_dev 2025. 1. 24.

Image

서비스 링크(잠정 중단)


Git Hub 링크

0. Getting Started (시작하기)

# << Back-End >>

# +) application.properties에 key 값들 넣어주기
# 0. gradle 설치 확인 
$ gradle -v
# 1. 프로젝트 빌드 및 실행 
$ ./gradlew build
$ ./gradlew bootRun


# << Front-End >>

# +) .env 파일 만들고 key 값들 넣어주기
# 1. 프로젝트 실행
$ npm run dev


1. Project Overview (프로젝트 개요)

  • 프로젝트 이름: 중국어로 된 제주 여행 소개 플랫폼 '济州旅游(제주 여행)'
  • 프로젝트 설명: ‘2024 관광데이터 활용 공모전’ 참가 (https://www.2024tourapi.com/)
  • 프로젝트 수상 결과 : 한국관광공사 장려상, 제주관광공사 특별상
  • 프로젝트 소개 : 저희 济州旅游(제주 여행) 관광 웹사이트는 제주도를 방문하는 중국인 관광객들이 필요한 정보를 중국어로 쉽게 얻을 수 있도록 다양한 기능을 제공합니다. ‘관광 페이지’를 통해 각종 행사나 관광 명소에 대한 정보를, ‘쇼핑 페이지’를 통해 기념품 및 특산품을 살 공간들을, ‘음식점 페이지’를 통해 제주도 토속 음식들을 맛볼 식당을, ‘숙소 페이지’를 통해 적절한 쉴 곳을 찾을 수 있습니다. 또한, ‘버스 정류소’, ‘공중화장실’과 ‘공공 와이파이’ 위치 검색 기능을 제공하여 여행 시 편리함을 제공합니다. ‘캘린더 페이지’를 통해, 일정을 효율적으로 관리할 수 있으며 여행 계획을 체계적으로 세울 수 있습니다. 다양한 장소에 대해 ‘리뷰’를 남기고 타 사용자의 리뷰를 확인할 수 있습니다. 더하여, AI 기반으로, 사용자 여행 취향에 맞춘 여행지를 추천해 줍니다.


2. Team Members (팀원 및 팀 소개)

김민 김현지 김혜연 방재경 방채원
김민 김현지 김혜연 방재경 방채원
PL, BE FE BE FE BE
GitHub GitHub GitHub GitHub GitHub


3. Key Features (주요 기능)

  • 로그인 및 회원가입
  • 홈 화면 이용
  • 관광 정보 검색, 조회 및 리뷰 기능
  • 쇼핑 정보 검색, 조회 및 리뷰 기능
  • 음식점 정보 검색, 조회 및 리뷰 기능
  • 숙소 정보 검색, 조회 및 리뷰 기능
  • 버스 정류소 위치 검색 기능
  • 공중화장실 위치 검색 기능
  • 공공 와이파이 위치 검색 기능
  • 일정 관리 기능
  • AI 기반 사용자 여행 취향에 맞춘 여행지 추천 기능


4. Tasks & Responsibilities (작업 및 역할 분담)

김민 김민
  • 프로젝트 계획 및 관리
  • 백엔드 개발
  • 공공 API
  • 카카오 톡캘린더 API
김현지 김민
  • 프론트앤드 개발
  • 디자인
  • API 연결
김혜연 김혜연
  • 백엔드 개발
  • 로컬 로그인
  • 카카오 로그인
방재경 방재경
  • 프론트앤드 개발
  • 디자인
방채원 방채원
  • 백엔드 개발
  • 공공 API
  • 리뷰 DB
  • 배포 (AWS)


5. Technology Stack (기술 스택)


5.1 Frotend

My Skills


5.2 Backend

My Skills


5.3 Cooperation

My Skills


6. Project Structure (프로젝트 구조)

<< Back-End >>
📦 
├─ .DS_Store
├─ .gitignore
├─ README.md
├─ build.gradle
├─ gradle
│  └─ wrapper
│     ├─ gradle-wrapper.jar
│     └─ gradle-wrapper.properties
├─ gradlew
├─ gradlew.bat
├─ settings.gradle
└─ src
   ├─ .DS_Store
   ├─ main
   │  ├─ .DS_Store
   │  ├─ java
   │  │  ├─ .DS_Store
   │  │  └─ com
   │  │     ├─ .DS_Store
   │  │     └─ example
   │  │        ├─ .DS_Store
   │  │        └─ jejutravel
   │  │           ├─ .DS_Store
   │  │           ├─ JejuTravelBeApplication.java
   │  │           ├─ config
   │  │           │  ├─ JwtAuthenticationEntryPoint.java
   │  │           │  ├─ JwtAuthenticationFilter.java
   │  │           │  ├─ SecurityConfig.java
   │  │           │  ├─ SwaggerConfig.java
   │  │           │  └─ TokenProvider.java
   │  │           ├─ controller
   │  │           │  ├─ BusStopController.java
   │  │           │  ├─ CalenderController.java
   │  │           │  ├─ MyPageController.java
   │  │           │  ├─ PublicToiletController.java
   │  │           │  ├─ PublicWifiController.java
   │  │           │  ├─ RestaurantController.java
   │  │           │  ├─ ReviewController.java
   │  │           │  ├─ ShoppingController.java
   │  │           │  ├─ StayController.java
   │  │           │  ├─ TourismController.java
   │  │           │  ├─ UserController.java
   │  │           │  └─ kakaoController.java
   │  │           ├─ domain
   │  │           │  ├─ Dto
   │  │           │  │  ├─ AreaResponse.java
   │  │           │  │  ├─ MyPageResponse.java
   │  │           │  │  ├─ MyPageUpdateRequest.java
   │  │           │  │  ├─ SignInRequest.java
   │  │           │  │  ├─ SignInResponse.java
   │  │           │  │  ├─ SignOutRequest.java
   │  │           │  │  ├─ SignUpRequest.java
   │  │           │  │  ├─ SignUpResponse.java
   │  │           │  │  ├─ UserDto.java
   │  │           │  │  ├─ content
   │  │           │  │  │  ├─ BusStopResponse.java
   │  │           │  │  │  ├─ ContentListResponse.java
   │  │           │  │  │  ├─ PublicToiletResponse.java
   │  │           │  │  │  ├─ PublicWifiResponse.java
   │  │           │  │  │  ├─ RestaurantInfoResponse.java
   │  │           │  │  │  ├─ ShoppingInfoResponse.java
   │  │           │  │  │  ├─ StayInfoResponse.java
   │  │           │  │  │  ├─ StayListResponse.java
   │  │           │  │  │  └─ TourismInfoResponse.java
   │  │           │  │  └─ review
   │  │           │  │     ├─ ReviewListResponse.java
   │  │           │  │     ├─ ReviewResponse.java
   │  │           │  │     ├─ ReviewSaveRequset.java
   │  │           │  │     └─ ReviewUpdateRequest.java
   │  │           │  └─ Entity
   │  │           │     ├─ KakaoUser.java
   │  │           │     ├─ RefreshToken.java
   │  │           │     ├─ Review.java
   │  │           │     └─ User.java
   │  │           ├─ global
   │  │           │  ├─ PythonTranslator.java
   │  │           │  ├─ api
   │  │           │  │  ├─ ApiResponse.java
   │  │           │  │  ├─ PageResponse.java
   │  │           │  │  └─ Status.java
   │  │           │  └─ exception
   │  │           │     └─ ResponseExceptionHandler.java
   │  │           ├─ repository
   │  │           │  ├─ KakaoUserRepository.java
   │  │           │  ├─ RefreshTokenRepository.java
   │  │           │  ├─ ReviewRepository.java
   │  │           │  └─ UserRepository.java
   │  │           └─ service
   │  │              ├─ JejuApiManager.java
   │  │              ├─ MyPageService.java
   │  │              ├─ OpenApiManager.java
   │  │              ├─ ReviewService.java
   │  │              ├─ TourismService.java
   │  │              ├─ UserService.java
   │  │              └─ kakaoService.java
   │  └─ resources
   │     ├─ application.properties
   │     └─ translator.py
   └─ test
      └─ java
         └─ com
            └─ example
               └─ jejutravel
                  └─ JejuTravelBeApplicationTests.java

<< Front-End >>
📦 
.gitignore
README.md
index.html
package-lock.json
package.json
├─ postcss.config.js
├─ public
│  └─ index.html
src
│  ├─ App.jsx
│  ├─ apis
│  │  └─ index.js
│  ├─ assets
│  │  ├─ jeju.jpg
│  │  └─ land.jpg
│  ├─ components
│  │  ├─ Header.jsx
│  │  ├─ List.jsx
│  │  ├─ Map.jsx
│  │  ├─ Search.jsx
│  │  └─ TouristInfoSearch.jsx
│  ├─ hooks
│  │  └─ useInfiniteScroll.jsx
│  ├─ index.css
│  ├─ main.jsx
│  └─ pages
│     ├─ accommodation
│     │  ├─ components
│     │  │  ├─ accommodetail.jsx
│     │  │  ├─ accommolist.jsx
│     │  │  ├─ accommorecommend.jsx
│     │  │  └─ accommoreview.jsx
│     │  └─ index.jsx
│     ├─ bus
│     │  └─ index.jsx
│     ├─ home
│     │  ├─ components
│     │  │  ├─ HomeAccommodation.jsx
│     │  │  ├─ HomeShoppingRestaurant.jsx
│     │  │  ├─ HomeTourism.jsx
│     │  │  └─ MainBanner.jsx
│     │  └─ index.jsx
│     ├─ restaurant
│     │  ├─ components
│     │  │  ├─ RestaurantDetail.jsx
│     │  │  └─ RestaurantSection.jsx
│     │  └─ index.jsx
│     ├─ restroom
│     │  └─ index.jsx
│     ├─ shopping
│     │  ├─ components
│     │  │  ├─ ShoppingDetail.jsx
│     │  │  └─ ShoppingSection.jsx
│     │  └─ index.jsx
│     ├─ tourism
│     │  ├─ components
│     │  │  ├─ TourismDetail.jsx
│     │  │  └─ TourismSection.jsx
│     │  └─ index.jsx
│     └─ wifi
│        └─ index.jsx
├─ tailwind.config.js
└─ vite.config.js


7. Development Workflow (개발 워크플로우)

브랜치 전략 (Branch Strategy)

우리의 브랜치 전략은 Git Flow를 기반으로 하며, 다음과 같은 브랜치를 사용합니다.

<< Back-End >>

  • Main Branch

    • 배포 가능한 상태의 코드를 유지합니다.
    • 모든 배포는 이 브랜치에서 이루어집니다.
  • dev Branch

    • Main Branch에 업로드되기 전, 개발 단계에서 모든 브랜치의 코드를 통합하는 브랜치입니다.
  • min / hy / cw-api Branch

    • 팀원 개별 개발 브랜치입니다.
    • 모든 기능 개발은 각자의 브랜치에서 진행됩니다.

<< Front-End >>

  • Main Branch

    • 배포 가능한 상태의 코드를 유지합니다.
    • 모든 배포는 이 브랜치에서 이루어집니다.
  • dev Branch

    • Main Branch에 업로드되기 전, 개발 단계에서 모든 브랜치의 코드를 통합하는 브랜치입니다.