Skip to content

Commit

Permalink
Release 1.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Leegeunhyeok committed May 21, 2018
1 parent 49cf83f commit 4a4ad18
Show file tree
Hide file tree
Showing 6 changed files with 905 additions and 3 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
node_modules/
172 changes: 169 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,170 @@
# node-school

> - Node.js 기반의 ꡐ윑청의 급식, 학사일정 νŒŒμ‹± λͺ¨λ“ˆμž…λ‹ˆλ‹€.
> - 개발자: 이근혁
> μ „κ΅­ 초, λ“±, 고등학ꡐ 및 λ³‘μ„€μœ μΉ˜μ› 정보 νŒŒμ‹± λͺ¨λ“ˆ
μ „κ΅­ ꡐ윑청 학생 μ„œλΉ„μŠ€ νŽ˜μ΄μ§€(stu.xxx.go.kr)λ₯Ό νŒŒμ‹±ν•˜μ—¬ 이번 달 **학사일정**κ³Ό **κΈ‰μ‹ν‘œ**λ₯Ό Json ν˜•νƒœμ˜ λ°μ΄ν„°λ‘œ μ œκ³΅ν•©λ‹ˆλ‹€.

## μ„€μΉ˜ν•˜κΈ°
- npm μ—…λ‘œλ“œ μ˜ˆμ •
- λ³Έ μ†ŒμŠ€μ½”λ“œμ˜ school.js, src/meal.js, src/notice.js, data/data.js νŒŒμΌμ„ μ‚¬μš©ν•  ν”„λ‘œκ·Έλž¨ 폴더에 μΆ”κ°€ν•©λ‹ˆλ‹€.

## μ‚¬μš© μ˜ˆμ‹œ

#### 비동기 ν•¨μˆ˜ 방식

```javascript
/* λͺ¨λ“ˆ 뢈러였기 */
const School = require('../school.js')

/* 객체 생성 */
const school = new School()

/* μ•„λž˜ μ˜ˆμ œλŠ” κ²½κΈ°λ„μ˜ κ΄‘λͺ…κ²½μ˜νšŒκ³„κ³ λ“±ν•™κ΅λ₯Ό κΈ°μ€€μœΌλ‘œ 함 */
school.init(school.eduType.high, school.region.gyeonggi, 'J100000488')

/* 비동기 ν•¨μˆ˜ 방식 예제 */
const sampleAsync = async function() {
console.log('[이번 달 급식 정보 - Async]\n')
console.log(await school.getMeal())

console.log('\n\n\n')

console.log('[이번 달 학사일정 - Async]\n')
console.log(await school.getNotice())
}

sampleAsync()

```

#### ν”„λΌλ―ΈμŠ€ 방식

```javascript
/* λͺ¨λ“ˆ 뢈러였기 */
const School = require('../school.js')

/* 객체 생성 */
const school = new School()

/* μ•„λž˜ μ˜ˆμ œλŠ” κ²½κΈ°λ„μ˜ κ΄‘λͺ…κ²½μ˜νšŒκ³„κ³ λ“±ν•™κ΅λ₯Ό κΈ°μ€€μœΌλ‘œ 함 */
school.init(school.eduType.high, school.region.gyeonggi, 'J100000488')

/* ν”„λΌλ―ΈμŠ€ 방식 예제 */
const samplePromise = function() {
school.getMeal().then(result => {
console.log('[이번 달 급식 정보 - Promise]\n')
console.log(result)
return school.getNotice()
}).then(result => {
console.log('\n\n\n')
console.log('[이번 달 학사일정 - Promise]\n')
console.log(result)
})
}

samplePromise()

```

#### λ°˜ν™˜λ˜λŠ” json 데이터 ν˜•μ‹
``` javascript
// 급식 데이터
{
'1': '[쀑식][쀑식]\nλ°œμ•„ν˜„λ―Έλ°₯\nλ―Έμ—­κ΅­5.6.9....',
'2': '[쀑식]\nμ–Όκ°ˆμ΄λœμž₯무침5.6.\nμΉΌμŠ˜μ°ΉμŒ€....',
'3': '[쀑식]\nνˆ¬μ›€λ°”νŒŒμŠ€νƒ€(주식)1.2.5.6.9.13.15.\n....',
'4': '',
'5': '',
...
'month': 5,
'day': 3,
'today': '[쀑식]\nνˆ¬μ›€λ°”νŒŒμŠ€νƒ€(주식)1.2.5.6.9.13.15.\n....'
}


// 학사일정
{
'1': '',
'2': '',
'3': '',
'4': 'κ°œκ΅κΈ°λ…μΌ',
'5': ''
'6': ''
'7': 'λŒ€μ²΄κ³΅νœ΄μΌ',
...
'month': 5
}
```
## μ‚¬μš© 방법

### School μΈμŠ€ν„΄μŠ€ 생성
`school.js` λͺ¨λ“ˆμ„ λΆˆλŸ¬μ™€μ„œ μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€. <br>
생성 ν›„ λ°˜λ“œμ‹œ init()λ₯Ό ν˜ΈμΆœν•˜μ—¬ μ›ν•˜λŠ” ν•™κ΅λ‘œ μ΄ˆκΈ°ν™”ν•©λ‹ˆλ‹€.
```javascript
const School = require('./school.js')
const school = new School()

/*
* @param type: 학ꡐ μœ ν˜•(초, 쀑, κ³ , λ³‘μ„€μœ μΉ˜μ›)
* @param region: ꡐ윑청 κ΄€ν•  지역
* @param schoolCode: 학ꡐ 고유 μ½”λ“œ
*/
school.init(type, region, schoolCode)
```

#### 학ꡐ μ’…λ₯˜

학ꡐ μ’…λ₯˜λŠ” μƒμ„±ν•œ μΈμŠ€ν„΄μŠ€μ˜ `eduType` μ—μ„œ 선택할 수 μžˆμŠ΅λ‹ˆλ‹€.
```javascript
const School = require('./school.js')
const school = new School()

/* 좜λ ₯: 4 */
console.log(school.eduType.high)
```
- λ³‘μ„€μœ μΉ˜μ›: `kindergarden` [1]
- μ΄ˆλ“±ν•™κ΅: `elementary` [2]
- 쀑학ꡐ: `middle` [3]
- 고등학ꡐ: `high` [4]

#### ꡐ윑청 지역

지역은 μƒμ„±ν•œ μΈμŠ€ν„΄μŠ€μ˜ `region` μ—μ„œ 선택할 수 μžˆμŠ΅λ‹ˆλ‹€.
```javascript
const School = require('./school.js')
const school = new School()

/* 좜λ ₯: stu.sen.go.kr */
console.log(school.region.seoul)
```
- μ„œμšΈ: `seoul` [stu.sen.go.kr]
- 인천: `incheon` [stu.ice.go.kr]
- λΆ€μ‚°: `busan` [stu.pen.go.kr]
- κ΄‘μ£Ό: `gwangju` [stu.gen.go.kr]
- λŒ€μ „: `daejeon` [stu.dge.go.kr]
- λŒ€κ΅¬: `deagu` [stu.dge.go.kr]
- μ„Έμ’…: `sejong` [stu.sje.go.kr]
- μšΈμ‚°: `ulsan` [stu.use.go.kr]
- κ²½κΈ°: `gyeonggi` [stu.goe.go.kr]
- 강원: `kangwon` [stu.kwe.go.kr]
- 좩뢁: `chungbuk` [stu.cbe.go.kr]
- 좩남: `chungnam` [stu.cne.go.kr]
- 경뢁: `gyeongbuk` [stu.gbe.go.kr]
- 경남: `gyeongnam` [stu.gne.go.kr]
- 전뢁: `jeonbuk` [stu.jbe.go.kr]
- 전남: `jeonnam` [stu.jne.go.kr]
- 제주: `jeju` [stu.jje.go.kr]

#### 학ꡐ μ½”λ“œ

학ꡐ 고유 μ½”λ“œλŠ” [μ—¬κΈ°](https://www.meatwatch.go.kr/biz/bm/sel/schoolListPopup.do)μ—μ„œ 학ꡐλͺ…μœΌλ‘œ 검색할 수 μžˆμŠ΅λ‹ˆλ‹€.
학ꡐ μ½”λ“œλŠ” `X000000000` ν˜•μ‹μ˜ 10자리 λ¬Έμžμ—΄μž…λ‹ˆλ‹€.

## 문제 μ‹ κ³ 
ꡐ윑청 ν™ˆνŽ˜μ΄μ§€μ˜ 리뉴얼 λ“±μ˜ 문제둜 νŒŒμ‹±μ΄ λΆˆκ°€λŠ₯ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. [이슈](https://github.com/leegeunhyeok/node-school/issues)λ₯Ό λ‚¨κ²¨μ£Όμ‹œλ©΄ μ΅œλŒ€ν•œ λΉ λ₯΄κ²Œ μˆ˜μ •ν•˜μ—¬ λ°˜μ˜ν•˜λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.

## λΌμ΄μ„ΌμŠ€
[MIT](https://github.com/agemor/school-api/blob/master/LICENSE)


## μ•Œλ¦Ό
λ³Έ ν”„λ‘œμ νŠΈλŠ” [School API](https://github.com/agemor/school-api)λ₯Ό μ°Έκ³ ν•˜μ—¬ Node.js μ „μš©μœΌλ‘œ μƒˆλ‘œ ν¬νŒ…ν•œ ν”„λ‘œμ νŠΈμž…λ‹ˆλ‹€.
Loading

0 comments on commit 4a4ad18

Please sign in to comment.