Junhyuyk Seo

Merge branch 'master' of http://khuhub.khu.ac.kr/2018102190/TFT

# 2021 - 2학기 오픈소스SW개발 프로젝트
# **지자체별 행사 / 축제 정보 및 날씨 제공 서비스**
## 지자체별 행사 / 축제 정보 및 날씨 제공 서비스
이미지 통으로 올리고 링크걸어서 이미지 표시해주기
* 지자체에서 개최하는 행사 정보와 날씨 데이터를 조합하고, 사용자에게 친숙한 인터페이스를 활용하여 지역/행사별로 날씨 정보를 한눈에 볼 수 있는 서비스를 제공한다.
## 순서
* About the Project
* Getting Started
* Prerequisites
* Installation
* 프로젝트 구조 / 동작 방식
* Usage
* Roadmap
* Contribution
* License
* Contact
Built With
---
***
---
- Frontend
* [Svelte](https://svelte.dev/)
- Backend & DB
## **About the Project**
기존에 축제나 행사를 검색하기 위해서는 행사가 언제 어디서 열리는지 파악하고, 그 날짜에 맞춰서 날씨를 또 검색해 보아야 하는 번거로움이 있었다. 이러한 일련의 번거로운 과정들을 한 데 묶어 몇 번의 클릭으로 사용자가 원하는 행사 및 축제 정보를 디스플레이 함으로써 사용자의 편의 증대라는 효과를 가져올 수 있을 것으로 예상된다.
본 서비스는 지자체에서 개최하는 행사 정보와 날씨 데이터를 API를 통하여 받아온 후 그를 조합하여 사용자에게 친숙한 인터페이스(svelte 활용)를 통해 지역 / 행사별로 날씨 정보를 한눈에 볼 수 있는 서비스를 제공한다.
Built With
- WEB
* [Node.js](https://nodejs.org/ko/download/)
* [Svelte](https://svelte.dev/)
* [Express](https://expressjs.com/ko/)
- Database
* [MongoDB](https://www.mongodb.com/)
- API Handler
* [MongoDB](https://www.mongodb.com/)
* [Node.js](https://nodejs.org/ko/download/)
* [RequestJs](https://www.npmjs.com/package/request)
## Getting Started
## **Getting Started**
### Prerequisites 사전 설치 파일
### **Prerequisites**
1. Docker를 사용하는 경우 (**권장**)
* [도커 공식 홈페이지](https://www.docker.com/)에 접속하여 docker 및 docker-compose 설치
1. Docker를 사용하지 않는 경우
* [Node.js 공식 홈페이지](https://nodejs.org/ko/download/)에 접속하여 Node.js 설치
* [MongoDB 공식 홈페이지](https://www.mongodb.com/)에 접속하여 MongoDB 설치
* [Mongoexport 사용을 위한 tool](https://www.mongodb.com/try/download/database-tools?tck=docs_databasetools)에 접속하여 mongoexport 추가 능 설치
* [Mongoexport 사용을 위한 tool](https://www.mongodb.com/try/download/database-tools?tck=docs_databasetools)에 접속하여 mongoexport 추가 능 설치
* `Program files/mongodb/bin` 경로 안에 설치된 파일들 추가하여 확장 기능을 위한 설치 완료
### **Installation**
### Installation 설치
* 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/) 공식 사이트에서 받아온다
* Windows의 경우 설치하고자 하는 폴더에 들어가서 우클릭한 후 `git bash` 를 클릭하여 터미널 창을 연다.
* Windows의 경우 설치하고자 하는 폴더에 들어가서 우클릭한 후 `git bash` 를 클릭하여 터미널 창을 연다
* MacOs의 경우 터미널창을 연 후 Command Line Interface를 통하여 설치하고자 하는 폴더로 이동한다
......@@ -36,13 +63,14 @@ Built With
git clone http://khuhub.khu.ac.kr/2018102190/TFT.git
```
* `npm install` 명령으로 npm 패키지 설치
* 폴더를 연 후 `npm install` 명령으로 npm 패키지 설치
```
npm install
```
* apiHandler 부분의 server.js 파일에 발급받은 API를 입력해서 사용을 위한 준비를 완료한다
## 프로젝트 구조
## **프로젝트 구조 / 동작 방식**
1. Service 1 - Web
1. Frontend
......@@ -57,45 +85,68 @@ Built With
1. [관광공사 API](https://api.visitkorea.or.kr/main.do)를 호출하여 Database에 Write함
1. [기상청 API](https://data.kma.go.kr/api/selectApiList.do?pgmNo=42)를 호출하여 날씨 및 기상 관련 정보 가져옴
## Usage 사용법
## **Usage**
+ 사진, 실제 구동 예시, 구동 방법 등 설명 필요
빌드 설치 설정 예시 / 방법
1. Docker에서 사용하는 경우
1. Docker-compose를 이용하여
1. 직접 소스코드를 수정하는 경우
Linux Command Line Interface를 이용하여 설치 필요
docker 설치 필요하고, docker에서 mongodb를 띄워주야 하고,
## Roadmap
1. Docker에서 사용하지 않는 경우
1.
* 무슨 기능들 구현했는지 시간에 따라
## **Roadmap**
- [v] Express 활용 서버 기본 베이스 구축 및 Dockerfile, README first commit 진행
- [v] Frontend 개발을 위한 template와 ApiHandler 개발을 위한 template 추가
- [v] 관광공사 API를 활용하여 DB에 축제 정보 저장하는 기능 추가
- [v] ApiHandler에서 원하지 않는 정보 걸러내는 기능 추가
- [v] 서버 개설 시 DB와 server connect하는 기능 추가
- [v] 기상청 API를 활용하여 DB에 기상 정보 저장하는 기능 추가
- [v] 카카오 지도 API를 활용하여 svelte와 연동, 인터페이스 구축
- [v] MongoDB Atlas에서 JSON 형식으로 정보 받아오는 기능 추가
- [v] Express와 svelte 연동
- [v] Frontend에 도, 시, 군, 구 등 구획 설정 및 축제 선택 기능 추가
- [v] 로고 제작 및 이미지 추가
- [v] Frontend와 Backend Merge 실행
- [v] ApiHandler 간소화 (불필요한 파일 제거)
- [v] ApiHandler와 server.js merge 실행
- [v] 실행 예시 이미지 업로드
- [v] 처음 구현한 기능
- [v] 그다음 구현한 기능
- [v] 세번째 구현한 기능
- [ ] 네번째 구현한 기능
- [ ] 다섯번째 구현한 기능
- [ ] 세부기능1
- [ ] 세부기능2
## Contribution
## **Contribution**
프로젝트에 대한 어떠한 참여나 추가 개발도 **환영합니다**.
만약 프로젝트 발전을 위한 더 좋은 방법이 있으시다면 저희의 repo를 fork하신 후 pull request를 부탁드립니다.
만약 프로젝트 발전을 위한 더 좋은 방법이 있으시다면 저희의 프로젝트를 fork하신 후 pull request를 부탁드립니다.
1. 프로젝트 fork 해오기 (` 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**
* [Node.js License Page](https://raw.githubusercontent.com/nodejs/node/master/LICENSE)
* [svelte License Page](https://github.com/sveltejs/svelte/blob/master/LICENSE.md)
* [request js License Page](https://github.com/request/request/blob/master/LICENSE)
* [express js License Page](https://github.com/expressjs/express/blob/master/LICENSE)
* [MongoDB License Page](https://www.mongodb.com/community/licensing)
## Contact
## **Contact**
2018102198 서준혁 junhyuk0801@khu.ac.kr
......@@ -103,4 +154,4 @@ Built With
2018102190 박정민 jungmin59@khu.ac.kr
프로젝트 주소 : [http://khuhub.khu.ac.kr/2018102190/TFT.git](http://khuhub.khu.ac.kr/2018102190/TFT.git)
\ No newline at end of file
프로젝트 주소 : [http://khuhub.khu.ac.kr/2018102190/TFT.git](http://khuhub.khu.ac.kr/2018102190/TFT.git)
......