Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
115 commits
Select commit Hold shift + click to select a range
b2e37bd
reset
hanseulhee Oct 10, 2023
6f8bbb0
Merge branch 'codeit-bootcamp-frontend:main' into main
hanseulhee Oct 10, 2023
e11e25f
fix: 머지 후 브랜치 삭제 github action 수정
hanseulhee Oct 10, 2023
212e864
env: workflows 폴더로 이동
hanseulhee Oct 10, 2023
4dc5dd0
Merge pull request #237 from hanseulhee/fix-github-actions
withyj-codeit Nov 6, 2023
6fe49e0
Define custom colors
sgoldenbird Feb 21, 2025
87d2d66
Add css reset
sgoldenbird Feb 21, 2025
9bc54f6
Add css base
sgoldenbird Feb 21, 2025
8988ca3
Remove files from Basic-송시은 branch
sgoldenbird Feb 21, 2025
528aa46
chore: PR 템플릿 추가
withyj-codeit Sep 3, 2023
b34bd0c
fix: 머지 후 브랜치 삭제 github action 수정
hanseulhee Oct 10, 2023
22e3391
env: workflows 폴더로 이동
hanseulhee Oct 10, 2023
ee97c35
style: define custom colors
sgoldenbird Feb 21, 2025
2ae3307
style: add css reset
sgoldenbird Feb 21, 2025
49a2880
style: add css base
sgoldenbird Feb 21, 2025
84ee717
Move files to Basic-송시은-sprint1 branch
sgoldenbird Feb 21, 2025
94b5fb1
feat: create index.html and basic layout
sgoldenbird Feb 21, 2025
cebbd73
style: update header
sgoldenbird Feb 21, 2025
b27433c
style: update hero
sgoldenbird Feb 21, 2025
72cf41b
style: update banner
sgoldenbird Feb 21, 2025
4f35e86
style: update contents, cards
sgoldenbird Feb 21, 2025
df4a449
style: update bottom banner
sgoldenbird Feb 21, 2025
8a33057
style: update footer
sgoldenbird Feb 21, 2025
abfad41
style: add max-width
sgoldenbird Feb 22, 2025
ce0cd07
style: add responsive style for max-width 1024
sgoldenbird Feb 22, 2025
37c40e7
style: add responsive style for max-width 768
sgoldenbird Feb 22, 2025
bb4bc6b
fix: width not being responsive
sgoldenbird Feb 22, 2025
eb78c77
chore: change img file format from png to svg
sgoldenbird Feb 22, 2025
92d390d
Merge pull request #10 from sgoldenbird/Basic-송시은-sprint1
GANGYIKIM Feb 24, 2025
cd3ee7a
Merge branch 'Basic-송시은' of https://github.com/codeit-bootcamp-fronte…
sgoldenbird Feb 26, 2025
5bdb9b6
refactor: change h1 tags to h2
sgoldenbird Feb 26, 2025
b80b58f
refactor: change some class names
sgoldenbird Feb 26, 2025
91d4a12
refactor: change footer social-media div to ul
sgoldenbird Feb 26, 2025
4cd0e03
refactor: move responsive css into style.css
sgoldenbird Feb 26, 2025
5208354
style: add border-bottom on header
sgoldenbird Feb 26, 2025
71cf4f7
refactor: change home-card-content css
sgoldenbird Feb 26, 2025
b0cca91
refactor: delete responsive.css
sgoldenbird Feb 26, 2025
b8b446c
style: add margin on header
sgoldenbird Feb 26, 2025
98947e8
refactor: change header margin to padding
sgoldenbird Mar 3, 2025
9986e6b
feat: make login.html
sgoldenbird Mar 3, 2025
d341fe2
feat: make login and signin page
sgoldenbird Mar 3, 2025
a8c68ee
feat: add POST method on register form
sgoldenbird Mar 3, 2025
125b0d6
style: add outline none on a and button
sgoldenbird Mar 3, 2025
dda026e
style: outline none on a:hover and button:hover
sgoldenbird Mar 3, 2025
32c5b06
style: add login-button:hover color
sgoldenbird Mar 3, 2025
ed9c754
refactor: change class name
sgoldenbird Mar 3, 2025
2c4a319
refactor: login-signup-header margin top
sgoldenbird Mar 3, 2025
394a338
style: add login-signup-container padding
sgoldenbird Mar 3, 2025
ff4a736
Merge pull request #44 from sgoldenbird/Basic-송시은-sprint2
GANGYIKIM Mar 5, 2025
9699cc4
refactor: delete height 100% for html, body and change logo-container…
sgoldenbird Mar 6, 2025
3d909a6
chore: set up ESLint and Prettier
sgoldenbird Mar 6, 2025
d58e622
refactor: move auth-container out of form
sgoldenbird Mar 6, 2025
1dcc620
style: change breakpoint
sgoldenbird Mar 6, 2025
a486089
style: add mobile reponsive css for login-signup
sgoldenbird Mar 6, 2025
c64a286
feat: add open gragh and twitter card meta tags
sgoldenbird Mar 6, 2025
4a639d8
chore: add fb id
sgoldenbird Mar 6, 2025
9fdf63a
chore: add fb id
sgoldenbird Mar 6, 2025
dd9be15
Merge branch 'Basic-송시은-sprint3' of https://github.com/sgoldenbird/co…
sgoldenbird Mar 6, 2025
4c33811
Merge branch 'Basic-송시은-sprint3' of https://github.com/sgoldenbird/co…
sgoldenbird Mar 6, 2025
3cf25f2
Merge branch 'Basic-송시은-sprint3' of https://github.com/sgoldenbird/co…
sgoldenbird Mar 6, 2025
087bc89
Merge branch 'Basic-송시은-sprint3' of https://github.com/sgoldenbird/co…
sgoldenbird Mar 6, 2025
95fa25a
Merge branch 'Basic-송시은-sprint3' of https://github.com/sgoldenbird/co…
sgoldenbird Mar 6, 2025
edaaee9
Merge pull request #60 from sgoldenbird/Basic-송시은-sprint3
GANGYIKIM Mar 7, 2025
a2757e0
Add .vscode to .gitignore
sgoldenbird Mar 7, 2025
a8d3e05
refactor: change login-signup to auth and delete max-width on home-ca…
sgoldenbird Mar 7, 2025
7b3cf42
style: remove ul line-height and li margin on base.css
sgoldenbird Mar 12, 2025
086f860
style: add logo typo image
sgoldenbird Mar 12, 2025
96fc74e
docs: add README.md
sgoldenbird Mar 17, 2025
d3515f5
feat: add constants folder
sgoldenbird Mar 17, 2025
5d8bc85
feat: add auth form validation logics
sgoldenbird Mar 17, 2025
c88be1e
feat: add login validation logic using auth type
sgoldenbird Mar 17, 2025
f22a8dc
feat: create password visibility button logic
sgoldenbird Mar 17, 2025
01f8f8e
fix: validate each input and validate the whole form
sgoldenbird Mar 17, 2025
99a1865
style: add padding on error message
sgoldenbird Mar 17, 2025
7d2facc
perf: add debounce function on input event handler
sgoldenbird Mar 17, 2025
3181f21
docs: update README.md
sgoldenbird Mar 17, 2025
472b70a
Merge pull request #101 from sgoldenbird/Basic-송시은-sprint4
GANGYIKIM Mar 20, 2025
0722efd
chore: resolve conflicts
sgoldenbird Mar 20, 2025
aa44497
chore: add SEO meta tags for better serch engine visibility
sgoldenbird Mar 23, 2025
8d45d37
chore: setting type: module in package.json
sgoldenbird Mar 23, 2025
4f48b72
style: center FAQ link on small screens (max-width: 767px)
sgoldenbird Mar 23, 2025
b2ae86d
style: split top banner title into two lines on small screens (max-wi…
sgoldenbird Mar 23, 2025
1b0e652
style: reduce horizontal padding of view button on small screens (max…
sgoldenbird Mar 23, 2025
8bbf087
refactor: separate common dom elements for auth
sgoldenbird Mar 23, 2025
114822f
refactor: separate regex patterns and validation logic
sgoldenbird Mar 23, 2025
652230d
refactor: extract toggleError to reusable form utility
sgoldenbird Mar 23, 2025
05d6f15
feat: add input event listener for password and confirm password vali…
sgoldenbird Mar 23, 2025
d07ed71
feat: debounce validation on password input and form inputs
sgoldenbird Mar 23, 2025
8ad958a
feat: create page-urls.js
sgoldenbird Mar 23, 2025
f243895
fix: prevent DOM access errors on missing elements
sgoldenbird Mar 23, 2025
da4f5f1
feat: add aria-label toggle for password visibility button
sgoldenbird Mar 25, 2025
2b2e5d8
feat: add SEO and social meta tags to signup and signin page
sgoldenbird Mar 25, 2025
ae7f86c
chore: install VITE
sgoldenbird Mar 26, 2025
efd9e1e
refactor: migration to react
sgoldenbird Mar 26, 2025
09d558c
feat: SignUp.jsx
sgoldenbird Mar 27, 2025
5cc50aa
feat: router setup
sgoldenbird May 2, 2025
6893be2
refactor: create Header component
sgoldenbird May 2, 2025
f1a3323
refactor: create Footer component
sgoldenbird May 2, 2025
16e8404
refactor: create Banner and Card components
sgoldenbird May 2, 2025
8367a24
refactor: create AuthForm, AuthFormLayout, AuthInput, OAuthButtons, P…
sgoldenbird May 3, 2025
a7255a6
refactor: create SignIn component
sgoldenbird May 3, 2025
eacd7ae
refactor: split handleInputChange
sgoldenbird May 3, 2025
30f42c9
feat: add nav on Header and add default profile icon on items page
sgoldenbird May 3, 2025
938ebaa
feat: create ProductCard component
sgoldenbird May 3, 2025
5cb1783
feat: create BestProductSection component
sgoldenbird May 3, 2025
88ea04f
feat: create SortSelect component
sgoldenbird May 4, 2025
a476bd2
feat: refactor allProductsHeader layout using grid and add responsive…
sgoldenbird May 5, 2025
291d076
feat: create pagination
sgoldenbird May 5, 2025
9a0386a
refactor: create useResponsivePageSize hook
sgoldenbird May 5, 2025
77bc7eb
refactor: create useForm hook
sgoldenbird May 5, 2025
d88e96d
refactor: map card list and add aria-labels for accessibility
sgoldenbird May 5, 2025
364bdd4
refactor: apply from parent component for layout consistency
sgoldenbird May 5, 2025
002d5a9
chore: migrate to ESLint Flat Config format
sgoldenbird May 5, 2025
4335fe3
chore: configure import order for consistent module sorting
sgoldenbird May 5, 2025
1938bf0
fix: replace static SVG paths with imports for Vite compatibility
sgoldenbird May 5, 2025
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
43 changes: 24 additions & 19 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,23 +1,28 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.js

# testing
/coverage
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

# production
/build
node_modules
dist
dist-ssr
*.local

# misc
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
.env*
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

npm-debug.log*
yarn-debug.log*
yarn-error.log*
# mission_template_codes 공부용
mission_template_codes/
6 changes: 6 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"semi": true,
"singleQuote": true,
"trailingComma": "all",
"tabWidth": 2
}
101 changes: 58 additions & 43 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,70 +1,85 @@
# Getting Started with Create React App
<!-- 추후 추가 수정 예정 -->

This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
# 코드잇 스프린트 미션

## Available Scripts
기간: 2025-02-24 ~
배포:

In the project directory, you can run:
## 미션 목록

### `npm start`
| 미션 | 날짜 | PR | 주요 내용 |
| ---- | ---------- | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ |
| 1 | 2025-02-24 | [#10](https://github.com/codeit-bootcamp-frontend/15-Sprint-Mission/pull/10) | 랜딩 페이지의 HTML 및 CSS 구현 |
| 2 | 2025-03-05 | [#44](https://github.com/codeit-bootcamp-frontend/15-Sprint-Mission/pull/44) | 회원가입 및 로그인 페이지의 HTML, CSS 구현 |
| 3 | 2025-03-07 | [#60](https://github.com/codeit-bootcamp-frontend/15-Sprint-Mission/pull/60) | 반응형 디자인 구현(desktop-first, 1920px 이상 큰 모니터 기준), breakpoint: 1919px, 1199px, 767px |
| 4 | 2025-03-18 | [#101](https://github.com/codeit-bootcamp-frontend/15-Sprint-Mission/pull/101) | JS기능 추가(DOM 요소 조작 및 이벤트 리스너), 회원가입, 로그인 폼 유효성 검사 |
| 5 | 2025-05-05 | [#](https://github.com/codeit-bootcamp-frontend/15-Sprint-Mission/pull/) | React, SCSS+CSS modules로 마이그레이션, items 페이지 구현(fetch data, 검색어, 정렬, pagination, 반응형 구현) |
| 6 | 2025-05-0 | [#](https://github.com/codeit-bootcamp-frontend/15-Sprint-Mission/pull/) | 상품 등록 페이지 구현 |

Runs the app in the development mode.\
Open [http://localhost:3000](http://localhost:3000) to view it in your browser.
---

The page will reload when you make changes.\
You may also see any lint errors in the console.
## 컨벤션

### `npm test`
### 반응형

Launches the test runner in the interactive watch mode.\
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
- desktop-first(1920이상) 큰 모니터
- breakpoint: 1919px(작은 모니터), 1199px(태블릿), 767px(모바일) (375px미만은 고려하지 않습니다.)

### `npm run build`
### 코드 작성 순서

Builds the app for production to the `build` folder.\
It correctly bundles React in production mode and optimizes the build for the best performance.
하나의 JS 파일에서는 아래 순서를 따라 작성합니다:

The build is minified and the filenames include the hashes.\
Your app is ready to be deployed!
1. Import 구문 (ESLint 설정)
2. 변수 선언
3. 함수 선언

See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
### 경로

### `npm run eject`
- 절대 경로 사용
- 같은 폴더 내에서는 상대 경로 사용

**Note: this is a one-way operation. Once you `eject`, you can't go back!**
### 명명 규칙

If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
1. **파일명, 폴더명**

Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own.
- camelCase
- 컴포넌트 파일(JSX)는 파스칼케이스
- 이미지 파일 이름은 소문자로 작성하고, **언더스코어(\_)**를 사용하여 단어를 구분합니다.

You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it.
2. **변수명, 함수명, 프로퍼티 키**:

## Learn More
- camelCase
- 컴포넌트는 파스칼케이스

You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
### 함수 규칙

To learn React, check out the [React documentation](https://reactjs.org/).
- **화살표 함수**를 기본으로 사용하되, this바인딩 고려 시 필요한 경우 일반 함수도 사용 가능 합니다.

### Code Splitting
### 컴포넌트 규칙

This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting)
- 이미지 컴포넌트는 이름 뒤에 Img를 붙입니다.
- 아이콘 컴포넌트는 이름 뒤에 Icon을 붙입니다.

### Analyzing the Bundle Size
### 커밋 규칙

This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size)
1. 커밋 메시지는 소문자로 작성합니다.
2. 커밋 메시지 본문 작성은 선택사항입니다.
3. 타입: 내용
| **타입** | **내용** |
|----------|-----------|
| **feat** | 새로운 기능 추가 |
| **fix** | 버그 수정 |
| **docs** | 문서 변경 (README, Wiki 등) |
| **style** | 코드 스타일 변경 (세미콜론, 공백, 들여쓰기 등) |
| **refactor** | 코드 리팩토링 (기능 변경 없이 코드 구조나 가독성 개선) |
| **perf** | 성능 개선 |
| **test** | 테스트 코드 추가 및 수정 |
| **chore** | 기타 일들 (빌드 스크립트, 환경 설정 등) |

### Making a Progressive Web App
## 폴더 구조

This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app)
- Barrel 패턴 적용

### Advanced Configuration

This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration)

### Deployment

This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment)

### `npm run build` fails to minify

This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify)
```
마지막에 추가 할 예정
```
97 changes: 97 additions & 0 deletions eslint.config.cjss
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
const js = require('@eslint/js');
const globals = require('globals');
const reactHooks = require('eslint-plugin-react-hooks');
const reactRefresh = require('eslint-plugin-react-refresh');
const pluginReact = require('eslint-plugin-react');
const tseslint = require('typescript-eslint');
const prettierPlugin = require('eslint-plugin-prettier');
const importPlugin = require('eslint-plugin-import');

module.exports = [
{ ignores: ['dist', 'eslint.config.cjs'] },
...tseslint.configs.recommended,
{
files: ['**/*.{js,jsx,ts,tsx}'],
languageOptions: {
ecmaVersion: 2020,
globals: globals.browser,
parserOptions: {
ecmaVersion: 'latest',
ecmaFeatures: { jsx: true },
sourceType: 'module',
},
},
plugins: {
'react-hooks': reactHooks,
'react-refresh': reactRefresh,
prettier: prettierPlugin,
react: pluginReact,
import: importPlugin,
},
rules: {
...js.configs.recommended.rules,
...reactHooks.configs.recommended.rules,
...pluginReact.configs.flat.recommended.rules,
'react/prop-types': 'off',
'no-unused-vars': ['error', { varsIgnorePattern: '^[A-Z_]' }],
'react-refresh/only-export-components': [
'warn',
{ allowConstantExport: true },
],
'prettier/prettier': 'error',
'react/react-in-jsx-scope': 'off',

'import/order': [
'warn',
{
groups: [
'builtin',
'external',
'internal',
['parent', 'sibling', 'index'],
'object',
'type',
],
pathGroups: [
{
pattern: '@/**',
group: 'internal',
position: 'after',
},
{
pattern: '**/*.module.scss',
group: 'index',
position: 'after',
},
{
pattern: '**/*.scss',
group: 'index',
position: 'after',
},
{
pattern: '**/*.css',
group: 'index',
position: 'after',
},
],
pathGroupsExcludedImportTypes: ['builtin'],
'newlines-between': 'never',
alphabetize: {
order: 'asc',
caseInsensitive: true,
},
},
],
},

settings: {
react: { version: 'detect' },
'import/resolver': {
alias: {
map: [['@', './src']],
extensions: ['.js', '.jsx', '.ts', '.tsx'],
},
},
},
},
];
Loading
Loading