지자체별 행사 / 축제 정보 및 날씨 제공 서비스
순서
- About the Project
- Getting Started
- Prerequisites
- Installation
- 프로젝트 구조 / 동작 방식
- Usage
- Roadmap
- Contribution
- License
- Contact
About the Project
기존에 축제나 행사를 검색하기 위해서는 행사가 언제 어디서 열리는지 파악하고, 그 날짜에 맞춰서 날씨를 또 검색해 보아야 하는 번거로움이 있었다. 이러한 일련의 번거로운 과정들을 한 데 묶어 몇 번의 클릭으로 사용자가 원하는 행사 및 축제 정보를 디스플레이 함으로써 사용자의 편의 증대라는 효과를 가져올 수 있을 것으로 예상된다. 또한 시민들의 활발한 행사 참여로 인해 지역 경제 활성화에 이바지할 수 있을 것으로 예상된다.
본 서비스는 지자체에서 개최하는 행사 정보와 날씨 데이터를 API를 통하여 받아온 후 그를 조합하여 사용자에게 친숙한 인터페이스(svelte 활용)를 통해 지역 / 행사별로 날씨 정보를 한눈에 볼 수 있는 서비스를 제공한다.
Built With
Getting Started
Prerequisites
Docker 다운로드 페이지에 접속하여 docker 및 docker-compose 설치
API 키를 획득하기 위해, Free API Key를 기상청 API에서 단기예보 서비스에 대한 API Key를, 관광공사 API에서 국문 관광정보 서비스에 대한 API Key를, 카카오 지도 API Key를 획득
Installation
Windows의 경우 설치하고자 하는 폴더에 들어가서 우클릭한 후
git bash
를 클릭하여 터미널 창을 연다MacOs의 경우 터미널창을 연 후 Command Line Interface를 통하여 설치하고자 하는 폴더로 이동한다
-
git clone
명령으로 프로젝트 폴더 clonegit 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를 입력한다
프로젝트 구조 / 동작 방식
- Service 1 - Web
- Frontend
- Svelte를 사용하여 관광지 정보 / 날씨 정보를 한눈에 볼 수 있게 알려주는 유저 인터페이스로 사용
- 카카오 지도 API를 호출하여 지도 위에 핀 및 마커 설정
- Backend Server
- MongoDB Atlas와 서버를 연동하여 Database와 Node.js 연결
- DB에서 json 형태의 데이터를 불러 온 후 Frontend에서 유저에 의한 요청 발생 시 Frontend로 전송
- Frontend
- Service 2 - DB
- API로부터 받아온 정보를 관리하고 MongoDB Atlas를 활용하여 Server에 제공
DB 설정 방법 : 한국관광공사 API와 날씨 API를 json 형태로 가져와서 스키마에 맞는 정보들을 선정해서 추출한 후 저장한다. docker-compose 실행에 따라서 자동으로 database가 설정된다.
-
DB Schema
title : 축제명
addr : 축제 개최주소
tel : 축제 문의 전화번호
mapx : 축제 지역 경도값
mapy : 축제 지역 위도값
overview : 축제에 관한 간략한 설명
firstimage : 축제 관련 사진 정보
homepage : 축제 홈페이지
eventstartdate : 축제 시작일
evemtenddate : 축제 종료일
weather : 축제 시작일 기준 3일분의 온도와 날씨 정보를 json 형태로 저장
- Service 3 - API Handler
- 국문 관광정보 API를 호출하여 Database에 Write함
- 기상청 단기예보 API를 호출하여 날씨 및 기상 관련 정보 가져옴
Usage
-
docker-compose.yml
file이 있는 폴더에서 terminal을 연다 -
docker-compose up -d
명령을 실행한다 - 서버를 종료할 때에는
docker-compose down
명령을 실행한다
Service Overview
Select District
Show Festival List
Show total example
Roadmap
- [v] Express 활용 서버 기본 베이스 구축
- [v] Frontend 개발을 위한 template과 ApiHandler 개발을 위한 template 추가
- [v] 관광공사 API를 활용, DB에 축제 정보 저장 기능 추가
- [v] ApiHandler에서 원하지 정보 filter 기능 추가
- [v] 서버 개설 시 DB와 server connect 기능 추가
- [v] 기상청 API 활용, DB에 기상 정보 저장하는 기능 추가
- [v] 카카오 지도 API와 svelte 연동 및 인터페이스 구축
- [v] MongoDB Atlas에서 JSON 형식의 정보 받아오는 기능 추가
- [v] Frontend에 도, 시, 군, 구 등 구획 설정 및 축제 선택 기능 추가
- [v] ApiHandler 간소화
- [v] Docker 활용, 서비스 실행 구축
- [v] Amazon AWS에 프로젝트 업로드 및 실행 예시 이미지 업로드
Contribution
프로젝트에 대한 어떠한 참여나 추가 개발도 환영합니다.
만약 프로젝트 발전을 위한 더 좋은 방법이 있으시다면 저희의 프로젝트를 fork하신 후 pull request를 부탁드립니다.
프로젝트 clone (
git clone http://khuhub.khu.ac.kr/2018102190/TFT.git
)새로운 기능을 위한 branch 생성 (
git checkout -b feature/newFeature
)바뀐 파일들 commit하기 (
git commit -m 'Add some newFeature'
)Fork된 Branch에 바뀐 파일들 push하기 (
git push origin feature/newFeature
)Pull Request 보내기
License
LICENSE.txt
파일에 명시되어 있습니다
Contact
2018102198 서준혁 junhyuk0801@khu.ac.kr
2018102194 배형석 qogudtjr7@khu.ac.kr
2018102190 박정민 jungmin59@khu.ac.kr