Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
136 commits
Select commit Hold shift + click to select a range
c42af38
init: 프로젝트 초기 설정
May 13, 2026
ba14fe9
Merge pull request #1 from CEOS-IPX/feat/signup
GirimNam May 13, 2026
1f0ef78
chore: 배포 및 preview 설정
May 13, 2026
660ea22
Merge branch 'master' of https://github.com/CEOS-IPX/next-vote-23rd
May 13, 2026
4ba0055
doc: 배포 문서 버전 수정
May 13, 2026
547e979
doc: issue template 수정
May 13, 2026
4071847
chore: 불필요 파일 삭제
May 13, 2026
348a0a3
feat: css 설정
May 13, 2026
3dbf1e1
feat: 헤더 네비게이션 제외 로그인 페이지 생성
May 13, 2026
96db55c
feat: auth layout 설정
May 14, 2026
c058743
Merge pull request #3 from CEOS-IPX/feat/login
minsxo May 14, 2026
cd22b15
feat: 팀/멤버 데이터 추가
minsxo May 14, 2026
17778de
feat: 회원가입 페이지 추가
minsxo May 14, 2026
d3756d7
feat: 회원가입 파트 선택 탭 추가
minsxo May 14, 2026
076a2c6
feat: 팀/이름 드롭다운 추가
minsxo May 14, 2026
754828c
feat: 회원가입 입력 필드 추가
minsxo May 14, 2026
2a8da5b
feat: 회원가입하기 버튼 추가
minsxo May 14, 2026
cb60fd9
feat: 이메일 유효성 검증 추가
minsxo May 14, 2026
1cbded1
feat: 비밀번호 일치 검증 추가
minsxo May 14, 2026
ef4db49
refactor: 입력 필드 간격/에러 메시지 레이아웃 통일
minsxo May 14, 2026
8559a0e
chore: pnpm 버전 업데이트
May 14, 2026
8c1dc02
feat: NavBar 생성
May 14, 2026
9be6093
feat: react-hook-form + zod 도입
minsxo May 14, 2026
88b6b95
Merge pull request #5 from CEOS-IPX/feat/signup
GirimNam May 14, 2026
d600fbe
Merge branch 'dev' into feat/login
May 14, 2026
a1eeea2
chore: tailwind 버전 세팅 업데이트
May 14, 2026
5b4de1d
chore: tailwind px 값 통일
May 14, 2026
ff90549
feat: zod 기반 로그인 폼 유효성 검증 추가
May 14, 2026
c8ec2a9
chore: label 태그 추가
May 15, 2026
18b1a4b
feat: 메인페이지 + 반응형 제작
May 15, 2026
2f3d028
feat: 모바일 반응형 네비바 추가
May 15, 2026
f94073f
feat: 파트장 투표 페이지 추가
minsxo May 16, 2026
697d707
feat: 데모데이 투표 페이지 추가
minsxo May 16, 2026
f4ff9e1
feat: MEMBERS 페이지 추가
minsxo May 16, 2026
90c4174
refactor: 회원가입 페이지 단위 rem으로 환산
minsxo May 16, 2026
b71a0c1
fix: 반응형 수정
May 16, 2026
dd31563
Merge pull request #8 from CEOS-IPX/feat/vote
GirimNam May 16, 2026
64fdacc
Merge pull request #9 from CEOS-IPX/feat/members
GirimNam May 16, 2026
c2987e5
Merge branch 'dev' into feat/login
May 16, 2026
1e19ce2
style: 회원가입 폼 컨테이너 반응형 적용
minsxo May 16, 2026
bff7229
style: 회원가입 파트 탭 반응형 적용
minsxo May 16, 2026
823a596
Merge pull request #10 from CEOS-IPX/feat/login
minsxo May 16, 2026
b1ced67
style: 모바일에서 팀/이름 라벨 숨김
minsxo May 16, 2026
cc15fdc
style: 회원가입 입력 필드 반응형 적용
minsxo May 16, 2026
821a410
fix: 모바일 드롭다운 placeholder 폰트 조정
minsxo May 16, 2026
b9de3ef
feat: 로그인 토큰 관련 기능 생성
May 16, 2026
dedd298
Merge branch 'dev' into feat/signup
minsxo May 16, 2026
ec94c65
feat: 데모데이 페이지 배경 그라데이션
minsxo May 16, 2026
8879bae
feat: 데모데이 팀 목록 및 버튼 생성
minsxo May 16, 2026
7004a94
feat: 데모데이 투표하기 버튼 추가
minsxo May 16, 2026
ddc31d7
feat: MEMBERS 페이지 UI 구현
May 16, 2026
78b2584
Merge pull request #11 from CEOS-IPX/feat/signup
GirimNam May 16, 2026
de7a1c9
Merge branch 'dev' into feat/login
May 16, 2026
f090493
Merge pull request #12 from CEOS-IPX/feat/login
GirimNam May 16, 2026
7aee0e0
feat: 프론트엔드 파트장 투표 명단
minsxo May 16, 2026
d987b6f
feat: 파트장 투표하기 버튼 추가
minsxo May 16, 2026
bf97099
style: 데모데이 페이지 반응형 적용
minsxo May 16, 2026
ddbdb4a
style: 파트장 페이지 반응형 적용
minsxo May 16, 2026
6323bac
Merge pull request #13 from CEOS-IPX/feat/vote
GirimNam May 16, 2026
186f353
Merge pull request #14 from CEOS-IPX/dev
GirimNam May 16, 2026
96351db
feat: 로그아웃 기능 추가
May 16, 2026
6398896
Merge pull request #15 from CEOS-IPX/feat/login
GirimNam May 16, 2026
43a35bf
feat: about us 페이지 생성
May 16, 2026
ba0678f
Merge pull request #17 from CEOS-IPX/feat/login
GirimNam May 16, 2026
767d705
style: FE 파트장 투표 페이지 타이틀 및 투표 버튼 UI 변경
minsxo Jun 21, 2026
138267d
feat: 파트장 투표 외부 클릭 시 선택 해제 및 선택 효과 개선
minsxo Jun 21, 2026
edc0baa
refactor: 파트장 투표 페이지 part 기반 단일 페이지로 통합
minsxo Jun 21, 2026
476b3d7
feat: 데모데이 투표 페이지 타이틀 추가
minsxo Jun 21, 2026
7661bae
fix: 데모데이 투표 팀 선택 표시 잘림 수정
minsxo Jun 21, 2026
9471c6c
style: 데모데이 팀 리스트 레이아웃 조정
minsxo Jun 21, 2026
e202297
feat: 데모데이 투표 외부 클릭 시 선택 해제
minsxo Jun 21, 2026
1ea5878
feat: 투표 진입 페이지 생성
minsxo Jun 21, 2026
af7f656
feat: 투표 선택 페이지에 파트장 진입 버튼 추가
minsxo Jun 21, 2026
952d08f
feat: 투표 선택 페이지에 데모데이 진입 버튼 추가
minsxo Jun 21, 2026
4c688ac
feat: 멤버 페이지 파트 선택 UI 구현
minsxo Jun 21, 2026
095a283
Merge pull request #18 from CEOS-IPX/feat/vote
GirimNam Jun 21, 2026
fe6ee1b
feat: 멤버 페이지 타이틀 추가
minsxo Jun 21, 2026
2c31b53
feat: MemberCard 컴포넌트 구현
minsxo Jun 21, 2026
d9aca46
feat: 멤버 데이터 추가 및 파트별 카드 렌더링
minsxo Jun 21, 2026
7725be8
feat: 투표 결과 페이지 동적 라우트 추가
minsxo Jun 21, 2026
f884ce6
refactor: 멤버 페이지를 dev members 구조에 맞춰 정리
minsxo Jun 21, 2026
cd89154
Merge branch 'dev' into feat/members
minsxo Jun 21, 2026
15be69c
feat: RankBadge 컴포넌트 추가
minsxo Jun 21, 2026
f1a7c6a
feat: VoteCount 컴포넌트 추가
minsxo Jun 21, 2026
49a37a9
feat: 결과 페이지 순위별 득표 박스 추가
minsxo Jun 21, 2026
58f4910
feat: 결과 페이지 배경 추가
minsxo Jun 21, 2026
4278449
feat: 결과 페이지 메인 이동 버튼 추가
minsxo Jun 21, 2026
24ebd24
feat: 투표하기 버튼 클릭 시 결과 페이지로 이동
minsxo Jun 21, 2026
98a56c3
Merge pull request #21 from CEOS-IPX/feat/vote-result
GirimNam Jun 22, 2026
67cb35a
Merge pull request #19 from CEOS-IPX/feat/members
GirimNam Jun 22, 2026
3182c1b
chore: svg 파일 이름 통일 및 테일윈드 스케일 통일
Jun 22, 2026
a8e63a3
Merge branch 'dev' into feat/login
Jun 22, 2026
26eef8e
chore: username-> email로 변경
Jun 22, 2026
3b47901
feat: 로그인 api 연동
Jun 22, 2026
51569b2
chore: 파일 이름 중복 수정
Jun 22, 2026
f3faeb1
Merge pull request #22 from CEOS-IPX/feat/login
minsxo Jun 22, 2026
6d7c099
fix: Members 페이지 중복 제거 및 반응형 설정
Jun 22, 2026
944e268
chore: 투표 페이지 글자 조정
Jun 22, 2026
290c725
chore: 세로 스크롤바 hidden 설정
Jun 22, 2026
94b220e
Merge pull request #23 from CEOS-IPX/feat/vote
minsxo Jun 22, 2026
08d6c67
feat: 데모데이, 파트장 투표 api 연동
Jun 23, 2026
0f0be8a
fix: use client 추가
Jun 23, 2026
5edf662
Merge pull request #24 from CEOS-IPX/feat/vote
minsxo Jun 23, 2026
504e1b1
feat: 회원가입 API 함수 추가
minsxo Jun 23, 2026
e28e0a7
feat: 회원가입 폼 제출 시 API 연동 및 에러 처리
minsxo Jun 23, 2026
c6dcc6e
fix: signup 요청이 baseURL을 사용하도록 api 인스턴스로 교체
minsxo Jun 23, 2026
5e411cc
feat: 후보 목록 조회 API 함수 추가
minsxo Jun 23, 2026
b05eb6d
feat: 회원가입 이름 dropdown을 후보 목록 API 연동
minsxo Jun 23, 2026
c9473ac
refactor: auth.ts 미사용 코드 제거 및 api 인스턴스로 통일
minsxo Jun 23, 2026
aa2b6f0
fix: 토큰 재발급 요청에 baseURL 적용
minsxo Jun 23, 2026
d954939
fix: 이메일 유효성 검사를 zod 내장 검증으로 교체
minsxo Jun 23, 2026
3d0cb98
feat: proxy -> 비로그인 시 특정 페이지 접근 제한 모달 추가
Jun 24, 2026
7bb02f5
refactor: 투표 시 에러 모달창 알림으로 변경
Jun 24, 2026
7fdbe3f
fix: U002/U005 에러를 member 필드 에러로 표시
minsxo Jun 24, 2026
8819791
Merge pull request #26 from CEOS-IPX/feat/signup
minsxo Jun 24, 2026
56acc65
Merge pull request #27 from CEOS-IPX/feat/vote
minsxo Jun 24, 2026
cd96132
fix: U001~U005 백엔드 에러 각 필드 아래에 표시
minsxo Jun 24, 2026
0463d8e
feat: 회원가입 성공 시 완료 모달 표시
minsxo Jun 24, 2026
923f7ec
Merge pull request #28 from CEOS-IPX/feat/signup
GirimNam Jun 24, 2026
4632207
feat: 로그인 api 연동 완료
Jun 25, 2026
88a7439
chore:: MEMBERS 페이지 비로그인시에도 열람가능하게 수정
Jun 26, 2026
146b162
feat: 투표 페이지 후보군 조회 api 추가
Jun 26, 2026
934fac6
fix: 파트별로 members 페이지 초기 파트 설정되도록 분기
Jun 26, 2026
9d5404d
feat: 투표 완료자 바로 투표 결과 화면으로 이동하도록 수정
Jun 26, 2026
dc6f480
chore: 스크롤바 숨김 처리
Jun 26, 2026
9dc9c4d
Merge pull request #29 from CEOS-IPX/feat/vote
minsxo Jun 26, 2026
83b30e9
feat: 결과 페이지 반응형 레이아웃 적용
minsxo Jun 27, 2026
907641e
Merge pull request #30 from CEOS-IPX/feat/vote-result
GirimNam Jun 27, 2026
4cb8022
feat: about us 페이지 정보 수정 및 완료
Jun 27, 2026
1c5fb35
fix: MEMBERS 페이지 로그인 인증 모달 다시 추가
Jun 27, 2026
c472dee
chore: 투표 결과 페이지 수정
Jun 27, 2026
eb46ea1
Merge pull request #31 from CEOS-IPX/feat/etc
GirimNam Jun 27, 2026
5a433c9
fix: login 페이지 suspense 추가
Jun 27, 2026
cf51e64
Merge pull request #33 from CEOS-IPX/feat/etc
GirimNam Jun 27, 2026
9484087
Merge pull request #32 from CEOS-IPX/dev
GirimNam Jun 27, 2026
0373f3a
fix: localStorage 의존성 문제 해결
Jun 27, 2026
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/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
name: 기능 요청
about: 새로운 기능 추가 또는 개선 사항을 작성합니다.
title: "[FEAT] "
labels: enhancement
assignees: ""
---

## 📌 작업 내용

<!-- 어떤 작업을 할 예정인지 간단히 설명해주세요. -->

-

## ✅ 할 일

<!-- 해야 할 일을 체크리스트로 작성해주세요. -->

- [ ]
- [ ]
- [ ]

## 🎨 참고 사항

<!-- 디자인, API, 참고 링크, 주의할 점 등이 있다면 작성해주세요. -->

-
45 changes: 45 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
## 📌 작업 내용

<!-- 이번 PR에서 작업한 내용을 간단히 적어주세요. -->

-

## ✅ 변경 사항

- [ ] 새로운 기능 추가
- [ ] 버그 수정
- [ ] 코드 개선 및 수정
- [ ] 문서 작성 및 업데이트
- [ ] 배포 관련 수정
- [ ] 브랜치 관련 수정
- [ ] 기타:

## 🔗 관련 이슈

<!-- 예: Closes #12 / Related to #12 -->
<!-- 반드시 이슈와 같은 번호여야 함. -->

Closes #

## 🧪 체크리스트

- [ ] 제가 작성한 코드를 리뷰했습니다.
- [ ] 문서에 변경 사항을 반영했습니다.
- [ ] 새로운 경고를 생성하지 않습니다.
- [ ] 새로운 기능이나 수정 사항이 기존 테스트와 충돌하지 않음을 확인했습니다.

## 📸 스크린샷

<!-- UI 변경이 있다면 스크린샷을 첨부해주세요. 없으면 '없음'이라고 적어주세요. -->

없음

## 💬 리뷰 요청 사항

<!-- 특별히 봐줬으면 하는 부분이 있다면 적어주세요. -->

-

## 기타

-
32 changes: 32 additions & 0 deletions .github/workflows/deploy.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Deploy

on:
push:
branches: ["master"]

jobs:
build:
runs-on: ubuntu-latest

container: pandoc/latex

steps:
- uses: actions/checkout@v4
- name: Install mustache (to update the date)
run: apk add ruby && gem install mustache
- name: creates output
run: sh ./build.sh
- name: Pushes to another repository
id: push_directory
uses: cpina/github-action-push-to-another-repository@main
env:
API_TOKEN_GITHUB: ${{ secrets.AUTO_ACTIONS }}
with:
source-directory: "output"
destination-github-username: GirimNam
destination-repository-name: next-vote-23rd
user-email: ${{ secrets.EMAIL }}
commit-message: ${{ github.event.commits[0].message }}
target-branch: master
- name: Test get variable exported by push-to-another-repository
run: echo $DESTINATION_CLONED_DIRECTORY
43 changes: 43 additions & 0 deletions .github/workflows/preview.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Preview

on:
pull_request:
branches: ["master"]

jobs:
vercel-preview:
runs-on: ubuntu-latest

env:
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}

steps:
- uses: actions/checkout@v4
- name: Install Vercel CLI
run: npm install --global vercel@latest && npm install --global pnpm
- name: Get Vercel Environment Variables
run: vercel pull --yes --environment=preview --token=${{ secrets.VERCEL_TOKEN }}
- name: Build Project Artifacts
run: vercel build --token=${{ secrets.VERCEL_TOKEN }}
- name: Deploy Project Artifacts to Vercel
id: deploy

run: |

vercel deploy --prebuilt --token=${{ secrets.VERCEL_TOKEN }} > vercel-output.txt
echo "preview_url=$(cat vercel-output.txt)" >> $GITHUB_OUTPUT

- name: Comment PR with Preview URL
uses: thollander/actions-comment-pull-request@v2
with:
message: |
✅ PREVIEW ${{ steps.deploy.outputs.preview_url }}

permissions:
contents: read
pages: write
deployments: write
id-token: write
issues: write
pull-requests: write
42 changes: 42 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# 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
.env*.local
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"css.lint.unknownAtRules": "ignore"
}
101 changes: 23 additions & 78 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,91 +1,36 @@
# next-vote-23rd
This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app).

## **서론**
## Getting Started

안녕하세요! 프론트엔드 운영진 원채영입니다. 🍀
First, run the development server:

벌써 마지막 과제에 도달했네요. 이번 스터디의 마지막 과제는 특별히 **백엔드 팀원들과 함께하는 협업 과제**로 준비했습니다!
```bash
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
```

현대 웹 개발에서는 REST API 기반의 데이터 통신이 핵심이 되면서, 프론트엔드와 백엔드 간의 협업이 더욱 중요해지고 있습니다. 백엔드는 API를 통해 데이터를 제공하고, 프론트엔드는 이를 바탕으로 사용자 경험을 구현합니다. 따라서 API를 이해하고 활용하는 능력, 그리고 백엔드 개발자와 원활하게 소통하는 경험은 프론트엔드 개발자에게 꼭 필요한 역량입니다.
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.

이번 과제는 앞으로 진행될 팀 프로젝트에 앞서, 실제 협업 방식을 미리 경험해보는 연습 과정이라고 생각해주시면 좋을 것 같습니다. Next.js를 활용해 **투표 기능이 포함된 애플리케이션**을 제작하며, 백엔드와의 소통 방식, 역할 분담, 데이터 흐름 등을 직접 경험해보세요!
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.

이번 과제를 통해 단순히 기능 구현을 넘어, 함께 서비스를 만들어가는 협업 경험까지 얻어가셨으면 좋겠습니다.
This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.

여러분의 멋진 결과물을 기대하겠습니다. 마지막 과제까지 모두 화이팅입니다! 🔥
## Learn More

---
To learn more about Next.js, take a look at the following resources:

## **과제**
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.

### **목표**
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome!

- REST API를 활용하여 서버와의 통신 방식을 이해합니다.
- JavaScript의 비동기 처리 방식(`async/await`, Promise)을 익힙니다.
- API 문서를 바탕으로 백엔드와 소통하는 방법을 학습합니다.
- 팀 내 협업을 통해 효율적인 역할 분담을 고민하고 적용합니다.
## Deploy on Vercel

---
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.

### **기한**

- **2026년 5월 16일 토요일**까지 1차 필수 구현 사항이 적용된 중간 결과물을 제출해주세요.

---

### **1차 필수 구현 사항**

1. **프로젝트 세팅**
- Next.js의 특성을 고려하여 효과적인 폴더 구조를 고민해 봅니다.
- API 통신, 스타일링, 전역 상태 관리 및 기타 라이브러리 등을 팀원과 상의하여 세팅합니다.
- **Github organization을 사용합니다.**
2. **퍼블리싱**
- 프로젝트에 필요한 모든 화면을 퍼블리싱합니다.
- 다양한 디바이스에서 최적의 사용자 경험을 제공하기 위해 반응형 디자인을 적용합니다.
3. **로그인 기능**
- 사용자는 아이디와 비밀번호를 입력하여 로그인할 수 있습니다.
- 로그인 시 JWT를 통해 인증을 처리합니다.
- 아이디 또는 비밀번호가 틀렸을 경우, 에러 메시지를 표시합니다.
- 로그아웃 기능을 구현합니다.
- **백에서 서버 배포가 안 되었을 경우**에는 다음 주로 넘겨도 괜찮습니다.


### **2차 필수 구현 사항**

1. **투표 기능**
- 로그인한 사용자는 투표에 참여할 수 있습니다.
- 각 후보에 대한 투표 수를 실시간으로 확인할 수 있습니다.
- 사용자는 한 번만 투표할 수 있으며, 중복 투표를 방지합니다.
2. **후보 목록 조회**
- 모든 사용자는 후보자의 목록과 상세 정보를 확인할 수 있습니다.
- 후보자의 이름, 사진, 소개 등을 표시합니다.
3. **투표 결과 조회**
- 투표 종료 후, 모든 사용자는 최종 투표 결과를 확인할 수 있습니다.
- 각 후보자의 득표 수와 득표율을 시각적으로 표현합니다.
4. **에러 처리**
- 서버 오류, 네트워크 문제 등 다양한 에러 상황에 대한 처리를 구현합니다.
- 사용자에게 이해하기 쉬운 에러 메시지를 제공합니다.

---

### **디자인 참고**

다음의 리소스를 참고해 UI/UX를 개선해보세요:

- [디자인 레퍼런스1](https://www.figma.com/design/7xoPYTjMHcwPk2yl92Eynx/%ED%98%91%EB%8F%99%EA%B3%BC%EC%A0%9C-%EB%A0%88%ED%8D%BC%EB%9F%B0%EC%8A%A4?node-id=0-1&node-type=canvas)
- [디자인 레퍼런스2](https://www.figma.com/design/XpKkyWcguIFY9QzWWJHOyL/%ED%98%91%EB%8F%99%EA%B3%BC%EC%A0%9C-%EB%A0%88%ED%8D%BC%EB%9F%B0%EC%8A%A4?node-id=0-1)
- [디자인 레퍼런스3](https://www.figma.com/design/12WK4MEhjwNmt89HkRu8Gp/%EB%B0%94%EB%A6%AC%EB%B0%94%EB%A6%AC-%ED%88%AC%ED%91%9C)
- [디자인 레퍼런스4](https://www.figma.com/design/qsTGeBRrKWiWE04eVOTFQ9/CEOS-CupfeeDeal-Vote?node-id=38-503&p=f&t=sM5p1Gw4hA5G5H5D-0)

이전 기수 과제

- [CupfeeDeal](https://github.com/CEOS-Developers/next-vote-20th/pull/6)
- [하니홈](https://github.com/CEOS-Developers/next-vote-21th/pull/5)
- [모앤디](https://github.com/CEOS-Developers/next-vote-22nd/pull/8)
- [스토릭스](https://github.com/CEOS-Developers/next-vote-22nd/pull/11)

### **선택 사항**

- API 요청 방식은 자유롭게 선택 가능 (예: Fetch API, axios 등).
- 최신 자바스크립트 스타일에 익숙해지기 위해 `Promise.then()` 대신 `async/await`를 사용해 보세요.
- 페이지 접근 권한 관리와 로그인 상태 검증을 **proxy.ts**(구 middleware.ts)를 활용해 서버 단(Proxy)에서 미리 처리해 보세요! (참고자료: [Next.js proxy](https://nextjs.org/docs/app/getting-started/proxy))
Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.
5 changes: 5 additions & 0 deletions build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/sh
cd ../
mkdir output
cp -R ./next-vote-23rd/* ./output
cp -R ./output ./next-vote-23rd/
18 changes: 18 additions & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import { defineConfig, globalIgnores } from "eslint/config";
import nextVitals from "eslint-config-next/core-web-vitals";
import nextTs from "eslint-config-next/typescript";

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

export default eslintConfig;
8 changes: 8 additions & 0 deletions next.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import type { NextConfig } from "next";

const nextConfig: NextConfig = {
/* config options here */
reactCompiler: true,
};

export default nextConfig;
32 changes: 32 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"name": "next-vote-23rd",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "eslint"
},
"dependencies": {
"@hookform/resolvers": "^5.2.2",
"axios": "^1.18.0",
"next": "16.2.6",
"react": "19.2.4",
"react-dom": "19.2.4",
"react-hook-form": "^7.75.0",
"zod": "^4.4.3",
"zustand": "^5.0.14"
},
"devDependencies": {
"@tailwindcss/postcss": "^4",
"@types/node": "^20",
"@types/react": "^19",
"@types/react-dom": "^19",
"babel-plugin-react-compiler": "1.0.0",
"eslint": "^9",
"eslint-config-next": "16.2.6",
"tailwindcss": "^4",
"typescript": "^5"
}
}
Loading