Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
2badb31
reset
hanseulhee Oct 10, 2023
c6b6b54
fix: 머지 후 브랜치 삭제 github action 수정
hanseulhee Oct 10, 2023
5a5da81
env: workflows 폴더로 이동
hanseulhee Oct 10, 2023
2ce1a02
feat: index, style 파일 생성, 이미지 세팅
Ospac May 16, 2025
b378750
feat: header 완료, font 추가
Ospac May 16, 2025
bb5725e
feat: main section 완료
Ospac May 16, 2025
fa71ad2
chores: .gitignore 추가
Ospac May 16, 2025
394f109
Delete sprint-mission-1/.DS_Store
Ospac May 16, 2025
b30eaaa
Delete sprint-mission-1/public/.DS_Store
Ospac May 16, 2025
92d07f8
feat: bottom blue section 완료
Ospac May 16, 2025
52f159e
feat: footer 완료
Ospac May 16, 2025
41025e6
refact: FAQ 링크 수정, privacy.html 삭제
Ospac May 16, 2025
b95fb21
refact: header 요구사항 반영
Ospac May 16, 2025
d9daa59
feat: 태블릿, 모바일 반응형 디자인 적용
Ospac May 16, 2025
3d48112
refact: 폴더구조 변경 - 프로젝트폴더를 최상위 폴더로, fonts 폴더 세분화, style 파일 나누기
Ospac May 20, 2025
7ccc6fe
feat: common.css에 color 변수 설정
Ospac May 20, 2025
40a9099
feat: header 상단 고정
Ospac May 20, 2025
841c8f9
feat: login 페이지 완료
Ospac May 21, 2025
ef4dc96
refact: login.html과 signup.html에서 같은 class를 사용하기 위해 class의 접두사를 login…
Ospac May 21, 2025
8727d83
feat: signup 페이지 완료, public 폴더 -> assets 이름변경
Ospac May 21, 2025
d56fe1a
refact: wott 폰트 삭제, 오타 수정
Ospac May 23, 2025
098b021
refact: login, signup 페이지 비밀번호 표시 아이콘img에서 button으로 교체 / index 페이지 _b…
Ospac May 23, 2025
b89a973
refact: css px -> rem으로 모두 교체
Ospac May 23, 2025
18f202b
refact: footer UI 수정
Ospac May 28, 2025
4d0680c
feat: login, signup 페이지 반응형 작업
Ospac May 28, 2025
db0f0c6
feat: favicon 추가, index.html에 opengraph 옵션추가
Ospac May 28, 2025
2817c73
feat: 접근성 향상을 위해 모든 a태그에 aria-label 작성
Ospac May 28, 2025
56be1a6
refact: opengraph 코드 수정
Ospac May 28, 2025
8dc6f6a
refact: 대부분의 css 고정값들을common.css에서 변수로 변경
Ospac May 28, 2025
826065e
refact: header.css로 분리, typo 수정
Ospac May 28, 2025
28ea176
fix: 태블릿 사이즈에서 section-blue__img의 크기가 컨테이너를 벗어나는 오류 수정
Ospac May 28, 2025
e28295f
fix: 모바일 사이즈에서 form padding 정상화
Ospac May 28, 2025
19ca8ea
fix: home 페이지: 뷰포트마다 달라지는 title들의 정렬을 위해, html, css 조정
Ospac Jun 4, 2025
81a8b62
refact: css 파일구조 변경
Ospac Jun 5, 2025
4eec0e5
refact: home, footer, header.css 의 미디어쿼리를 mobile-first로 변경
Ospac Jun 9, 2025
e4109d7
refact: sign.css의 미디어쿼리를 mobile-first로 변경
Ospac Jun 9, 2025
eabe9a9
feat: sign form validation 기능 추가
Ospac Jun 13, 2025
ff55ea2
refact: signFormValidation.js의 역할을 validation.js와 dom.js로 나누고, valida…
Ospac Jun 26, 2025
fc76fb4
feat: vite+react 설치 및 기존 프로젝트 폴더 분리
Ospac Jun 26, 2025
a2124ce
feat: react-router-dom 설치후 main.jsx에서 routes 세팅 완료
Ospac Jun 27, 2025
b687a26
feat: Header, Footer 옮기기
Ospac Jun 27, 2025
0dc7d2e
refact: vite.config.js build 설정 추가, alias 설정 추가 + import 절대경로로 설정
Ospac Jun 27, 2025
2ade8c6
refact: 이미지 경로 수정
Ospac Jun 27, 2025
2963e19
feat: html -> jsx로 변경(Home, Login, Signup 페이지), Header: navbar list 추가
Ospac Jun 27, 2025
2e74f59
feat: Items 페이지 스타일 초안 완료
Ospac Jun 30, 2025
a69d517
feat: customFetch를 이용하여 api.js 작성, Items 페이지: data load, search, pagi…
Ospac Jul 1, 2025
50403df
feat: useResizeEffect.js 추가: AllItemsSection, BestItemsSection에
Ospac Jul 1, 2025
a8ee0c3
feat: Items 페이지 반응형 스타일 적용
Ospac Jul 2, 2025
01b6434
debug: svg파일 import할떄 ts 오류나는 것을 vite-env 파일에 svg관련 타입을 추가하여 해결
Ospac Jul 2, 2025
17105ce
chores: aria-label, alt 속성 추가, paginationBar에 isactive 관련 오류 메시지 해결
Ospac Jul 2, 2025
7343c89
feat: vite-plugin-svgr 설치, svg파일 Component로 변경, ?react 접미사 생략옵션 설정
Ospac Jul 2, 2025
b790441
debug: build시에 이전 styles 파일 설정으로 오류, 삭제완료
Ospac Jul 2, 2025
f29754f
feat: vite terser 설치
Ospac Jul 2, 2025
281699d
debug: netlify build 사이트에서 새로고침시 NotFound오류 -> redirects파일 생성
Ospac Jul 2, 2025
b45c6f5
feat: eslint.config.js에서 eslint, plugin 세팅, 파일에 eslint 규칙 반영
Ospac Jul 4, 2025
8dd0c08
feat: eslint 반영
Ospac Jul 4, 2025
fe0d37b
refact: 페이지 마다 개별적인 레이아웃 설정을 위해, main.jsx의 MainTemplate을 내리고, pages 내…
Ospac Jul 4, 2025
aa9d3ff
refact: 코드리뷰 반영
Ospac Jul 5, 2025
50b7b4a
refact: useIsMobile을 resize 할때마다 window width를 계산하는 방식에서 matchMedia의 …
Ospac Jul 5, 2025
008f1fd
refact: css Token을 themeProvider + type으로 변경
Ospac Jul 5, 2025
a27c45d
feat: AddItem 정적 페이지 완료
Ospac Jul 6, 2025
6b13a2c
refact: 폴더구조 변경, page별 component들을 pages 내부의 별도의 폴더로 분리, components는 …
Ospac Jul 7, 2025
0404196
feat: AddItem page: tag 입력 기능
Ospac Jul 7, 2025
b789568
feat: AddItem 페이지, FileInput 추가
Ospac Jul 30, 2025
fd8851a
feat: TagInput 분리, tags 상태 처리 코드 변경
Ospac Jul 30, 2025
68de5db
feat: Price Input의 number 처리 방식 변경, handleInput 함수 의미에 맞게 분리
Ospac Jul 30, 2025
acda5a9
fix: items 페이지 svg 위치 수정
Ospac Jul 30, 2025
2aa49e7
fix: 배포 오류 수정(Items.js 우선 대문자로 처리)
Ospac Jul 30, 2025
3beb787
chore: 브랜치 정리 Basic -> React
Ospac Jul 31, 2025
6e04435
refact: uuid -> crypto.randomUUID 교체
Ospac Jul 31, 2025
5aa2e26
chore: build: terser -> esbuild, .prettierignore 수정
Ospac Jul 31, 2025
729c526
fix: /additem 페이지에서 Header 색상 문제 수정, vite esbuild drop 옵션: production…
Ospac Aug 1, 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
27 changes: 27 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
## 요구사항

### 기본

- [x]
- []
- []

### 심화

- [x]
- []

## 주요 변경사항

-
-

## 스크린샷

![image](이미지url)

## 멘토에게

-
-
- 셀프 코드 리뷰를 통해 질문 이어가겠습니다.
14 changes: 14 additions & 0 deletions .github/workflows/delete-merged-branch-config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: delete branch on close pr

on:
pull_request:
types: [closed]

jobs:
delete-branch:
runs-on: ubuntu-latest
steps:
- name: delete branch
uses: SvanBoxel/delete-merged-branch@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
7 changes: 7 additions & 0 deletions vite-project/.gitignore → .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,10 @@ dist-ssr
*.njsproj
*.sln
*.sw?

# react
.DS_*
*.log
logs
**/*.backup.*
**/*.back.*
14 changes: 14 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
dist/
build/
.prettierrc
.eslintrc.cjs
npm-debug.log
yarn-debug.log
yarn-error.log
public/
coverage/
.vscode/
.idea/
.DS_Store
*.config.js
package-lock.json
16 changes: 16 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"printWidth": 80,
"tabWidth": 2,
"useTabs": false,
"semi": true,
"singleQuote": true,
"quoteProps": "as-needed",
"jsxSingleQuote": true,
"trailingComma": "es5",
"bracketSpacing": true,
"bracketSameLine": false,
"arrowParens": "always",
"endOfLine": "lf",
"proseWrap": "always",
"htmlWhitespaceSensitivity": "strict"
}
120 changes: 120 additions & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
import js from '@eslint/js'
import globals from 'globals'
import react from 'eslint-plugin-react'
import reactHooks from 'eslint-plugin-react-hooks'
import reactRefresh from 'eslint-plugin-react-refresh'
import eslintConfigPrettier from "eslint-config-prettier/flat";
import { defineConfig, globalIgnores } from 'eslint/config'
import importPlugin from 'eslint-plugin-import'
import jsxA11y from 'eslint-plugin-jsx-a11y'
import simpleImportSort from "eslint-plugin-simple-import-sort";

export default defineConfig([
globalIgnores(['dist/ ','build/', 'node_modules/', '.eslintrc.cjs', 'npm-debug.log',
'yarn-debug.log', 'yarn-error.log', 'public/', 'coverage/', '.vscode/', '.idea/',
'.DS_Store', '*.config.js', 'package-lock.json',]), // 규칙 예외 파일

js.configs.recommended, // Js (권장옵션)
react.configs.flat.recommended, // react (권장옵션)
jsxA11y.flatConfigs.recommended, // 접근성 검사 (권장옵션)
eslintConfigPrettier,
{
files: ['**/*.{js,jsx}'],
extends: [
reactHooks.configs['recommended-latest'],
reactRefresh.configs.vite,

],
languageOptions: {
ecmaVersion: 2020,
globals: globals.browser,
parserOptions: {
ecmaVersion: 'latest',
ecmaFeatures: { jsx: true },
sourceType: 'module',
},
},
plugins: {
"simple-import-sort": simpleImportSort,
'import' : importPlugin,
},
settings: {
react: {
// 현재 React 버전을 명시합니다.
// 명시하지 않을 경우(기본값 'detect') React 라이브러리 전체를 불러오므로 린트 과정에서 속도가 느려질 수 있습니다.
version: "19.1",
},
'import/resolver': {
node: {
"paths" : ['src'], // src에 절대경로 Resolve
extensions: ['.js', '.jsx', '.ts', '.tsx', '.css'], // 자동 확장자 처리
}
}
},

rules: {
"simple-import-sort/imports": [ //import 정렬
"error",
{
"groups": [
// Packages `react` related packages come first.
["^react", "^@?\\w"],
// Internal packages.
["^(@|components)(/.*|$)"],
// Side effect imports.
["^\\u0000"],
// Parent imports. Put `..` last.
["^\\.\\.(?!/?$)", "^\\.\\./?$"],
// Other relative imports. Put same-folder imports and `.` last.
["^\\./(?=.*/)(?!/?$)", "^\\.(?!/?$)", "^\\./?$"],
// Style imports.
["^.+\\.?(css)$"]
]
}
],
// "import/extensions": ["error", "ignorePackages"], //import시 패키지를 제외하고 확장자 사용 (import/resolver : 자동확장자 처리랑 충돌)
'import/no-dynamic-require': 'warn',
'import/no-nodejs-modules': 'warn',
'import/newline-after-import': 'error', // import 후 한 줄 띄우기
'import/no-duplicates': 'error', // 중복 import 방지
"no-restricted-imports": [ // 절대경로 통일을 위해 ".*" 패턴 제한
"error",
{
"patterns": [".*"],
}
],
'react/react-in-jsx-scope': 'off', // React 17+ 이상에서는 React import 불필요
"react/prop-types": "off", // Prop validation 오류 비활성화
// 화살표 함수 스타일 제한 해제
'arrow-body-style': 'off',
'prefer-arrow-callback': 'off',

// target="_blank" 사용시 보안 경고 비활성화
'react/jsx-no-target-blank': 'off',

// Fast Refresh 관련 설정
'react-refresh/only-export-components': [
'warn',
{ allowConstantExport: true }
],

// 미사용 변수 규칙 설정
'no-unused-vars': ['warn', {
'varsIgnorePattern': '^_', // '_'로 시작하는 변수 무시
'argsIgnorePattern': '^_', // '_'로 시작하는 매개변수 무시
'ignoreRestSiblings': true // 구조분해할당의 나머지 변수 무시
}],

// 미사용 변수 규칙 설정 for TypeScript
// "no-unused-vars": "off",
// '@typescript-eslint/no-unused-vars': ['warn', {
// 'varsIgnorePattern': '^_', // '_'로 시작하는 변수 무시
// 'argsIgnorePattern': '^_', // '_'로 시작하는 매개변수 무시
// 'ignoreRestSiblings': true // 구조분해할당의 나머지 요소(...rest) 무시
// }],

// 일치 연산자 강제 (==, != 대신 ===, !== 사용)
'eqeqeq': ['error', 'always'],
},
},
])
41 changes: 41 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/png" href="/favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>판다마켓</title>
<meta name="title" content="판다마켓" />
<meta name="description" content="일상의 모든 물건을 거래해보세요" />

<!-- Open Graph / Facebook -->
<meta property="og:type" content="website" />
<meta property="og:locale" content="ko_KR" />
<meta
property="og:url"
content="https://awkward-panda-market.netlify.app/"
/>
<meta property="og:title" content="판다마켓" />
<meta property="og:description" content="일상의 모든 물건을 거래해보세요" />
<meta property="og:image" content="https://i.imgur.com/ORYlHQw.png" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />

<!-- Twitter -->
<meta property="twitter:card" content="summary_large_image" />
<meta
property="twitter:url"
content="https://awkward-panda-market.netlify.app/"
/>
<meta property="twitter:image" content="https://i.imgur.com/ORYlHQw.png" />
<meta property="twitter:title" content="판다마켓" />
<meta
property="twitter:description"
content="일상의 모든 물건을 거래해보세요"
/>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.jsx"></script>
</body>
</html>
21 changes: 21 additions & 0 deletions jsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"compilerOptions": {
"jsx": "react-jsx",
"checkJs": true,
"resolveJsonModule": true,
"esModuleInterop": true,
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"]
}
},
"include": [
"src/**/*.d.ts",
"src/**/*.js",
"src/**/*.jsx",
"src/**/*.ts",
"src/**/*.tsx",
"src/**/*.svg"
],
"exclude": ["node_modules", "**/node_modules", "dist"]
}
Loading
Loading