Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
24 changes: 24 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
7 changes: 7 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"printWidth": 120,
"tabWidth": 4,
"singleQuote": true,
"trailingComma": "all",
"semi": false
}
19 changes: 18 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,18 @@
# 리액트 투두 앱 만들기 미션 레포
# React 기반의 TodoApp 만들기
이번 주 팀 활동 목표는 React 기반의 TodoApp 만들기이다. 각자가 기능을 구현한 후, GitHub에 PR(Pull Request)을 생성하고 팀원들과 코드리뷰를 통해 서로의 코드를 검토하고 피드백하는 경험을 쌓는 것이 핵심이다.
협업 도구(GitHub, 노션, 슬랙)를 적극적으로 활용해 개발 → 리뷰 → 피드백 전 과정을 실습해보는것이 목표다.


## 시작화면
![image](https://github.com/user-attachments/assets/27b7ef3d-07d3-485d-8ed7-6abaaff6c70f)



## 전체 기능 요약
| 기능 |설명 |
|----------------|-------------------------------|
|할 일 추가 |텍스트 입력 후 버튼 클릭 시 리스트에 항목 추가 |
|할 일 삭제 |항목의 삭제 버튼 클릭 시 해당 항목 제거 |
|완료 체크 |체크박스를 클릭하면 완료 여부 표시 (스타일 변화 포함)|
|localStorage 저장|추가/삭제/체크 시 변경된 todo 상태를 localStorage에 저장|
|초기 로드 |앱 실행 시 localStorage에서 데이터를 불러와 렌더링|
29 changes: 29 additions & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import js from '@eslint/js'
import globals from 'globals'
import reactHooks from 'eslint-plugin-react-hooks'
import reactRefresh from 'eslint-plugin-react-refresh'
import { defineConfig, globalIgnores } from 'eslint/config'

export default defineConfig([
globalIgnores(['dist']),
{
files: ['**/*.{js,jsx}'],
extends: [
js.configs.recommended,
reactHooks.configs['recommended-latest'],
reactRefresh.configs.vite,
],
languageOptions: {
ecmaVersion: 2020,
globals: globals.browser,
parserOptions: {
ecmaVersion: 'latest',
ecmaFeatures: { jsx: true },
sourceType: 'module',
},
},
rules: {
'no-unused-vars': ['error', { varsIgnorePattern: '^[A-Z_]' }],
},
},
])
13 changes: 13 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vite + React</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.jsx"></script>
</body>
</html>
Loading