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
28 changes: 28 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Envs
env/*
!env/.env.example

# 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?
48 changes: 48 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
### FS11기Mission 관련 사항
# 🐼 판다마켓 프로젝트

프로트엔드와 백엔드를 합쳐서 검토 요청드립니다.(소스:client/server분리)

<프론트엔드 구현 요구사항>

[ ] HTML과 CSS로 구현한 랜딩페이지를 React로 마이그레이션하세요.
[ ] 랜딩 페이지 url path는 "/"로 설정하세요.
중고마켓 페이지

[ ] 중고마켓 페이지 url path를 "/items"으로 설정하세요.
[ ] 페이지 주소가 "/items" 일 때 상단내비게이션바의 "중고마켓" 버튼의 색상은 "3692FF"입니다.
[ ] 중고마켓 페이지 판매 중인 상품은 본인이 만든 GET 메서드를 사용해 주세요.
[ ] 다만 좋아요 순 정렬 기능은 제외해 주세요.
[ ] 사진은 디폴트 이미지로 프론트엔드에서 처리해주세요.
[ ] 베스트 상품 목록 조회는 구현하지 않습니다.
[ ] '상품 등록하기' 버튼을 누르면 "/registration" 로 이동합니다. ( 빈 페이지 )
상품 등록 페이지

[ ] PC, Tablet, Mobile 디자인에 해당하는 상품 등록 페이지를 만들어 주세요.
[ ] 상품 등록 url path는 "/registration"입니다.
[ ] 상품 등록은 본인이 만든 POST 메서드를 사용해 주세요.
[ ] 등록 성공 시, 해당 상품 상세 페이지로 이동합니다. (빈페이지)

<백엔드 구현 요구사항>
[ ] Product 스키마를 작성해 주세요.

[ ] id, name, description, price, tags, createdAt, updatedAt필드를 가집니다.
[ ] 필요한 필드가 있다면 자유롭게 추가해 주세요.
[ ] 상품 등록 API를 만들어 주세요.
[ ] name, description, price, tags를 입력하여 상품을 등록합니다.
[ ] 상품 상세 조회 API를 만들어 주세요.
[ ] id, name, description, price, tags, createdAt를 조회합니다.
[ ] 상품 수정 API를 만들어 주세요.
[ ] PATCH 메서드를 사용해 주세요.
[ ] 상품 삭제 API를 만들어 주세요.
[ ] 상품 목록 조회 API를 만들어 주세요.
[ ] id, name, price, createdAt를 조회합니다.
[ ] offset 방식의 페이지네이션 기능을 포함해 주세요.
[ ] 최신순(recent)으로 정렬할 수 있습니다.
[ ] name, description에 포함된 단어로 검색할 수 있습니다.
[ ] 각 API에 적절한 에러 처리를 해 주세요.
[ ] 각 API 응답에 적절한 상태 코드를 리턴하도록 해 주세요.
[ ] . env 파일에 환경 변수를 설정해 주세요.
[ ] CORS를 설정해 주세요.
[ ] render.com로 배포해 주세요.
[ ] MongoDB를 활용해 주세요.
25 changes: 25 additions & 0 deletions client/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Logs
.env
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?
29 changes: 29 additions & 0 deletions client/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.flat.recommended,
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 client/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<!doctype html>
<html lang="ko">
<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>client</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="src/main.jsx"></script>
</body>
</html>
Loading