README.md 6.69 KB

지자체별 행사 / 축제 정보 및 날씨 제공 서비스

순서

  • About the Project
  • Getting Started
    • Prerequisites
    • Installation
  • 프로젝트 구조 / 동작 방식
  • Usage
  • Roadmap
  • Contribution
  • License
  • Contact



About the Project

기존에 축제나 행사를 검색하기 위해서는 행사가 언제 어디서 열리는지 파악하고, 그 날짜에 맞춰서 날씨를 또 검색해 보아야 하는 번거로움이 있었다. 이러한 일련의 번거로운 과정들을 한 데 묶어 몇 번의 클릭으로 사용자가 원하는 행사 및 축제 정보를 디스플레이 함으로써 사용자의 편의 증대라는 효과를 가져올 수 있을 것으로 예상된다. 또한 시민들의 활발한 행사 참여로 인해 지역 경제 활성화에 이바지할 수 있을 것으로 예상된다.

본 서비스는 지자체에서 개최하는 행사 정보와 날씨 데이터를 API를 통하여 받아온 후 그를 조합하여 사용자에게 친숙한 인터페이스(svelte 활용)를 통해 지역 / 행사별로 날씨 정보를 한눈에 볼 수 있는 서비스를 제공한다.

Built With

Getting Started

Prerequisites

Installation

  • Windows의 경우 설치하고자 하는 폴더에 들어가서 우클릭한 후 git bash 를 클릭하여 터미널 창을 연다

  • MacOs의 경우 터미널창을 연 후 Command Line Interface를 통하여 설치하고자 하는 폴더로 이동한다

  • git clone 명령으로 프로젝트 폴더 clone

    git clone http://khuhub.khu.ac.kr/2018102190/TFT.git
    
  • API 키 적용 방법 -> ServiceKey 폴더 안의 festival.txt, weather.txt 파일에 국문 관광정보 서비스 API키와 기상청 단기예보 서비스 API를 각각 입력하고, TFT/TFT_WEB/public/index.html 안의 dapi.kakao.com/v2/maps/sdk.js?appkey=########의 # 부분에 카카오 지도 API를 입력한다

프로젝트 구조 / 동작 방식

Architecture
  1. Service 1 - Web
    1. Frontend
      1. Svelte를 사용하여 관광지 정보 / 날씨 정보를 한눈에 볼 수 있게 알려주는 반응형 유저 인터페이스로 사용
      2. 카카오 지도 API를 호출하여 지도 위에 핀 및 마커 설정
    2. Backend Server
      1. MongoDB Database와 Node.js 연결
      2. DB에서 데이터를 불러 온 후 Frontend에서 유저에 의한 요청 발생 시 Frontend로 전송
  2. Service 2 - DB
    1. API로부터 받아온 정보를 관리하고 Server에 제공
  • DB 설정 방법 : docker-compose 실행에 따라서 자동으로 database가 설정된다.

  • DB Schema

    title : 축제명

    addr : 축제 개최주소

    tel : 축제 문의 전화번호

    mapx : 축제 지역 경도값

    mapy : 축제 지역 위도값

    overview : 축제에 관한 간략한 설명

    firstimage : 축제 관련 사진 정보

    homepage : 축제 홈페이지

    eventstartdate : 축제 시작일

    evemtenddate : 축제 종료일

    weather : 축제 시작일 기준 3일분의 온도와 날씨 정보를 json 형태로 저장

  1. Service 3 - API Handler
    1. 국문 관광정보 API를 호출하여 Database에 Write함
    2. 기상청 단기예보 API를 호출하여 날씨 및 기상 관련 정보 가져옴

Usage

  1. docker-compose.yml file이 있는 폴더에서 terminal을 연다
  2. docker-compose up -d 명령을 실행한다
  3. 서버를 종료할 때에는 docker-compose down 명령을 실행한다

Service Overview

serviceOverview

Select District

districtSelect

Show Festival List

festivalList

Show total example

showExample

Roadmap

Roadmap
  • [v] Express 활용 서버 웹 서버 템플릿 구축
  • [v] 관광공사 API를 활용, DB에 축제 정보 저장 기능 추가
  • [v] DB와 Backend 연동 및 데이터 Retrieve 구현
  • [v] 기상청 API 활용, DB에 기상 정보 저장하는 기능 추가
  • [v] 카카오 지도 API와 svelte 연동 및 인터페이스 구축
  • [v] Frontend 지역 및 축제 선택 기능, 축제 상세 정보 확인
  • [v] ApiHandler에서 유효하지 않은 축제 데이터 filtering
  • [v] Docker를 통해 containerize 및 docker-compose 통해 서비스 최적화
  • [v] MS Azure에 프로젝트 업로드 및 실행 예시 이미지 업로드

Contribution

프로젝트에 대한 어떠한 참여나 추가 개발도 환영합니다.

만약 프로젝트 발전을 위한 더 좋은 방법이 있으시다면 저희의 프로젝트를 fork하신 후 pull request를 부탁드립니다.

  1. 프로젝트 clone (git clone http://khuhub.khu.ac.kr/2018102190/TFT.git)

  2. 새로운 기능을 위한 branch 생성 (git checkout -b feature/newFeature)

  3. 바뀐 파일들 commit하기 (git commit -m 'Add some newFeature' )

  4. Fork된 Branch에 바뀐 파일들 push하기 (git push origin feature/newFeature)

  5. Pull Request 보내기

License

LICENSE.txt 파일에 명시되어 있습니다

Contact

2018102198 서준혁 junhyuk0801@khu.ac.kr

2018102194 배형석 qogudtjr7@khu.ac.kr

2018102190 박정민 jungmin59@khu.ac.kr

프로젝트 주소 : http://khuhub.khu.ac.kr/2018102190/TFT.git