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주차] 아지토 미션 제출합니다. #8

Open
wants to merge 110 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 109 commits
Commits
Show all changes
110 commits
Select commit Hold shift + click to select a range
d4af542
Initial commit from Create Next App
CSE-pebble Jun 20, 2024
f24f899
Merge branch 'main' of https://github.com/team-azito/react-vote-19th
CSE-pebble Jun 20, 2024
4220454
Chore: 쓸데없는 파일 및 코드 삭제
CSE-pebble Jun 20, 2024
4589206
Chore: 파비콘 & 메타데이터 설정 및 절대경로 설정
CSE-pebble Jun 20, 2024
425c5e3
Chore: ESLint + Prettier + Husky & lint-staged 설정
CSE-pebble Jun 20, 2024
c787518
배포 테스트
youdame Jun 23, 2024
b7b721e
Fix : 배포 에러 해결 중
youdame Jun 23, 2024
5976316
이슈 템플릿 업로드
youdame Jun 23, 2024
8d0cd1c
테스트 중
youdame Jun 23, 2024
fec743a
Create deploy.yml
youdame Jun 23, 2024
5f0d16b
배포 문제 해결 중
youdame Jun 23, 2024
0e9c4f2
폴더 이름 변경
youdame Jun 23, 2024
e75480c
폴더 이름 변경
youdame Jun 23, 2024
ab2a47c
Chore: svgr webpack 설치 및 세팅
CSE-pebble Jun 23, 2024
8c3f04d
Merge branch 'main' of https://github.com/team-azito/react-vote-19th
CSE-pebble Jun 23, 2024
0b2934a
Style : 폰트 설정 완료
youdame Jun 23, 2024
7edcc79
Merge branch 'main' of https://github.com/team-azito/react-vote-19th
youdame Jun 23, 2024
0ee3e3a
Chore: 폴더 구조 잡기
CSE-pebble Jun 23, 2024
8af4a32
Merge branch 'main' of https://github.com/team-azito/react-vote-19th
CSE-pebble Jun 23, 2024
2612af6
Fix : 폰트 적용 안되는 문제 해결 중
youdame Jun 23, 2024
845e0fd
Merge branch 'main' of https://github.com/team-azito/react-vote-19th
youdame Jun 23, 2024
545d1f2
Style : 폰트 적용 테스트
youdame Jun 23, 2024
e9321ae
Chore: eslint 및 prettier 설정 추가
CSE-pebble Jun 23, 2024
459f99a
자잘한 수정
youdame Jun 23, 2024
0693437
Chore: 쓸데없는 주석 삭제 및 prettier 수정
CSE-pebble Jun 23, 2024
1eb8568
Merge branch 'main' of https://github.com/team-azito/react-vote-19th
CSE-pebble Jun 23, 2024
0a811ec
Chore: pxr 단위 설정
CSE-pebble Jun 23, 2024
e61b65d
Style: 색상 팔레트 설정
CSE-pebble Jun 23, 2024
2865dfa
Style : layout 스타일링
youdame Jun 23, 2024
699bfb4
Style: 전역 스타일 설정
CSE-pebble Jun 23, 2024
f62d8c2
Merge branch 'main' of https://github.com/team-azito/react-vote-19th
CSE-pebble Jun 23, 2024
ea41bb5
Feat : 인풋창 만들기 #1
youdame Jun 24, 2024
6d80ad0
Merge branch 'main' of https://github.com/team-azito/react-vote-19th …
youdame Jun 24, 2024
3c01a2b
Feat : 리액트 훅 폼 적용 #1
youdame Jun 24, 2024
93ddb62
Feat : 회원가입 유효성 확인 체크 구현 #1
youdame Jun 24, 2024
0cbcb8d
Chore: ESLint 변경
CSE-pebble Jun 24, 2024
7e2cb1a
Feat: Header 컴포넌트 완료 및 cva 설치 & tailwind border radius custom #2
CSE-pebble Jun 24, 2024
38835f6
Feat: 투표 메인 페이지 완료
CSE-pebble Jun 24, 2024
381dde2
Feat: 로그인 및 회원가입 버튼 링크 연결 및 Header cva 코드 수정
CSE-pebble Jun 24, 2024
e33aa0e
Fix: Header 위치 고정에 따른 padding-top 값 투표 공통 컴포넌트에 주는 것으로 수정
CSE-pebble Jun 24, 2024
8278044
Style: BigSelectBtn Disabled 색상 변경
CSE-pebble Jun 24, 2024
3cfb480
Feat: 파트장 투표 화면 퍼블리싱 완료
CSE-pebble Jun 24, 2024
e4dfa29
Feat: 데모데이 투표 화면 퍼블리싱
CSE-pebble Jun 24, 2024
8244f64
Feat: Header 로고에 링크 연결
CSE-pebble Jun 24, 2024
3b492a4
Edit: 결과보기 버튼은 항상 enabled로 변경
CSE-pebble Jun 24, 2024
29804bf
Feat : 파트 설정 인풋 구현 #1
youdame Jun 25, 2024
bd44286
Feat : 비밀번호 표시 창 구현 #1
youdame Jun 25, 2024
077486c
Feat : 버튼 컴포넌트 구현 및 프론트 유효성 검증 완료 #1
youdame Jun 25, 2024
7bce160
Feat : SelectInput 컴포넌트 구현 #1
youdame Jun 25, 2024
41235da
Feat : 팀 및 파트 선택 안할 시 에러 구현 #1
youdame Jun 25, 2024
dd8d551
Feat : 회원가입 로직 개발 #1
youdame Jun 25, 2024
6080dc1
Feat : 로그인 로직 구현 #1
youdame Jun 25, 2024
6af7889
Feat : 회원가입 api 에러 처리 완료 #1
youdame Jun 25, 2024
c9d3de4
Feat : 로그인 실패 로직 에러 구현 #1
youdame Jun 25, 2024
f4bb4ab
Feat : 토큰 빼오기 완료 #1
youdame Jun 25, 2024
e623339
Merge pull request #3 from team-azito/feat/issue#1
youdame Jun 25, 2024
da4ee09
Fix : 빌드 에러 해결 #1
youdame Jun 25, 2024
aea99b9
Merge branch 'feat/issue#1'
youdame Jun 25, 2024
55730b6
Feat : mixed content 에러 해결 중
youdame Jun 25, 2024
3d0e2f2
Fix : 에러 해결 중
youdame Jun 25, 2024
fd13e4e
에러 해결 중..
youdame Jun 25, 2024
10a1aa3
에러 해결 중
youdame Jun 25, 2024
fcd88f9
프록시 구현 중
youdame Jun 25, 2024
54e3fc0
Http 해결 중..
youdame Jun 25, 2024
02fa298
Fix : mixed error 해결 중
youdame Jun 25, 2024
4f85b0f
해결 .... 중.....
youdame Jun 25, 2024
e96f702
마지막..
youdame Jun 25, 2024
3b7fba0
Fix : 마지막 도전..
youdame Jun 25, 2024
31f139c
찐막 도전....
youdame Jun 25, 2024
9e9b470
로그인 인스턴스..
youdame Jun 25, 2024
7ae6199
Refactor : 로컬에서와 다른 url로 요청 보내게 설정
youdame Jun 25, 2024
4ced86f
Fix : url 오류 해결
youdame Jun 25, 2024
9a60dbb
Feat : 토큰 저장 로직 및 로딩 시 버튼 연타 못하게 막기 구현 #4
youdame Jun 25, 2024
b8dbf59
Merge pull request #5 from team-azito/feat/issue#4
youdame Jun 25, 2024
23dc9a3
Merge branch 'main' of https://github.com/team-azito/react-vote-19th …
CSE-pebble Jun 26, 2024
c91c92f
Style: 버튼 Disabled 색상 변경
CSE-pebble Jun 26, 2024
0b6593f
Add: 팀, FE, BE 데이터 추가
CSE-pebble Jun 26, 2024
17d129a
Docs: 데이터 수정
CSE-pebble Jun 26, 2024
88503c1
Feat: 공통 템플릿 생성 및 적용 & 투표창 일부 UI 추가
CSE-pebble Jun 26, 2024
e756174
Fix: 충돌 해결 과정에서 발생한 회원가입/로그인 UI 깨짐 문제 해결
CSE-pebble Jun 26, 2024
56d84a6
Style : border-radius 관련 수정
youdame Jun 26, 2024
377d2d6
Feat: 투표창 퍼블리싱 완료
CSE-pebble Jun 26, 2024
063bbb0
Feat: 투표 결과 화면 퍼블리싱
CSE-pebble Jun 26, 2024
f659c0a
Fix: 충돌 해결
CSE-pebble Jun 26, 2024
e778eca
Merge pull request #6 from team-azito/feat/issue#2
CSE-pebble Jun 26, 2024
a344a9f
Feat : 회원 정보 가져오기 구현 #7
youdame Jun 26, 2024
40e8eb9
Feat : 데모데이 투표 및 인증인가 페이지 border css 해결 #7
youdame Jun 26, 2024
0cdd085
Feat: 버튼 비활성화 시 클릭 이벤트 막기
CSE-pebble Jun 26, 2024
640750e
Feat: 파트장 투표 API 연결
CSE-pebble Jun 26, 2024
b6c5c74
Feat: 테스트 데이터 삭제 및 투표 결과 API 연결 완료
CSE-pebble Jun 26, 2024
661494b
Fix: FE, BE 투표 결과 다른 query key로 설정
CSE-pebble Jun 26, 2024
2859ff7
Edit: 유저 투표 여부에 따라 투표 버튼 disabled 되는 기능 삭제
CSE-pebble Jun 26, 2024
f5995f2
Feat: 로그인 시 유저 정보 API 연결
CSE-pebble Jun 26, 2024
2979495
Merge pull request #8 from team-azito/feat/issue#7
CSE-pebble Jun 26, 2024
f5302c8
Fix: 데이터 로딩 중일 때(isLoading) 처리
CSE-pebble Jun 26, 2024
f8aa9f9
Merge pull request #9 from team-azito/feat/issue#7
CSE-pebble Jun 26, 2024
a5a6c23
Fix: query key 잘못 입력한 것 수정
CSE-pebble Jun 26, 2024
5d893f4
컴포넌트 이동
youdame Jun 27, 2024
56bcbbb
Fix: 파트장 로그아웃 상태에서 투표 시 에러 처리
CSE-pebble Jun 27, 2024
fb0ebe7
Fix: 투표 결과 후보만 보이게 slice 처리
CSE-pebble Jun 27, 2024
a27d982
Feat: 로그아웃 기능 구현
CSE-pebble Jun 27, 2024
a0b2cb6
Merge pull request #10 from team-azito/feat/issue#7
CSE-pebble Jun 27, 2024
43d081e
Fix : 로그인 회원가입 시 헤더에 바로 유저정보 반영되게 수정 #12
youdame Jun 28, 2024
d3917ea
Fix : 로그인 상태 전역으로 관리 #12
youdame Jun 28, 2024
c151a19
Merge pull request #13 from team-azito/fix/issue#12
youdame Jun 28, 2024
c978c43
Fix : 엑세스토큰이 있을 때에만 데이터 패칭
youdame Jun 28, 2024
0a68fca
Fix: 빌드 에러 해결
youdame Jun 28, 2024
e21ab91
Feat : 투표 완료 시 투표 결과 창으로 이동 및 결과 바로 반영되게 수정
youdame Jun 28, 2024
1fc02a1
Fix : 데모데이 투표 시 투표 결과가 바로 반영되게 수정
youdame Jun 28, 2024
8b01ee5
Update README.md
youdame Jun 29, 2024
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
37 changes: 37 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
{
"env": {
"browser": true,
"es2021": true,
"node": true
},
// 어떤 규칙들과 설정으로 eslint를 사용할지 명시
"extends": [
"next",
"prettier",
"eslint:recommended",
"plugin:react/recommended", //ESLint의 내장되어있는 추천 설정을 사용
"plugin:react/jsx-runtime",
"plugin:@typescript-eslint/recommended" // 타입스크립트 전용 규칙을 추가적으로 사용할 수 있음
],
"parser": "@typescript-eslint/parser", // 타입스크립트용 eslint parser
"overrides": [],
"parserOptions": {
"ecmaVersion": "latest",
"sourceType": "module",
"project": "./tsconfig.json"
},
"plugins": ["react", "@typescript-eslint"],
"rules": {
"react/react-in-jsx-scope": "off", // JSX를 사용할 때 React가 일일이 import되지 않으면 에러(리액트 17 이후부터는 안해줘도 됨)-> off
"no-unused-vars": "off", // 사용하지 않는 변수가 있을 때 에러 -> off
"@typescript-eslint/no-unused-vars": "warn"
// "react/prop-types": "warn" // prop의 타입을 정의해주지 않으면 에러 -> warn
// "@typescript-eslint/no-explicit-any": "warn"
},
"settings": {
"react": {
"version": "detect"
}
},
"ignorePatterns": ["src/app/globals.css"]
}
19 changes: 19 additions & 0 deletions .github/ISSUE_TEMPLATE/feature.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: '💡 Feat'
description: '새로운 기능 추가 템플릿'
title: '[Feat] '
labels: 'feat'
body:
- type: textarea
attributes:
label: 📝 설명
description: 새로운 기능에 대해 설명해주세요.
placeholder: 기능에 대해서 적어주세요.
validations:
required: true
- type: textarea
attributes:
label: ✅ 체크사항
description: 주어진 기능에 대해서 체크박스를 만들어주세요.
placeholder: 기능에 대해서 나열해주세요.
validations:
required: true
18 changes: 18 additions & 0 deletions .github/ISSUE_TEMPLATE/fix.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: "🛠️ Fix"
description: "Fix 템플릿"
title: "[Fix] "
labels: "fix"
body:
- type: textarea
attributes:
label: 🐞 버그 설명
description: 버그에 대한 설명을 작성해 주세요.
validations:
required: true
- type: textarea
attributes:
label: 🧾 로그
description: 로그가 있으면 복붙해 주세요.
render: shell
validations:
required: false
17 changes: 17 additions & 0 deletions .github/ISSUE_TEMPLATE/refactor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: "♻️ Refactor"
description: "리팩토링 템플릿"
title: "[Refactor] "
labels: "refactor"
body:
- type: textarea
attributes:
label: ❓ 이유
description: 리팩토링을 진행한 이유를 설명해주세요.
validations:
required: true
- type: textarea
attributes:
label: ✅ 수정
description: 수정한 부분을 적어주세요.
validations:
required: true
14 changes: 14 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Copy link

Choose a reason for hiding this comment

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

풀리퀘 템플릿까지...!

Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
## 🕹️ 작업 내용

- [ ]
- [ ]

## 📋 리뷰 포인트

-
-

## 🔮 기타 사항

-
-
31 changes: 31 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: ci

on: [push, pull_request]

jobs:
run-lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: "20"

- name: Cache node modules
uses: actions/cache@v3
id: cache
with:
path: node_modules
key: npm-packages-${{ hashFiles('**/package-lock.json') }}

- name: Install the project dependencies
if: steps.cache.outputs.cache-hit == false
run: npm ci

- name: Build
run: npm run build

- run: echo '${{github.actor}}님 에러 확인 확인해주세요 ( っ •‌ᜊ•‌ )う'
34 changes: 34 additions & 0 deletions .github/workflows/deploy.yml
Copy link

Choose a reason for hiding this comment

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

아지토 팀은 항상 이런 기본 설정들(?)을 정말 잘 해주시는 거 같아요...! 👍

Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Deploy

on:
push:
branches: ['main']

jobs:
build:
runs-on: ubuntu-latest
container: pandoc/latex
steps:
- uses: actions/checkout@v2

- 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: youdame
destination-repository-name: react-vote-19th
user-email: ${{ secrets.EMAIL }}
commit-message: ${{ github.event.commits[0].message }}
target-branch: main

- name: Test get variable exported by push-to-another-repository
run: echo $DESTINATION_CLONED_DIRECTORY
36 changes: 36 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.js
.yarn/install-state.gz

# testing
/coverage

# next.js
/.next/
/out/

# production
/build

# misc
.DS_Store
*.pem

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

# local env files
.env*.local

# vercel
.vercel

# typescript
*.tsbuildinfo
next-env.d.ts
4 changes: 4 additions & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/usr/bin/env sh
. "$(dirname "$0")/_/husky.sh"

npx lint-staged
9 changes: 9 additions & 0 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"printWidth": 120,
"tabWidth": 2,
"singleQuote": false,
"trailingComma": "all",
"semi": true,
"endOfLine": "lf",
"plugins": ["prettier-plugin-tailwindcss"]
}
56 changes: 23 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,46 +1,36 @@
# react-vote-19th
This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).

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

안녕하세요! 프론트엔드 운영진 배성준입니다 👾 어느덧 마지막 스터디입니다.
First, run the development server:

이번 스터디는 각 팀의 백엔드 팀원들과 함께 진행하는 **합동 과제**입니다.
모던 웹에서 REST API가 주류로 떠오름에 따라 프론트엔드와 백엔드의 구분이 이전보다 명확해졌습니다. 주로 백엔드는 API 서버의 역할을, 프론트엔드는 이를 이용해 사용자에게 UI를 제공하는 역할로 웹이 분화되었습니다. 그 말은 곧, API 없이는 사용자에게 의미있는 서비스를 제공하기 힘들어진다는 것이겠죠. 여러분께서도 차후 팀 프로젝트를 진행하시면서 백엔드 개발자들과 API에 대해 소통할 일이 많아질 것입니다.
```bash
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
```

따라서 이번 과제는 백엔드 개발자들이 전달해준 `API`를 사용해서 구현해보는 미션입니다. 투표 서비스를 개발해 보는 것인데요. 백엔드 개발자와 함께 클라이언트 사이드에서 API를 조금 더 효율적으로 사용할 수 있는 방법에 대해 고민해 보고, 논의해 보는 시간을 가져 보시기 바랍니다.
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.

이번 미션도 화이팅입니다! 🔥
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/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.

### **미션 목표**
## Learn More

- REST API를 통한 서버와의 통신 방법을 이해합니다.
- async/await, Promise등 JavaScript의 비동기 처리를 이해합니다.
- API 문서를 통해 백엔드 개발자와 소통하는 방법을 익힙니다.
- 팀 내의 프론트엔드 개발자와 적절한 역할 분담을 통해 개발 효율을 높이는 방법에 대해 고민합니다.
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!

2024년 6월 26일 수요일
## 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.

- UI/UX에 대한 감각을 최대한 발휘해 디자인을 적용해 봅니다.
- `HTTPS`를 통해 서버와 통신합니다.
- 외의 사항은 [가이드 문서](https://sungjoonbae.notion.site/FE-BE-2d7ad673b78c4f1b8389708762627b7f)를 참고해주세요.

### **선택 사항**

- API Fetch는 어떤 방식을 사용하든 무방합니다 (Fetch API, axios 등)
- `Promise.then()` 보단 `async/await`를 사용해 보세요. 더 최신 스펙이랍니다.

## **링크 및 참고자료**

- [리액트 API 연동의 기본](https://react.vlpt.us/integrate-api/01-basic.html)
- [자바스크립트 - 동기(Synchronous)? 비동기(asynchronous)?](https://ljtaek2.tistory.com/142)
- [async와 await, 비동기를 동기코드 처럼](https://kamang-it.tistory.com/entry/JavaScript11async%EC%99%80-await-%EB%B9%84%EB%8F%99%EA%B8%B0%EB%A5%BC-%EB%8F%99%EA%B8%B0%EC%BD%94%EB%93%9C-%EC%B2%98%EB%9F%BC)
- [REST API 제대로 알고 사용하기](https://meetup.toast.com/posts/92)
- [axios란? (feat. Fetch API)](https://velog.io/@shin6403/React-axios%EB%9E%80-feat.-Fetch-API)
- [Postman, 어렵지 않게 사용하기](https://gngsn.tistory.com/26)
Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) 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 ./react-vote-19th/* ./output
cp -R ./output ./react-vote-19th/
21 changes: 21 additions & 0 deletions next.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/** @type {import('next').NextConfig} */
const nextConfig = {
webpack: (config) => {
config.module.rules.push({
test: /\.svg$/,
use: ["@svgr/webpack"],
});

return config;
},
async rewrites() {
return [
{
source: "/api/v1/:path*", // 모든 /api/v1/* 요청을 프록시
destination: "http://43.200.141.226/api/v1/:path*", // 실제 API 경로
},
];
},
};

export default nextConfig;
Loading