Jungmin Park

Add getting API detail

Showing 1 changed file with 51 additions and 49 deletions
...@@ -22,9 +22,9 @@ ...@@ -22,9 +22,9 @@
22 22
23 ## **About the Project** 23 ## **About the Project**
24 24
25 -기존에 축제나 행사를 검색하기 위해서는 행사가 언제 어디서 열리는지 파악하고, 그 날짜에 맞춰서 날씨를 또 검색해 보아야 하는 번거로움이 있었다. 이러한 일련의 번거로운 과정들을 한 데 묶어 몇 번의 클릭으로 사용자가 원하는 행사 및 축제 정보를 디스플레이 함으로써 사용자의 편의 증대라는 효과를 가져올 수 있을 것으로 예상된다. 25 +기존에 축제나 행사를 검색하기 위해서는 행사가 언제 어디서 열리는지 파악하고, 그 날짜에 맞춰서 날씨를 또 검색해 보아야 하는 번거로움이 있었다. 이러한 일련의 번거로운 과정들을 한 데 묶어 몇 번의 클릭으로 사용자가 원하는 행사 및 축제 정보를 디스플레이 함으로써 사용자의 편의 증대라는 효과를 가져올 수 있을 것으로 예상된다. 또한 시민들의 활발한 행사 참여로 인해 지역 경제 활성화에 이바지할 수 있을 것으로 예상된다.
26 26
27 -본 서비스는 지자체에서 개최하는 행사 정보와 날씨 데이터를 API를 통하여 받아온 후 그를 조합하여 사용자에게 친숙한 인터페이스(svelte 활용)를 통해 지역 / 행사별로 날씨 정보를 한눈에 볼 수 있는 서비스를 제공한다. 27 +본 서비스는 지자체에서 개최하는 행사 정보와 날씨 데이터를 API를 통하여 받아온 후 그를 조합하여 사용자에게 친숙한 인터페이스(svelte 활용)를 통해 지역 / 행사별로 날씨 정보를 한눈에 볼 수 있는 서비스를 제공한다.
28 28
29 Built With 29 Built With
30 - WEB 30 - WEB
...@@ -42,19 +42,12 @@ Built With ...@@ -42,19 +42,12 @@ Built With
42 42
43 ### **Prerequisites** 43 ### **Prerequisites**
44 44
45 -1. Docker를 사용하는 경우 (**권장**) 45 +* [Docker 다운로드 페이지](https://docs.docker.com/engine/install/)에 접속하여 docker 및 docker-compose 설치
46 - * [도커 공식 홈페이지](https://www.docker.com/)에 접속하여 docker 및 docker-compose 설치
47 46
48 -1. Docker를 사용하지 않는 경우 47 +* API 키를 획득하기 위해, Free API Key를 [기상청 API](https://data.kma.go.kr/api/selectApiList.do?pgmNo=42)에서 단기예보 서비스에 대한 API Key를, [관광공사 API](https://api.visitkorea.or.kr/main.do)에서 국문 관광정보 서비스에 대한 API Key를, [카카오 지도 API](https://apis.map.kakao.com/) Key를 획득
49 - * [Node.js 공식 홈페이지](https://nodejs.org/ko/download/)에 접속하여 Node.js 설치
50 - * [MongoDB 공식 홈페이지](https://www.mongodb.com/)에 접속하여 MongoDB 설치
51 - * [Mongoexport 사용을 위한 tool](https://www.mongodb.com/try/download/database-tools?tck=docs_databasetools)에 접속하여 mongoexport 추가 기능 설치
52 - * `Program files/mongodb/bin` 경로 안에 설치된 파일들 추가하여 확장 기능을 위한 설치 완료
53 48
54 ### **Installation** 49 ### **Installation**
55 50
56 -* Free API Key를 [기상청 API](https://data.kma.go.kr/api/selectApiList.do?pgmNo=42), [관광공사 API](https://api.visitkorea.or.kr/main.do), [카카오 지도 API](https://apis.map.kakao.com/) 공식 사이트에서 받아온다
57 -
58 * Windows의 경우 설치하고자 하는 폴더에 들어가서 우클릭한 후 `git bash` 를 클릭하여 터미널 창을 연다 51 * Windows의 경우 설치하고자 하는 폴더에 들어가서 우클릭한 후 `git bash` 를 클릭하여 터미널 창을 연다
59 52
60 * MacOs의 경우 터미널창을 연 후 Command Line Interface를 통하여 설치하고자 하는 폴더로 이동한다 53 * MacOs의 경우 터미널창을 연 후 Command Line Interface를 통하여 설치하고자 하는 폴더로 이동한다
...@@ -64,7 +57,7 @@ Built With ...@@ -64,7 +57,7 @@ Built With
64 git clone http://khuhub.khu.ac.kr/2018102190/TFT.git 57 git clone http://khuhub.khu.ac.kr/2018102190/TFT.git
65 ``` 58 ```
66 59
67 -* ServiceKey 폴더 안의 text 파일에 발급받은 API 키를 입력한다 60 +* API 키 적용 방법 -> ServiceKey 폴더 안의 `festival.txt`, `weather.txt` 파일에 국문 관광정보 서비스 API키와 기상청 단기예보 서비스 API를 각각 입력하고, `TFT/TFT_WEB/public/index.html` 안의 `dapi.kakao.com/v2/maps/sdk.js?appkey=########`의 # 부분에 카카오 지도 API를 입력한다
68 61
69 ## **프로젝트 구조 / 동작 방식** 62 ## **프로젝트 구조 / 동작 방식**
70 63
...@@ -75,27 +68,48 @@ Built With ...@@ -75,27 +68,48 @@ Built With
75 1. Backend Server 68 1. Backend Server
76 1. MongoDB Atlas와 서버를 연동하여 Database와 Node.js 연결 69 1. MongoDB Atlas와 서버를 연동하여 Database와 Node.js 연결
77 1. DB에서 json 형태의 데이터를 불러 온 후 Frontend에서 유저에 의한 요청 발생 시 Frontend로 전송 70 1. DB에서 json 형태의 데이터를 불러 온 후 Frontend에서 유저에 의한 요청 발생 시 Frontend로 전송
78 -1. Service 2 - DB 71 +2. Service 2 - DB
79 1. API로부터 받아온 정보를 관리하고 MongoDB Atlas를 활용하여 Server에 제공 72 1. API로부터 받아온 정보를 관리하고 MongoDB Atlas를 활용하여 Server에 제공
80 -1. Service 3 - API Handler 73 +
81 - 1. [관광공사 API](https://api.visitkorea.or.kr/main.do)를 호출하여 Database에 Write함 74 +* DB 설정 방법 : 한국관광공사 API와 날씨 API를 json 형태로 가져와서 스키마에 맞는 정보들을 선정해서 추출한 후 저장한다. docker-compose 실행에 따라서 자동으로 database가 설정된다.
82 - 1. [기상청 API](https://data.kma.go.kr/api/selectApiList.do?pgmNo=42)를 호출하여 날씨 및 기상 관련 정보 가져옴 75 +
76 +* DB Schema
77 +
78 + title : 축제명
79 +
80 + addr : 축제 개최주소
81 +
82 + tel : 축제 문의 전화번호
83 +
84 + mapx : 축제 지역 경도값
85 +
86 + mapy : 축제 지역 위도값
87 +
88 + overview : 축제에 관한 간략한 설명
89 +
90 + firstimage : 축제 관련 사진 정보
91 +
92 + homepage : 축제 홈페이지
93 +
94 + eventstartdate : 축제 시작일
95 +
96 + evemtenddate : 축제 종료일
97 +
98 + weather : 축제 시작일 기준 3일분의 온도와 날씨 정보를 json 형태로 저장
99 +
100 +3. Service 3 - API Handler
101 + 1. [국문 관광정보 API](https://api.visitkorea.or.kr/main.do)를 호출하여 Database에 Write함
102 + 1. [기상청 단기예보 API](https://data.kma.go.kr/api/selectApiList.do?pgmNo=42)를 호출하여 날씨 및 기상 관련 정보 가져옴
83 103
84 ## **Usage** 104 ## **Usage**
85 105
86 -1. Docker를 사용하는 경우 106 +1. `docker-compose.yml` file이 있는 폴더에서 terminal을 연다
87 - 1. `docker-compose.yml` file이 있는 폴더에서 terminal을 연다 107 +1. `docker-compose up -d` 명령을 실행한다
88 - 1. `docker-compose up -d` 명령을 실행한다 108 +1. 서버를 종료할 때에는 `docker-compose down` 명령을 실행한다
89 - 1. 서버를 종료할 때에는 `docker-compose down` 명령을 실행한다
90 109
91 -1. Docker를 사용하지 않는 경우
92 - 1. MongoDB가 정상적으로 작동되는지 확인한다
93 - 1. TFT_API, TFT_WEB 각 폴더에서 `npm install` 명령을 실행한다
94 - 1. 각 폴더에서 `npm start` 명령을 실행한다
95 110
96 Service Overview 111 Service Overview
97 112
98 -
99 ![serviceOverview](/uploads/06baa0ebea9fd11478b3c6c9595dc2ad/serviceOverview.PNG) 113 ![serviceOverview](/uploads/06baa0ebea9fd11478b3c6c9595dc2ad/serviceOverview.PNG)
100 114
101 Select District 115 Select District
...@@ -115,21 +129,17 @@ Show total example ...@@ -115,21 +129,17 @@ Show total example
115 129
116 ## **Roadmap** 130 ## **Roadmap**
117 131
118 -- [v] Express 활용 서버 기본 베이스 구축 및 Dockerfile, README first commit 진행 132 +- [v] Express 활용 서버 기본 베이스 구축
119 -- [v] Frontend 개발을 위한 template와 ApiHandler 개발을 위한 template 추가 133 +- [v] Frontend 개발을 위한 template과 ApiHandler 개발을 위한 template 추가
120 -- [v] 관광공사 API를 활용하여 DB에 축제 정보 저장하는 기능 추가 134 +- [v] 관광공사 API를 활용, DB에 축제 정보 저장 기능 추가
121 -- [v] ApiHandler에서 원하지 않는 정보 걸러내는 기능 추가 135 +- [v] ApiHandler에서 원하지 정보 filter 기능 추가
122 -- [v] 서버 개설 시 DB와 server connect하는 기능 추가 136 +- [v] 서버 개설 시 DB와 server connect 기능 추가
123 -- [v] 기상청 API를 활용하여 DB에 기상 정보 저장하는 기능 추가 137 +- [v] 기상청 API 활용, DB에 기상 정보 저장하는 기능 추가
124 -- [v] 카카오 지도 API를 활용하여 svelte와 연동, 인터페이스 구축 138 +- [v] 카카오 지도 API와 svelte 연동 및 인터페이스 구축
125 -- [v] MongoDB Atlas에서 JSON 형식으로 정보 받아오는 기능 추가 139 +- [v] MongoDB Atlas에서 JSON 형식의 정보 받아오는 기능 추가
126 -- [v] Express와 svelte 연동
127 - [v] Frontend에 도, 시, 군, 구 등 구획 설정 및 축제 선택 기능 추가 140 - [v] Frontend에 도, 시, 군, 구 등 구획 설정 및 축제 선택 기능 추가
128 -- [v] 로고 제작 및 이미지 추가 141 +- [v] ApiHandler 간소화
129 -- [v] Frontend와 Backend Merge 실행 142 +- [v] Docker 활용, 서비스 실행 구축
130 -- [v] ApiHandler 간소화 (불필요한 파일 제거)
131 -- [v] ApiHandler와 server.js merge 실행
132 -- [v] Docker 활용하여 서비스 실행 구축
133 - [v] Amazon AWS에 프로젝트 업로드 및 실행 예시 이미지 업로드 143 - [v] Amazon AWS에 프로젝트 업로드 및 실행 예시 이미지 업로드
134 144
135 145
...@@ -139,7 +149,7 @@ Show total example ...@@ -139,7 +149,7 @@ Show total example
139 149
140 만약 프로젝트 발전을 위한 더 좋은 방법이 있으시다면 저희의 프로젝트를 fork하신 후 pull request를 부탁드립니다. 150 만약 프로젝트 발전을 위한 더 좋은 방법이 있으시다면 저희의 프로젝트를 fork하신 후 pull request를 부탁드립니다.
141 151
142 -1. 프로젝트 fork 해오기 (` git clone http://khuhub.khu.ac.kr/2018102190/TFT.git `) 152 +1. 프로젝트 clone (` git clone http://khuhub.khu.ac.kr/2018102190/TFT.git `)
143 153
144 2. 새로운 기능을 위한 branch 생성 (` git checkout -b feature/newFeature `) 154 2. 새로운 기능을 위한 branch 생성 (` git checkout -b feature/newFeature `)
145 155
...@@ -151,15 +161,7 @@ Show total example ...@@ -151,15 +161,7 @@ Show total example
151 161
152 ## **License** 162 ## **License**
153 163
154 -* [Node.js License Page](https://raw.githubusercontent.com/nodejs/node/master/LICENSE) 164 +`LICENSE.txt` 파일에 명시되어 있습니다
155 -
156 -* [svelte License Page](https://github.com/sveltejs/svelte/blob/master/LICENSE.md)
157 -
158 -* [request js License Page](https://github.com/request/request/blob/master/LICENSE)
159 -
160 -* [express js License Page](https://github.com/expressjs/express/blob/master/LICENSE)
161 -
162 -* [MongoDB License Page](https://www.mongodb.com/community/licensing)
163 165
164 ## **Contact** 166 ## **Contact**
165 167
......