송민석

Modify README.md file / Organized and Insert logo image etc

No preview for this file type
1 +![logo](./img/logo.jpeg)
2 +
1 # About the project 3 # About the project
2 -* 사용자가 본인의 캠퍼스, 단과대학, 학과, 학년학기를 순서대로 입력하면 경희대학교 학과 홈페이지의 권장이수체계도에서 제공하는 과목들의 개설시간을 고려한 시간표를 제공 4 ++ 사용자가 본인의 캠퍼스, 단과대학, 학과, 학년학기를 순서대로 입력하면 경희대학교 학과 홈페이지의 권장이수체계도에서 제공하는 과목들의 개설시간을 고려한 시간표를 랜덤으로 제공함
5 +마음에 들지 않는다면 시간표 재생성 가능
6 +
3 7
4 ## 개발동기 8 ## 개발동기
5 -<<<<<<< HEAD
6 + 학기가 시작하기 전에, 많은 학생들이 경희대학교 학과 홈페이지에서 권장하는 이수체계도를 참고하지만 매번 확인이 번거롭고, 무엇보다 학기마다 전공 과목의 개설시간과 교수님 등의 정보가 바뀌어서 매 학기마다 희망과목을 담기 전에 미리 시간을 확인하고 직접 예정시간표에 추가해서 따져보아야 한다. 9 + 학기가 시작하기 전에, 많은 학생들이 경희대학교 학과 홈페이지에서 권장하는 이수체계도를 참고하지만 매번 확인이 번거롭고, 무엇보다 학기마다 전공 과목의 개설시간과 교수님 등의 정보가 바뀌어서 매 학기마다 희망과목을 담기 전에 미리 시간을 확인하고 직접 예정시간표에 추가해서 따져보아야 한다.
7 -이러한 문제점으로, 학과 홈페이지에서 제공하는 권장이수체계도에 따른 전공과목을 미리 넣어둔 시간표를 알 수 있다면 편리할 것 같아 이 프로젝트를 고안
8 -
9 -## 기대효과
10 -+ 챗봇이 시간표 케이스들을 제공해준다면, 사용자는 남은 시간 자리에 원하는 과목(전공선택, 교양, 배분이수 등)을 추가하여 수월하게 시간표 경우의 수를 계산할 수 있음
11 -=======
12 -학기가 시작하기 전에, 많은 학생들이 경희대학교 학과 홈페이지에서 권장하는 이수체계도를 참고하지만 매번 확인이 번거롭고, 무엇보다 학기마다 전공 과목의 개설시간과 교수님 등의 정보가 바뀌어서 매 학기마다 희망과목을 담기 전에 미리 시간을 확인하고 직접 예정시간표에 추가해서 따져보아야 한다.
13 이러한 문제점으로, 학과 홈페이지에서 제공하는 권장이수체계도에 따른 전공과목을 미리 넣어둔 시간표를 알 수 있다면 편리할 것 같아 이 프로젝트를 고안함 10 이러한 문제점으로, 학과 홈페이지에서 제공하는 권장이수체계도에 따른 전공과목을 미리 넣어둔 시간표를 알 수 있다면 편리할 것 같아 이 프로젝트를 고안함
14 11
12 +
15 ## 기대효과 13 ## 기대효과
16 -챗봇이 시간표 케이스들을 제공해준다면, 사용자는 남은 시간 자리에 원하는 과목(전공선택, 교양, 배분이수 등)을 추가하여 수월하게 시간표 경우의 수를 계산할 수 있음 14 ++ 챗봇이 시간표 케이스들을 제공해준다면, 사용자는 남은 시간 자리에 원하는 과목(교양, 배분이수 등)을 추가하여 수월하게 시간표 경우의 수를 계산할 수 있음
17 ->>>>>>> 3735c827bc42111514cee7214fd90eff8baa46a9 15 +
16 +
18 17
19 -# Built 18 +
20 -* Node.js 19 +# Built With
20 +* [Node.js](https://nodejs.org/)
21 +
22 +
23 +
24 +
25 +# Getting Started
26 ++ 1. Clone the Repository
27 + ```sh
28 + git clone http://khuhub.khu.ac.kr/2019102206/time_table.git
29 + ```
30 +
31 ++ 2 - npm install
32 + ```sh
33 + npm install
34 + ```
21 35
22 36
23 -# How to Install
24 -1 - Clone Repository
25 -<span class="evidence">git clone http://khuhub.khu.ac.kr/2019102206/time_table.git</span>
26 37
27 -2 - npm install
28 -<span class="evidence">npm install</span>
29 38
30 # Usage 39 # Usage
31 40
41 +
42 +
43 +
32 # Roadmap 44 # Roadmap
33 -* [x] 학과별 권장이수체계도 정보 담긴 파일 생성 45 +* [x] 학과별 권장이수체계도 정보 파일 생성
34 -* [x] info21 및 수강신청사이트에서 학과 과목 정보 등 데이터 크롤링 46 +* [x] Data crawling
35 -* [x] 크롤링한 정보 데이터화하기 (node.js) 47 +* [x] 크롤링 정보 데이터화(with node.js)
36 * [x] DB 작업 48 * [x] DB 작업
37 -* [ ] 권장이수체계에 맞는 시간표 랜덤 생성 49 +* [x] 권장이수체계에 맞는 시간표 랜덤 생성
38 -* [ ] 시간표 추천 챗봇 구현 50 +* [x] Chatbot 구현(Deme)
51 +* [ ] 확장
39 (Demo 현재 소프트웨어융합대학 소속 학과만 제공) 52 (Demo 현재 소프트웨어융합대학 소속 학과만 제공)
40 53
54 +
55 +
56 +
41 # Contributing 57 # Contributing
42 -<<<<<<< HEAD
43 -* 1 fork the project
44 -* 2 feature 브랜치 생성 및 변경 (git checkout feature/{function})
45 -* 3 변경사항 commit (git commit -m "")
46 -* 4 원격 브랜치로 push (git push origin feature/{function})
47 -* 5 pull request 요청
48 -=======
49 * Fork the project 58 * Fork the project
50 -* feature 브랜치 생성 (git checkout -b feature/{function}) 59 +* Create your Feature Branch(git checkout -b feature/{function})
51 -* 변경사항 commit (git commit -m 'Add some function) 60 +* Commit your Changes (git commit -m 'Add some function)
52 -* remote branch로 push (git push origin feature/{function}) 61 +* Push to the Branch (git push origin feature/{function})
53 -* pull request 요청 62 +* Open a Pull Request
54 ->>>>>>> 3735c827bc42111514cee7214fd90eff8baa46a9 63 +
64 +
65 +
55 66
56 # License 67 # License
57 [MIT LICENSE](LICENSE) 68 [MIT LICENSE](LICENSE)
58 69
70 +
71 +
72 +
59 # Contact 73 # Contact
60 * 곽병민 : bqudmals@khu.ac.kr 74 * 곽병민 : bqudmals@khu.ac.kr
61 * 송민석 : songms0909@khu.ac.kr 75 * 송민석 : songms0909@khu.ac.kr
62 * 이나경 : 2000skrud@khu.ac.kr 76 * 이나경 : 2000skrud@khu.ac.kr
63 -* Link : http://khuhub.khu.ac.kr/2019102206/time_table 77 +
78 +* Project Link
79 +
80 +[http://khuhub.khu.ac.kr/2019102206/time_table]
81 +(http://khuhub.khu.ac.kr/2019102206/time_table)
......
1 -<<<<<<< HEAD:index.js
2 -=======
3 -<<<<<<< HEAD:chatbot.js
4 -var express = require('express');
5 -const request = require('request');
6 -const TARGET_URL = 'https://api.line.me/v2/bot/message/reply'
7 -const TOKEN = ''
8 -const fs = require('fs');
9 -const path = require('path');
10 -const HTTPS = require('https');
11 -const domain = ""
12 -const sslport = 23023;
13 -
14 -const bodyParser = require('body-parser');
15 -var app = express();
16 -app.use(bodyParser.json());
17 -
18 -
19 -ID_data_array = []
20 -
21 -app.post('/hook', function (req, res) {
22 -
23 - var eventObj = req.body.events[0];
24 - var source = eventObj.source;
25 - var message = eventObj.message;
26 -
27 - var user_ID = eventObj.source['userId']
28 - var data = eventObj.message['text']
29 - if (ID_data_array.length == 0) {
30 - ID_data_array.push([user_ID])
31 - ID_data_array[0].push(data)
32 - }
33 - else {
34 - var find = 0
35 - for (var i in ID_data_array) {
36 - if (ID_data_array[i][0] == user_ID) {
37 - find = 1
38 - if (ID_data_array[i].length < 4) {
39 - ID_data_array[i].push(data)
40 - }
41 - else {
42 - ID_data_array[i] = [user_ID];
43 - ID_data_array[i].push(data);
44 - }
45 - }
46 - }
47 - if (find == 0) {
48 - ID_data_array.push([user_ID]);
49 - ID_data_array[ID_data_array.length-1].push(data);
50 - }
51 - }
52 -
53 - // request log
54 - console.log('======================', new Date() ,'======================');
55 - console.log('[request]', req.body);
56 - console.log('[request source] ', eventObj.source);
57 - console.log('[request message]', eventObj.message);
58 -
59 - console.log(ID_data_array)
60 - for (var i in ID_data_array) {
61 - console.log(ID_data_array[i])
62 - }
63 -
64 -
65 - request.post(
66 - {
67 - url: TARGET_URL,
68 - headers: {
69 - 'Authorization': `Bearer ${TOKEN}`
70 - },
71 - json: {
72 - "replyToken":eventObj.replyToken,
73 - "messages":[
74 - {
75 - "type":"text",
76 - "text":"Hello, user"
77 - },
78 - {
79 - "type":"text",
80 - "text":"May I help you?"
81 - }
82 - ]
83 - }
84 - },(error, response, body) => {
85 - console.log(body)
86 - });
87 -
88 -
89 - res.sendStatus(200);
90 -
91 - if (data.length >= 3) {
92 - data = []
93 - }
94 -});
95 -
96 -
97 -try {
98 - const option = {
99 - ca: fs.readFileSync('/etc/letsencrypt/live/' + domain +'/fullchain.pem'),
100 - key: fs.readFileSync(path.resolve(process.cwd(), '/etc/letsencrypt/live/' + domain +'/privkey.pem'), 'utf8').toString(),
101 - cert: fs.readFileSync(path.resolve(process.cwd(), '/etc/letsencrypt/live/' + domain +'/cert.pem'), 'utf8').toString(),
102 - };
103 -
104 - HTTPS.createServer(option, app).listen(sslport, () => {
105 - console.log(`[HTTPS] Server is started on port ${sslport}`);
106 - });
107 - } catch (error) {
108 - console.log('[HTTPS] HTTPS 오류가 발생하였습니다. HTTPS 서버는 실행되지 않습니다.');
109 - console.log(error);
110 - }
111 -=======
112 ->>>>>>> 3735c827bc42111514cee7214fd90eff8baa46a9:chatbot.js
113 -
114 -const config =require('./config')
115 -const mongoose = require("mongoose");
116 -const connect = mongoose.connect(config.url,
117 - {
118 - useNewUrlParser: true,
119 - useUnifiedTopology: true,
120 - })
121 - .then(() => console.log("DB : Succesfully Connected"))
122 - .catch((err) => console.log(err.message));
123 -
124 -
125 -/*
126 -const { MongoClient } = require("mongodb");
127 -const config =require('./config')
128 -const client = new MongoClient(config.url);
129 -async function run() {
130 - try {
131 - await client.connect();
132 - console.log("Connected correctly to server");
133 - } catch (err) {
134 - console.log(err.stack);
135 - }
136 - finally {
137 - await client.close();
138 - }
139 -}
140 -run().catch(console.dir);
141 -<<<<<<< HEAD:index.js
142 -*/
143 -=======
144 -*/
145 ->>>>>>> 86b0ca0 (Modify index.js file):index.js
146 ->>>>>>> 3735c827bc42111514cee7214fd90eff8baa46a9:chatbot.js

41.2 KB