Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
bb40222
feat: migrate assets, header and footer
play-ancora-gyungmin Nov 3, 2025
8c664c8
remove: delete unused files
play-ancora-gyungmin Nov 3, 2025
42aa2b4
feat: posts list page ui componants
play-ancora-gyungmin Nov 4, 2025
09168e2
feat: creat post form static ui
play-ancora-gyungmin Nov 4, 2025
e20b7d5
feat: validation create post form
play-ancora-gyungmin Nov 4, 2025
5f17563
feat: conect articles api for main article page
play-ancora-gyungmin Nov 5, 2025
81c58d4
fix: remove unused code
play-ancora-gyungmin Nov 5, 2025
84f1fac
feat: api logic for article comments
play-ancora-gyungmin Nov 5, 2025
764a9c7
feat: add comments list for article
play-ancora-gyungmin Nov 5, 2025
4d19039
remove: delete unused file
play-ancora-gyungmin Nov 6, 2025
76540cd
feat: create comment form import
play-ancora-gyungmin Nov 7, 2025
be408fb
feat: modify and update comment logic
play-ancora-gyungmin Nov 7, 2025
040d881
feat: modify and delete article
play-ancora-gyungmin Nov 8, 2025
c127446
feat: update article creation routing
play-ancora-gyungmin Nov 8, 2025
fa80fba
chore: setting for mission 9
play-ancora-gyungmin Nov 10, 2025
708934e
fix: temporary api address setting for the mission
play-ancora-gyungmin Nov 10, 2025
1a9f74e
chore: add devtools for tanstack query
play-ancora-gyungmin Nov 11, 2025
d4d0752
feat: auth form layout
play-ancora-gyungmin Nov 11, 2025
0597e02
feat: login signup api connect
play-ancora-gyungmin Nov 12, 2025
4b00565
feat: NavBtnWarp component for user authentication
play-ancora-gyungmin Nov 12, 2025
537ae41
feat: add landing page with css
play-ancora-gyungmin Nov 12, 2025
010afd7
fix: update link and pathname for /items in NavMenuWrap component
play-ancora-gyungmin Nov 13, 2025
e95a72b
refactor: replace fetch calls with tokenFetch and defaultFetch in ser…
play-ancora-gyungmin Nov 13, 2025
f25be4a
feat: add temporary item list components
play-ancora-gyungmin Nov 13, 2025
336bee5
fix: remove unused import
play-ancora-gyungmin Nov 13, 2025
a72af9c
feat: enhance RouteGuard for better authentication flow
play-ancora-gyungmin Nov 13, 2025
5f17efd
fix: remove unused protected path for /items in RouteGuard
play-ancora-gyungmin Nov 13, 2025
c8ec7d3
fix: update redirect path for authenticated users on public routes
play-ancora-gyungmin Nov 14, 2025
852a17e
feat: add product fetching
play-ancora-gyungmin Nov 14, 2025
b89bacd
fix: correct function names and improve import order in productsServi…
play-ancora-gyungmin Nov 14, 2025
bf26064
refactor: refactor article components and implement comment functiona…
play-ancora-gyungmin Nov 14, 2025
e151bdf
feat: add TagCapsule component and integrate it into item page
play-ancora-gyungmin Nov 14, 2025
ec6dc0b
feat: refactor article and item detail pages, improve layout and load…
play-ancora-gyungmin Nov 14, 2025
b9110f2
fix: update fetch method to serverFetch for articles and products ser…
play-ancora-gyungmin Nov 14, 2025
e697aa5
fix: update fetch method to defaultFetch for articles and products se…
play-ancora-gyungmin Nov 14, 2025
bfa2b6d
feat: implement comment functionality with add, delete, and update fe…
play-ancora-gyungmin Nov 14, 2025
d84a043
feat: add favorite functionality to item detail and update related co…
play-ancora-gyungmin Nov 14, 2025
5521161
feat: enhance comment dropdown with delete functionality and integrat…
play-ancora-gyungmin Nov 14, 2025
4cfc1a3
feat: add root path to publicPaths for unauthenticated access
play-ancora-gyungmin Nov 17, 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
41 changes: 41 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/versions

# testing
/coverage

# next.js
/.next/
/out/

# production
/build

# misc
.DS_Store
*.pem

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*

# env files (can opt-in for committing if needed)
.env*

# vercel
.vercel

# typescript
*.tsbuildinfo
next-env.d.ts
63 changes: 30 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,50 +1,47 @@
# 🐼 판다마켓 프로젝트
# 🐼 판다마켓 PANDA MARKET Front End

> _이 저장소는 판다마켓 프로젝트의 프론트엔드 코드를 관리하는 곳입니다. 프로젝트를 클론하여 개발 환경을 설정하고, 각 브랜치에서 해당 스프린트 미션을 수행해 주세요!_ 🛠️
코드잇 스프린트미션 프로젝트 판다마켓의 프론트엔드 입니다.
![Panda Market Landing Image](./readme.png)

## 소개

안녕하세요! 판다마켓 프로젝트에 오신 것을 환영합니다! 🥳
판다마켓은 따뜻한 중고거래를 위한 커뮤니티 플랫폼이에요. 여러분은 이곳에서 상품을 등록하고, 다른 사용자들과 소통하며, 자유롭게 이야기를 나눌 수 있어요. 매주 스프린트 미션을 통해 기능을 하나씩 만들어 가며 성장해 나가는 여정을 함께해요. 🚀

![PandaMarket](https://github.com/user-attachments/assets/3784b99f-73c9-4349-a9a9-92b2a7563574)
_위 이미지는 판다마켓의 대표 이미지입니다._ 📸

## 스프린트 미션이란? 🤔
---

스프린트 미션은 **하나의 개인 프로젝트를 길게 진행하면서, 그 과정에서 주기적으로 피드백을 받을 수 있는 시스템**이에요. 각 스프린트마다 배운 이론을 적용해 보고, **멘토님께 코드 리뷰를 받아가며 실력을 쑥쑥 키워갈 수 있는 중요한 개인 과제**랍니다. 💪
## 프로젝트 진행상황

## 주요 기능 ✨
### 08.24

1. **상품 등록**: 내가 가진 물건을 올리고, 사진과 설명을 추가해 직접 판매할 수 있어요!
2. **문의 댓글**: 상품에 대한 궁금한 점이나 의견을 자유롭게 남길 수 있답니다. 📝
3. **자유게시판**: 다양한 주제로 친구들과 이야기를 나누고, 정보를 공유할 수 있는 공간이에요! 🗣️
1. 랜딩 페이지 구현
2. 로그인 및 회원가입 페이지 구현

## 프로젝트 브랜치 구조 🏗️
### 09.02

프로젝트는 단계별로 나뉘어 있고, 각 스프린트 미션에 맞는 브랜치가 있어요. 각 브랜치를 통해 체계적으로 개발하며 학습할 수 있어요. 🎯
3. 랜딩 페이지 및 로그인 및 회원가입 페이지의 미디어 쿼리를 이용한 반응형 웹 구현
4. 로그인 및 회원가입 페이지 이메일 및 비밀번호 값 유효성 검사 구현
5. 로그인 및 회원가입 페이지 더미데이터를 이용한 회원 여부 검증 로직 구현
6. 경고 팝업창 구현
7. 파비콘 추가

### 브랜치 설명
### 09.12

1. **basic (part1): 스프린트 미션 1 ~ 4 FE 요구사항**
8. API서버에 HTTP 메소드 요청을 하는 CRUD 함수와 이를 테스트하는 함수 구현
9. React 적용 시작

- 기본적인 웹 애플리케이션 기능 구현을 위한 초기 브랜치입니다. HTML, CSS, JavaScript 등을 사용해 기본을 다집니다.
- **스프린트 미션 1부터 4까지**의 프론트엔드 내용을 포함하고 있어요.
### 09.18

2. **react (part2): 스프린트 미션 5 ~ 7 FE 요구사항**
10. React 기반 중고 마켓 페이지 구현

- React 라이브러리를 사용해 프론트엔드 기능을 구현하는 브랜치입니다. 컴포넌트 기반 아키텍처와 상태 관리를 배웁니다.
- **스프린트 미션 5부터 7까지, 그 이후**의 프론트엔드 내용을 포함하고 있어요.
- 만약 스프린트 미션 9부터 프론트엔드 코드를 Next가 아닌 React로 구현하고 싶다면 react 브랜치를 사용해요.
### 09.28

3. **next (part3,4): 스프린트 미션 8 FE 요구사항~**
11. 제품 등록 페이지 구현
12. express 기반 백엔드와 연결 구현

- Next.js를 사용해 서버 사이드 렌더링(SSR)과 정적 사이트 생성(SSG) 등 고급 기능을 구현합니다.
- **스프린트 미션 8부터** 시작하는 프론트엔드 내용을 포함하고 있어요.
- 만약 스프린트 미션 9부터 프론트엔드 코드를 React가 아닌 Next로 구현하고 싶다면 next 브랜치를 사용해요.
### 10.31

> _스프린트 미션 내 백엔드 요구사항은 [백엔드 레포지토리](https://github.com/codeit-sprint-fullstack/2-Sprint-mission-Be)의 브랜치에서 관리해주세요_
13. Next.js 개시

---
## 기술 스택

본 프로젝트는 [코드잇](https://www.codeit.kr)의 소유이며, 교육 목적으로만 사용됩니다. © 2024 Codeit. All rights reserved.
1. HTML
2. CSS
3. JavaScript
4. React
5. Next.js
16 changes: 16 additions & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { defineConfig, globalIgnores } from "eslint/config";
import nextVitals from "eslint-config-next/core-web-vitals";

const eslintConfig = defineConfig([
...nextVitals,
// Override default ignores of eslint-config-next.
globalIgnores([
// Default ignores of eslint-config-next:
".next/**",
"out/**",
"build/**",
"next-env.d.ts",
]),
]);

export default eslintConfig;
7 changes: 7 additions & 0 deletions jsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"compilerOptions": {
"paths": {
"@/*": ["./src/*"]
}
}
}
7 changes: 7 additions & 0 deletions next.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
/** @type {import('next').NextConfig} */
const nextConfig = {
/* config options here */
reactCompiler: true,
};

export default nextConfig;
27 changes: 27 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"name": "9-sprint-mission-fe",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "eslint"
},
"dependencies": {
"@tanstack/react-query": "^5.90.7",
"clsx": "^2.1.1",
"next": "16.0.1",
"react": "19.2.0",
"react-dom": "19.2.0",
"react-hook-form": "^7.66.0"
},
"devDependencies": {
"@tailwindcss/postcss": "^4",
"@tanstack/react-query-devtools": "^5.90.2",
"babel-plugin-react-compiler": "1.0.0",
"eslint": "^9",
"eslint-config-next": "16.0.1",
"tailwindcss": "^4"
}
}
Loading