Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
6afed40
docs: ./docs/README.md 파일 업로드
0307kwon Dec 9, 2020
cfb9c8a
docs: ./docs/README.md로 이동하는 링크 추가
0307kwon Dec 9, 2020
cfa2949
chore: eslint 및 prettier 설정 완료
0307kwon Dec 9, 2020
53ac858
Merge branch 'sejin' of https://github.com/0307kwon/javascript-subway…
0307kwon Dec 9, 2020
0a8641d
docs: 구현할 기능 목록과 고민해야할 사항들 업데이트
0307kwon Dec 10, 2020
ede1eae
docs: 문서의 잘못된 표기사항 수정
0307kwon Dec 10, 2020
60862c2
docs: 클래스 이름 등 가변적인 요소를 빼고 구현해야할 기능에 집중 서술
0307kwon Dec 10, 2020
4b670bf
feat: 4가지 페이지를 전환하는 메뉴 버튼 구현
0307kwon Dec 11, 2020
e9dae10
docs: 가독성 좋게 업데이트
0307kwon Dec 11, 2020
acf43b8
docs: 구현할 기능 목록 구체화
0307kwon Dec 11, 2020
359c817
feat: 역 관리 html string 작성
0307kwon Dec 11, 2020
bf4a662
feat: –역의 정보를 저장하는 클래스 생성
0307kwon Dec 11, 2020
7a41410
docs: 구현 완료된 기능들 상태 갱신
0307kwon Dec 11, 2020
578739c
feat: 역 이름 입력이 2글자 미만이면 에러메세지 출력
0307kwon Dec 11, 2020
7f913f7
feat: 역 추가 버튼을 누르면 역 목록에 역 추가
0307kwon Dec 11, 2020
dcd7d08
docs: 구현 완료된 기능 상태 갱신
0307kwon Dec 11, 2020
b4fbe70
feat: 역 목록을 표로 출력하도록 구현
0307kwon Dec 11, 2020
f6d8d29
fix: 잘못된 역 이름 입력 시에도 역 목록에 추가되는 현상 수정
0307kwon Dec 11, 2020
ff741c0
feat: 중복된 역 이름 등록 제한, 에러 메세지 띄움
0307kwon Dec 11, 2020
98c6a57
docs: 구현 완료된 기능 상태 갱신
0307kwon Dec 11, 2020
d2ebd88
style: private 메소드 네임을 코드 컨벤션에 따라 수정
0307kwon Dec 11, 2020
49c2e74
Merge branch 'sejin' of https://github.com/0307kwon/javascript-subway…
0307kwon Dec 11, 2020
4612f33
feat: 역 삭제 버튼 클릭 시 해당 역 제거(data 속성 활용)
0307kwon Dec 11, 2020
745f0da
feat: 역 삭제 버튼 클릭 시 confirm 창 띄우기
0307kwon Dec 11, 2020
c19fcc8
docs: 구현 완료된 기능 상태 갱신
0307kwon Dec 11, 2020
e5c2df1
feat: 노선 관리 html string 작성
0307kwon Dec 11, 2020
1f01772
docs: 노선 관리 페이지의 구현할 기능 목록 구체화
0307kwon Dec 11, 2020
40467fa
feat: 노선의 정보를 저장할 수 있는 자료구조를 구현
0307kwon Dec 11, 2020
6023216
feat: 노선 이름과 종점 정보들을 받아 노선 추가하는 기능 구현
0307kwon Dec 12, 2020
c9ecb4c
feat: 노선 목록을 표로 화면에 출력
0307kwon Dec 12, 2020
aa76196
feat: 노선 이름이 한 글자 미만이면 에러 메세지 출력
0307kwon Dec 12, 2020
a3af932
docs: 구현 완료된 기능 상태 갱신, 새롭게 필요한 기능을 목록에 추가
0307kwon Dec 12, 2020
db7a7f4
refactor: 가독성을 높이고 코드 반복을 줄이기 위한 리팩토링
0307kwon Dec 12, 2020
fcb160a
feat: 역, 노선 입력값을 목록에 담기 전에 입력값의 앞뒤 공백을 제거
0307kwon Dec 12, 2020
7aa9cbe
feat: 노선 이름이 중복이면, 상행 종점과 하행 종점이 같은 역이면 에러
0307kwon Dec 12, 2020
50533f4
docs: 구현 완료된 기능 상태 갱신, 구현할 기능 목록 내용 수정
0307kwon Dec 12, 2020
10b5bdc
feat: 삭제 버튼을 누르면 노선이 삭제되도록 구현
0307kwon Dec 12, 2020
b1317cf
feat: 노선이 삭제되기 이전에 comfirm 창을 띄우기
0307kwon Dec 12, 2020
074b99d
refactor: 입력값 유효성 검사를 ui에서 한번에 처리하도록 수정
0307kwon Dec 12, 2020
9b2b535
feat: 구간 관리 html string 작성
0307kwon Dec 12, 2020
72d4e3b
docs: 구간 관리의 구현할 기능 목록 구체화
0307kwon Dec 12, 2020
22344f7
docs: 필요한 예외 조건 추가
0307kwon Dec 12, 2020
712db97
fix: 뒤바뀌어 있던 ui 파일 이름 올바르게 수정
0307kwon Dec 12, 2020
def1230
feat: 구간 수정할 노선을 선택하는 버튼 생성
0307kwon Dec 12, 2020
8a02904
feat: 노선 선택 버튼을 누르면 노선 관리 UI가 생성됨
0307kwon Dec 12, 2020
1f8038c
feat: 선택된 노선에 포함되어 있지 않은 역들만 콤보 박스의 옵션으로 설정
0307kwon Dec 12, 2020
219843b
docs: 필요한 예외상황 추가
0307kwon Dec 12, 2020
028bc31
feat: 노선에 등록된 역들을 표로 출력
0307kwon Dec 12, 2020
e2a40cb
feat: 등록 버튼을 누르면 입력받은 노선의 순서에 역이 추가됨
0307kwon Dec 12, 2020
5818d15
docs: 구현 완료된 기능의 진행 상태 갱신
0307kwon Dec 12, 2020
48e65cd
feat: 순서 input text가 0 이상의 숫자가 아니면 에러메세지 생성
0307kwon Dec 12, 2020
60fbb35
feat: 노선에 추가할 역이 선택되지 않았다면 에러 메세지 출력
0307kwon Dec 12, 2020
57a7d14
feat: 종점 정보가 선택되지 않았다면 에러 메세지 출력
0307kwon Dec 12, 2020
a1856fc
docs: 구현된 기능을 완료 상태로 갱신
0307kwon Dec 12, 2020
f820d51
refactor: 코드 재활용성을 높이기 위해 클래스 상속 기능을 사용
0307kwon Dec 13, 2020
1dfc4f8
refactor: 클릭 이벤트 추가함수의 재활용성을 높임
0307kwon Dec 13, 2020
ccf61eb
feat: 노선에서 제거 버튼을 누르면 노선에서 역이 제거됨
0307kwon Dec 13, 2020
18f14cb
feat: 노선에서 제거 동작을 수행하기 전에 confirm 창을 띄우기
0307kwon Dec 13, 2020
4e4b3f2
docs: 필요한 예외상황 추가, 구현된 기능을 완료 상태로 갱신
0307kwon Dec 13, 2020
c60093f
feat: 노선에 포함된 역이 2개 이하일 때는 제거할 수 없도록 구현
0307kwon Dec 13, 2020
84070ce
feat: 노선에 등록된 역은 삭제 불가하도록 구현
0307kwon Dec 13, 2020
2e7dc93
feat: 노선도 출력 html string 작성
0307kwon Dec 13, 2020
a3b11e2
feat: 노선도 정보를 받아와 출력함
0307kwon Dec 13, 2020
9cd0e77
docs: 구현한 기능을 완료 상태로 갱신
0307kwon Dec 13, 2020
f9c16a2
fix: html <tr> 태그 실수 수정
0307kwon Dec 13, 2020
e9e8c2c
refactor: 효율성과 저장기능을 위해 역과 노선 정보의 자료구조를 변경
0307kwon Dec 13, 2020
d5c86b5
style: private 메소드와 변수 네이밍 방식을 통일
0307kwon Dec 13, 2020
214296f
style: 가독성을 위해 메소드 이름 수정, 사용되지 않는 메소드 제거
0307kwon Dec 13, 2020
321cfaf
style: condition1,condition2로 명명된 조건변수를 가독성좋게 수정
0307kwon Dec 13, 2020
30206ab
feat: 역과 노선 정보를 localStorage를 이용하여 저장
0307kwon Dec 13, 2020
221f151
docs: 구현해야할 새로운 기능 추가 및 완료
0307kwon Dec 13, 2020
7c4c729
refactor: 입력값 유효성 검사 메소드 리턴방식 단순화
0307kwon Dec 14, 2020
fb63695
fix: 구간 등록에서 입력된 숫자의 유효성을 검사하지 않는 버그 수정
0307kwon Dec 14, 2020
ed2c39e
style: boolean 관련 메소드는 접두사 has, 관련 변수는 접두사 is로 통일
0307kwon Dec 14, 2020
830ad1e
refactor: 가독성을 위해 새로운 메소드 생성, 활용도를 위해 메소드를일반화
0307kwon Dec 14, 2020
31bff59
style: 가독성을 위한 작업 수행
0307kwon Dec 14, 2020
93978de
docs: 미션 목표 설명을 위한 이미지 파일 업로드
0307kwon Dec 14, 2020
22628bd
docs: 미션 목표 작성, 고민해야할 사항들 추가
0307kwon Dec 14, 2020
0b507fe
docs: 문서 가독성을 위한 수정
0307kwon Dec 14, 2020
6f2063b
docs: 서술 주제에 따라 탭 나누기
0307kwon Dec 14, 2020
0911a44
fix: localstorage에 데이터가 없으면 오작동하는 현상 수정
0307kwon Dec 14, 2020
0882aa8
style: 가독성을 위해 파일, 클래스 네임 변경
0307kwon Dec 15, 2020
2ab1e11
docs: 애매한 용어를 구체화
0307kwon Dec 15, 2020
0c475f5
refactor: 지하철 데이터 저장 방식 변경, 데이터 관리 모듈 세분화
0307kwon Dec 15, 2020
52927ce
Merge branch 'sejin' of https://github.com/0307kwon/javascript-subway…
0307kwon Dec 15, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# 🚇 지하철 노선도 미션

[/docs/README.md로 이동하기](./docs/README.md)

## 🚀 기능 요구사항

### 지하철 역 관련 기능
Expand Down
95 changes: 95 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
# 🚇 지하철 노선도 미션

## 🎯 미션 목표

지하철 노선도 미션은 지하철의 역과 노선을 추가, 삭제하는 등 지하철의 구조를 관리할 수 있는 웹을 제작하는 미션입니다.

웹은 '역 관리', '노선 관리', '구간 관리', '지하철 노선도 출력'의 4가지 컨텐츠를 가지고 있고 웹 상단의 메뉴 바로 컨텐츠 간의 이동이 가능합니다.

지하철 노선도 웹에 의해 관리되는 정보는 컴퓨터에 저장되어 웹을 끄고 켜더라도 마지막으로 작업한 정보를 불러옵니다.

## 💻 프로그램 기능

### 1. 역 관리

<image src="./images/stations-manager.png" width="250" />

현재 지하철이 가지고 있는 역 정보들을 목록으로 표시합니다.

새로운 역을 추가하고, 기존의 역을 삭제할 수 있습니다.

### 2. 노선 관리

<image src="./images/line-manager.png" width="250" />

지하철이 가지고 있는 노선 정보들을 목록으로 표시합니다.

표시되는 노선 정보는 노선 이름, 상행 종점, 하행 종점입니다.

새로운 노선을 입력받아 추가할 수 있고 기존의 노선을 삭제도 가능합니다.

### 3. 구간 관리

<image src="./images/section-manager.png" width="250" />

구간 관리는 노선에 등록된 역을 관리하는 기능입니다.

각 노선에 대해 새로운 역을 등록시킬 수도 있고 노선에 포함되어있던 기존 역을 제거할 수도 있습니다.

### 4. 노선도 출력

<image src="./images/map-print-manager.png" width="250" />

노선도 출력은 저장된 노선에 대한 정보를 바탕으로 각 노선의 이름과 노선에 등록된 역 이름을 나열하여 간단하게 보여줍니다.

## 📝 구현할 기능 목록

- (완료)4가지 페이지를 전환하는 메뉴 버튼 구현
- 역 관리
- (완료)html string 작성
- (완료)역의 정보를 저장하는 클래스 생성
- (완료)역 추가 버튼을 누르면 역 목록에 역 추가
- (완료)역 이름 입력이 2글자 미만이면 에러메세지 출력
- (완료)중복된 역 이름 등록 제한, 에러 메세지 띄움
- (완료)역 목록을 표로 출력하도록 구현
- (완료)역 삭제 버튼 클릭 시 해당 역 제거(data 속성 활용)
- (완료)역 삭제 버튼 클릭 시 confirm 창 띄우기
- (완료)입력값을 목록에 담기 전에 입력값의 앞뒤 공백을 제거
- (완료)노선에 등록된 역은 삭제 불가하도록 구현
- 노선 관리
- (완료)html string 작성
- (완료)노선의 정보를 저장할 수 있는 자료구조를 구현
- (완료)노선 이름과 종점 정보들을 받아 노선 추가하는 기능 구현
- (완료)노선 목록을 표로 화면에 출력
- (완료)노선 이름이 한 글자 미만이면 에러 메세지 출력
- (완료)노선 이름이 중복이면, 상행 종점과 하행 종점이 같은 역이면 에러
- (완료)종점 정보가 선택되지 않았다면 에러 메세지 출력
- (완료)입력값을 목록에 담기 전에 입력값의 앞뒤 공백을 제거
- (완료)삭제 버튼을 누르면 노선이 삭제되도록 구현
- (완료)노선이 삭제되기 이전에 comfirm 창을 띄우기
- 구간 관리
- (완료)html string 작성
- (완료)구간 수정할 노선을 선택하는 버튼 생성
- (완료)노선 선택 버튼을 누르면 노선 관리 UI가 생성됨
- (완료)선택된 노선에 포함되어 있지 않은 역들만 콤보 박스의 옵션으로 설정
- (완료)노선에 등록된 역들을 표로 출력
- (완료)등록 버튼을 누르면 입력받은 노선의 순서에 역이 추가됨
- (완료)순서 input text가 0 이상의 숫자가 아니면 에러메세지 생성
- (완료)노선에 추가할 역이 선택되지 않았다면 에러 메세지 출력
- (완료)노선에서 제거 버튼을 누르면 노선에서 해당 역이 제외됨
- (완료)노선에서 제거 동작을 수행하기 전에 confirm 창을 띄우기
- (완료)노선에 포함된 역이 2개 이하일 때는 제거할 수 없도록 구현
- 노선도 출력
- (완료)html string 작성
- (완료)노선도 정보를 받아와 출력함
- 그 외의 추가해야할 기능들
- (완료)역과 노선 정보를 localStorage를 이용하여 저장

## 😵 고민해야할 사항들

- 화면 전환은 어떻게 할 것인가
- 클래스는 어떻게 나누어야 할까
- IO를 하나의 클래스가 총괄하도록 할 것인가 나눌 것인가
- 지하철 역과 노선을 저장하기 위해 어떤 자료구조를 사용할 것인가
- 수행하는 기능이 비슷한 메소드들을 어떻게 컴포넌트화하여 활용할 것인가
- 메소드와 변수 이름을 어떻게 해야 가독성 좋게 정할수 있을까
Binary file added docs/images/line-manager.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/map-print-manager.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/section-manager.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/stations-manager.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@
<body>
<div id="app">
<h1>🚇 지하철 노선도 관리 </h1>
<nav id="menubar">
</nav>
<p></p>
<div id="contents">
</div>
</div>
<script type="module" src="src/index.js"></script>
</body>
Expand Down
Loading