Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[1단계 - 행운의 로또 미션] 호프(김문희) 미션 제출합니다 #89

Merged
merged 29 commits into from
Feb 27, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
fd736d0
docs: TODO.md 작성
euijinkk Feb 22, 2022
ebe5495
docs: README.md 기능 목록 작성
euijinkk Feb 22, 2022
33ed15b
chore: 초기 환경 세팅
euijinkk Feb 22, 2022
730a2dc
feat: HTML 마크업
euijinkk Feb 22, 2022
277e881
feat: 마크업 CSS 스타일링
euijinkk Feb 22, 2022
9d38759
chore: 이미지 로드를 위한 웹팩 설정
euijinkk Feb 22, 2022
5308e8c
chore: MVC 패턴 세팅
euijinkk Feb 22, 2022
428deba
feat: 로또 구입 금액 입력 시, 로또 발급
euijinkk Feb 22, 2022
4519e56
feat: 금액 입력 시, 총 로또 개수 보여주기
euijinkk Feb 22, 2022
98445e9
feat: 금액 입력 시, 로또 리스트 보여주기
euijinkk Feb 22, 2022
aea694e
feat: 토글 버튼 구현
euijinkk Feb 22, 2022
d549f26
chore: 티켓 이미지를 이모지로 대체
euijinkk Feb 23, 2022
ea70e0e
feat: 금액 입력 전, lotto-list-section 숨기기
euijinkk Feb 23, 2022
0af2f16
fix: 로또 리스트가 쌓이는 문제 해결
euijinkk Feb 23, 2022
6338ccd
feat: 금액이 1000원으로 나누어떨어지지 않으면 에러 생성
euijinkk Feb 23, 2022
d73a064
refactor: 웹 접근성 향상
euijinkk Feb 23, 2022
f7e69dd
refactor: showLottoListSection 추상화
euijinkk Feb 23, 2022
db08655
refactor: 접근자 변경
euijinkk Feb 23, 2022
0380381
test: beforeEach 삭제
euijinkk Feb 23, 2022
5c416fa
feat: 버튼에 포인터 추가
euijinkk Feb 23, 2022
478cd75
docs: 기능 구현 완료 체크
euijinkk Feb 23, 2022
4334860
docs: 기능목록 수정
moonheekim0118 Feb 23, 2022
2a36fcf
docs: 코드 구조도 추가
moonheekim0118 Feb 23, 2022
343facd
refactor: 상수 및 선택자 함수 변경
moonheekim0118 Feb 26, 2022
48b01ea
refactor: 메서드 이름 수정
moonheekim0118 Feb 26, 2022
717b0a9
refactor: Model에서 불필요한 메서드 유틸로 이동
moonheekim0118 Feb 26, 2022
318d7ca
refactor: View 컴포넌트 추상화
moonheekim0118 Feb 27, 2022
5dc8c6e
test: 로또 번호 테스트 코드 추가
moonheekim0118 Feb 27, 2022
8734269
refactor: Model 네이밍 수정
moonheekim0118 Feb 27, 2022
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
46 changes: 46 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
{
"env": {
"browser": true
},
"parser": "@babel/eslint-parser",
"extends": [
"airbnb-base",
"plugin:import/errors",
"plugin:import/warnings",
"plugin:prettier/recommended"
],
"parserOptions": {
"requireConfigFile": false
},
"rules": {
"allowTemplateLiterals": true,
"no-param-reassign": "off",
"no-return-assign": "off",
"no-unused-expressions": "off",
"consistent-return": "off",
"no-useless-return": "off",
"no-undef": "off",
"no-new": "off",
"no-unused-vars": "warn",
"class-methods-use-this": "off",
"no-alert": "off",
"no-plusplus": "off",
"import/extensions": "off",
"import/prefer-default-export": "off",
"comma-dangle": ["error", "always-multiline"],
"max-depth": ["error", 2],
// "max-lines-per-function": ["error", 15],
"prettier/prettier": "error",
"import/no-anonymous-default-export": 0,
"no-multiple-empty-lines": ["error", { "max": 1 }],
"eol-last": ["error", "always"],
"object-curly-spacing": ["error", "always"],
"space-in-parens": ["error", "never"],
"computed-property-spacing": ["error", "never"],
"comma-spacing": ["error", { "before": false, "after": true }],
"quotes": ["error", "single"],
"no-tabs": ["error", { "allowIndentationTabs": true }],
"semi": ["error", "always"],
"object-shorthand": "error"
}
}
11 changes: 11 additions & 0 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"printWidth": 100,
"semi": true,
"singleQuote": true,
"trailingComma": "all",
"tabWidth": 2,
"bracketSpacing": true,
"arrowParens": "avoid",
"endOfLine": "auto",
"useTabs": false
}
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@
<img src="https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square"/>
</p>

## 코드 구조
![](https://i.ibb.co/CmhQFkb/IMG-1580.jpg)

## ⚙️ Before Started

#### 개발 환경 가이드
Expand Down
18 changes: 18 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# 기능 목록
- [X] 로또 구입 금액을 입력하면, 금액에 해당하는 로또를 발급해야 한다.

- 금액이 1000원으로 나눠떨어지지 않으면, 사용자에게 알려준다.
- 금액이 음수가 아니어야 한다.
- 최대 구입 가능한 금액은 100,000원이다.

- [X] 로또 1장의 가격은 1,000원이다.

- [X] 소비자는 자동 구매를 할 수 있어야 한다.

- [X] 번호 보기 토글 버튼을 클릭해 로또 번호를 볼 수 있어야 한다.

- [X] 로또 번호는 1~45번으로 할당된다.

- [X] 로또 1개당 6개의 번호가 할당된다.

- 중복되면 안 된다.
4 changes: 4 additions & 0 deletions docs/TODO.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
1. 기능 목록 작성
2. 라이브러리 설치, gitignore 추가, lint, prettier 셋팅
3. 퍼블리싱(HTML/CSS)
4. 테스트코드 작성 및 기능 구현
55 changes: 41 additions & 14 deletions index.html
Original file line number Diff line number Diff line change
@@ -1,17 +1,44 @@
<!DOCTYPE html>
<html lang="ko">

<head>
<meta charset="UTF-8" />
<title>🎱 행운의 로또</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>

<body>
<div id="app">
<h1>🎱 행운의 로또</h1>
</div>
<script type="module" src="./src/js/index.js"></script>
</body>

<head>
<meta charset="UTF-8" />
<title>🎱 행운의 로또</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body>
<main id="app">
<h1>🎱 행운의 로또</h1>
<form id="purchase-form" class="purchase__form">
<label for="purchase-input" class="purchase__description">
구입할 금액을 입력해주세요.
</label>
<div class="purchase__input-container">
<input
id="purchase-input"
class="purchase__input"
placeholder="금액"
name="cash"
type="number"
min="1000"
max="100000"
required
/>
<button class="purchase__submit">구입</button>
</div>
</form>
<section id="lotto-list-section" class="lotto-list__section lotto-list__section-display-none">
<header class="lotto-list__header">
<h4 id="lotto-list-description" class="lotto-list__description"></h4>
<div class="lotto-list__toggle-container">
<span class="lotto-list__toggle-description">번호 보기</span>
<span id="toggle" class="toggle">
<input type="checkbox" id="toggle-input" class="lotto-list__toggle-input" />
<label id="slider" class="slider round"></label>
</span>
</div>
</header>
<ul id="lotto-lists" class="lotto-lists"></ul>
</section>
</main>
</body>
</html>
Loading