Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[7주차] Team 포토그라운드 강다혜 & 이희원 미션 제출합니다. #4

Open
wants to merge 31 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
22a8e6c
🛠️ build: init project
hiwon-lee Dec 26, 2024
54ad5f3
Merge branch 'master' of https://github.com/hihi-hye/react-vote-20th
hiwon-lee Dec 26, 2024
8d759cb
🛠️ build: 관련 모듈 설치치
hiwon-lee Dec 26, 2024
28c7553
✨ feat: 회원가입 요소 구현현
hiwon-lee Dec 26, 2024
70d03ea
✨ feat: 필요한 컴퍼넌트 추가가
hiwon-lee Dec 26, 2024
b5890b4
📝 docs: assets추가가
hiwon-lee Dec 26, 2024
c362ca4
✨ feat: route연결결
hiwon-lee Dec 26, 2024
b7004ce
💄 ui: layout, style추가가
hiwon-lee Dec 26, 2024
ad9d384
📝 docs: 사용자 model추가가
hiwon-lee Dec 26, 2024
0abcdd2
✨ feat: mocks로 signup 기능 구현현
hiwon-lee Dec 26, 2024
18541c4
💡comment: data넘어온거 확인인
hiwon-lee Dec 29, 2024
1ae96aa
🚚 move: 파일위치이동동
hiwon-lee Dec 29, 2024
10d81f2
🚚 move: 지운파일복원원
hiwon-lee Dec 29, 2024
5bfe41b
🐛 fix: 파일 이동하면서 에러나는 부분 수정정
hiwon-lee Dec 29, 2024
6622ddc
🚚 move: 안쓰는 파일 삭제제
hiwon-lee Dec 29, 2024
92d2d72
✨ feat: 카드 컴퍼넌트 생성
hiwon-lee Dec 29, 2024
a6dd5e3
📝 docs: 데이터 추가가
hiwon-lee Dec 29, 2024
75737c3
✨ feat: 투표 절차 연결결
hiwon-lee Dec 29, 2024
16dc1a7
🚚 move: 드롭다운박스 이름 변경경
hiwon-lee Dec 29, 2024
322c725
💄 ui: 페이지 높이 수정
psst54 Jan 2, 2025
3afaadc
🐛 fix: Input 타입 수정
psst54 Jan 2, 2025
f3d0f1c
✨ feat: 회원가입
psst54 Jan 2, 2025
2d0d70d
✨ feat: 로그인
psst54 Jan 2, 2025
22a273c
💄 ui: 투표 페이지 UI
psst54 Jan 2, 2025
eaefd02
[fix] build 에러 수정
psst54 Jan 3, 2025
8ce8e1d
✨ feat: 투표 기능 (구현중)
psst54 Jan 3, 2025
faa7ff4
💄 ui: fe 투표 결과 받아오기
psst54 Jan 3, 2025
58d518d
✨ feat: BE 투표 및 결과 불러오기
psst54 Jan 3, 2025
03afe26
✨ feat: 데모데이 투표 및 결과 확인
psst54 Jan 3, 2025
f5dd01e
✨ feat: 에러처리리
hiwon-lee Jan 4, 2025
a915c8e
🐛 fix: server action 관련 에러 수정
psst54 Jan 4, 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
9 changes: 9 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
text eol=lf
*.js eol=lf
*.jsx eol=lf
*.ts eol=lf
*.tsx eol=lf
*.json eol=lf
*.html eol=lf
*.css eol=lf
*.scss eol=lf
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
14 changes: 10 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

현대 웹 개발에서는 REST API가 데이터 통신의 핵심으로 자리 잡으면서, 프론트엔드와 백엔드 간의 협업이 더욱 중요해졌습니다. 백엔드는 API를 통해 데이터를 제공하고, 프론트엔드는 이를 기반으로 사용자 경험을 책임집니다. 따라서 API를 잘 활용하고 백엔드 개발자와 원활히 소통하는 능력은 필수적인 스킬입니다.

이번 과제는 앞으로 팀 프로젝트에서 **실제로 백엔드와 협업하기 전 연습을 해보는 기회**입니다. Next.js를 활용해 **투표 기능**을 가진 애플리케이션을 제작하면서 백엔드와의 소통, 역할 분담, 데이터 흐름을 다루는 경험을 쌓아 보세요. 이 경험은 추후 팀 프로젝트에서 더욱 원활한 협력을 가능하게 할 것입니다.
이번 과제는 앞으로 팀 프로젝트에서 **실제로 백엔드와 협업하기 전 연습을 해보는 기회**입니다. Next.js를 활용해 **투표 기능**을 가진 애플리케이션을 제작하면서 백엔드와의 소통, 역할 분담, 데이터 흐름을 다루는 경험을 쌓아 보세요. 이 경험은 추후 팀 프로젝트에서 더욱 원활한 협력을 가능하게 할 것입니다.

여러분의 멋진 결과물을 기대하며 마지막 과제를 응원합니다. 화이팅! 🔥

Expand All @@ -26,32 +26,37 @@

### **기한**

- **2024년 1월 4일 토요일**까지 제출해주세요.(24.12.22 수정. 혼란드려서 죄송합니다)
- **2024년 1월 4일 토요일**까지 제출해주세요.(24.12.22 수정. 혼란드려서 죄송합니다)

---

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

1. **로그인 기능**

- 사용자는 아이디와 비밀번호를 입력하여 로그인할 수 있습니다.
- 로그인 시 JWT를 통해 인증을 처리합니다.
- 아이디 또는 비밀번호가 틀렸을 경우, 에러 메시지를 표시합니다.
- 로그아웃 기능을 구현합니다.

2. **투표 기능**

- 로그인한 사용자는 투표에 참여할 수 있습니다.
- 각 후보에 대한 투표 수를 실시간으로 확인할 수 있습니다.
- 사용자는 한 번만 투표할 수 있으며, 중복 투표를 방지합니다.

3. **후보 목록 조회**

- 모든 사용자는 후보자의 목록과 상세 정보를 확인할 수 있습니다.
- 후보자의 이름, 사진, 소개 등을 표시합니다.

4. **투표 결과 조회**

- 투표 종료 후, 모든 사용자는 최종 투표 결과를 확인할 수 있습니다.
- 각 후보자의 득표 수와 득표율을 시각적으로 표현합니다.

5. **반응형 디자인**

- 다양한 디바이스에서 최적의 사용자 경험을 제공하기 위해 반응형 디자인을 적용합니다.

6. **에러 처리**
Expand All @@ -63,15 +68,16 @@
### **디자인 참고**

다음의 리소스를 참고해 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)

19기 과제

- [비트버디](https://github.com/CEOS-Developers/react-vote-19th/pull/4)
- [TIG](https://github.com/CEOS-Developers/react-vote-19th/pull/6)
- [펫플레이트](https://github.com/CEOS-Developers/react-vote-19th/pull/7)


### **선택 사항**

Expand All @@ -82,4 +88,4 @@

## **마무리**

이번 과제는 단순히 기능 구현에 그치는 것이 아니라, **백엔드와의 협업 과정에 익숙해지고 실전 준비를
이번 과제는 단순히 기능 구현에 그치는 것이 아니라, \*\*백엔드와의 협업 과정에 익숙해지고 실전 준비를
21 changes: 21 additions & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import { dirname } from "path";
import { fileURLToPath } from "url";
import { FlatCompat } from "@eslint/eslintrc";

const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);

const compat = new FlatCompat({
baseDirectory: __dirname,
});

const eslintConfig = [
...compat.extends("next/core-web-vitals", "next/typescript"),
{
rules: {
...prettier.rules, // Prettier 규칙 추가
},
},
];

export default eslintConfig;
Comment on lines +1 to +21

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
import { dirname } from "path";
import { fileURLToPath } from "url";
import { FlatCompat } from "@eslint/eslintrc";
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const compat = new FlatCompat({
baseDirectory: __dirname,
});
const eslintConfig = [
...compat.extends("next/core-web-vitals", "next/typescript"),
{
rules: {
...prettier.rules, // Prettier 규칙 추가
},
},
];
export default eslintConfig;
import { dirname } from "path";
import { fileURLToPath } from "url";
import { FlatCompat } from "@eslint/eslintrc";
import prettierConfig from "eslint-config-prettier";
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const compat = new FlatCompat({
baseDirectory: __dirname,
});
const eslintConfig = [
...compat.extends("next/core-web-vitals", "next/typescript"),
{
rules: {
...prettierConfig.rules, // Prettier 규칙 추가
},
},
];
export default eslintConfig;

이렇게 코드를 변경해보시면 어떨까요? 그 전에 save dev 옵션으로 eslint-config-prettier 설치해주시는 것 잊지 마시구요!

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

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

export default nextConfig;
Loading