Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
c5d2433
Update issue templates
jaeml06 Dec 11, 2024
4f9b755
docs: 파일명 수정
jaeml06 Dec 11, 2024
1077554
docs: PR 템플릿 생성 (#2)
i-meant-to-be Dec 11, 2024
c256eab
docs: 자동 issue 설정 할당
jaeml06 Dec 11, 2024
86ba423
docs: 불필요한 주석 제거
jaeml06 Dec 11, 2024
3a398ce
docs: 이슈 프로젝트 권한 추가
jaeml06 Dec 11, 2024
a09552b
docs: 자동할당 로직 변경
jaeml06 Dec 11, 2024
1a2bd61
feat: 권한 문제로 자동 Project할당 제거
jaeml06 Dec 11, 2024
b14def3
Merge pull request #4 from debate-timer/docs/#3
jaeml06 Dec 11, 2024
3aecdce
docs: PR 자동할당 yml 작성
jaeml06 Dec 11, 2024
53e4222
docs: 불필요한 Project 정보 제거
jaeml06 Dec 11, 2024
958b854
docs: Discord comment 알림 yml 작성
jaeml06 Dec 11, 2024
7eedbff
chore: 프로젝트 초기 세팅
jaeml06 Dec 11, 2024
be406c7
Merge pull request #6 from debate-timer/docs/#5
jaeml06 Dec 12, 2024
1e515d1
Merge pull request #8 from debate-timer/docs/#7
jaeml06 Dec 12, 2024
5bb7231
Merge pull request #10 from debate-timer/chore/#9
jaeml06 Dec 12, 2024
f0ec251
chore: prettier 설정 추가
jaeml06 Dec 14, 2024
e47f6e1
feat: 3개의 영역으로 구분된 header(StickyTriSectionHeader) 구현
jaeml06 Dec 15, 2024
f3cf7bc
feat: 하단에 고정되어 있는 footer wrapper 구현
jaeml06 Dec 15, 2024
9491c2a
feat: main 레이아웃 구현
jaeml06 Dec 15, 2024
a834764
feat: 중첩 컴포넌트로 기본 레이아웃 구현
jaeml06 Dec 15, 2024
1fe9227
design: layout의 ContentContanier 가운데 정렬 추가
jaeml06 Dec 19, 2024
2833be3
design: layout의 ContentContanier padding 추가
jaeml06 Dec 19, 2024
80d0a4b
feat: PropsAndConsTitle 구현
jaeml06 Dec 19, 2024
7a66d75
feat: TimerCreationButton 구현
jaeml06 Dec 19, 2024
14eb53b
feat: 테이블 타입 작성
jaeml06 Dec 19, 2024
af61a30
feat: 초를 분, 초로 포맷팅하는 함수 구현
jaeml06 Dec 19, 2024
aa83642
feat: DebatePanel 구현
jaeml06 Dec 19, 2024
075b540
feat: 테이블 구성 페이지 초기 UI rngus
jaeml06 Dec 19, 2024
9c32cff
feat: Pretendard 웹폰트 추가
jaeml06 Dec 19, 2024
22a4968
Merge pull request #13 from debate-timer/chore/#12
jaeml06 Dec 19, 2024
896848c
chore: storybook 설정 추가
jaeml06 Dec 19, 2024
ff315d6
test: DebatePanel 스토리 북 작성
jaeml06 Dec 19, 2024
9ce7ed2
test: PropsAndConsTitle 스토리북 테스트 작성
jaeml06 Dec 19, 2024
da2e051
test: TimerCreationButton 스토리북 테스트 작성
jaeml06 Dec 19, 2024
c339067
Merge pull request #14 from debate-timer/feat/#11
jaeml06 Dec 20, 2024
538cb3f
fix: 파일명에 불필요한 공백 제거
jaeml06 Dec 22, 2024
d1e1d04
Merge pull request #19 from debate-timer/fix/#18
jaeml06 Dec 22, 2024
9816577
[FEAT] 페이지 라우팅 적용 (#22)
eunwoo-levi Dec 22, 2024
3f3901d
[FEAT] 타이머 박스 생성 모달 구현 (#17)
jaeml06 Dec 23, 2024
714f24b
[FEAT] 로그인 페이지 구현 (#24)
eunwoo-levi Dec 24, 2024
8d8c6e8
chore: lint와 test를 넣은 CI yml 파일 작성 (#27)
jaeml06 Dec 25, 2024
e271b4c
[FEAT] 테이블 목록화면 구현 (#26)
eunwoo-levi Dec 26, 2024
349b5ff
[TEST] 로그인 페이지 Storybook 테스트코드 구현 (#31)
eunwoo-levi Dec 26, 2024
befc920
[FIX] 타임 테이블 구성 페이지 피드백 사항 반영 (#29)
jaeml06 Dec 27, 2024
c88c5ee
[TEST] 테이블 목록 컴포넌트 Storybook 테스트코드 구현 (#35)
eunwoo-levi Dec 29, 2024
c1b06a4
[FEAT] 테이블 조회 화면 구현 (#34)
jaeml06 Dec 29, 2024
ce05abf
[TEST] 로그인 및 테이블 조회 컴포넌트 테스트코드 구현 (#37)
eunwoo-levi Dec 29, 2024
3612043
[CHORE] API 처리를 위해 패키지 추가 (#39)
i-meant-to-be Jan 3, 2025
5d6436f
[FEAT] 테이블 수정 및 삭제 구현 (#44)
eunwoo-levi Jan 5, 2025
d841a28
[FEAT] 타임박스에 수정 및 삭제 UI 추가 (#42)
jaeml06 Jan 6, 2025
8d84908
[FEAT] API 요청 관련 기능 구현 (#45)
i-meant-to-be Jan 7, 2025
c325a1a
[FEAT] 타임박스의 수정을 드래그앤드롭으로 변경하는 기능 구현 (#47)
jaeml06 Jan 9, 2025
7adf6c8
[CHORE] storybook에 전역적인 decorators 설정 추가 (#50)
jaeml06 Jan 9, 2025
27e6286
[FIX] Mock Handler 파일에서 타입 에러 해결 (#54)
eunwoo-levi Jan 9, 2025
61f8ada
[CHORE] VS Code 작업 영역에 대한 설정 파일 추가 #62
i-meant-to-be Jan 15, 2025
8cc9fd4
[FEAT] 타이머 화면 구현 (#58)
i-meant-to-be Jan 15, 2025
11d77c2
[FEAT] `ErrorBoundary` 도입 (#65)
i-meant-to-be Jan 17, 2025
9f521f5
[FEAT] API 연결과 테이블 생성과 수정을 위해 funnel 패턴을 이용하여 멀티 스텝 폼 구현 (#57)
jaeml06 Jan 17, 2025
c3d8c11
[CHORE] 배포 파이프라인 자동화 구축 (#60)
eunwoo-levi Jan 20, 2025
8ee276f
hotfix: 에러바운더리 코드가 삭제된 것에 대한 반영 (#69)
jaeml06 Jan 20, 2025
0ae7518
[REFACTOR] 타이머 기능 개선 외 (#66)
i-meant-to-be Jan 21, 2025
c0e406b
[HOTFIX] GitHub Actions 빌드 실패 문제 해결 (#73)
i-meant-to-be Jan 21, 2025
55d4421
[FEAT] AWS S3 및 FrontCloud dev, prod 각각 분리 배포 및 github action 구축 (#76)
eunwoo-levi Jan 22, 2025
1a37bae
[FEAT] 닉네임 기반 로그인 구현 (#71)
jaeml06 Jan 22, 2025
1f416e4
[FEAT] 추가 작전 시간 타이머 구현 외 (#77)
i-meant-to-be Jan 23, 2025
f919eef
[CHORE] 배포 최적화 및 배포 환경 구분 (#82)
i-meant-to-be Jan 23, 2025
dc7bd76
[HOTFIX] 배포된 앱이 서버와 통신하지 못하는 문제 수정 (#84)
i-meant-to-be Jan 24, 2025
2f1de92
[FIX] PostUserResponseType타입 수정, TableOverview에서 tableId를 url에서 정상적으로…
jaeml06 Jan 24, 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
13 changes: 13 additions & 0 deletions .github/ISSUE_TEMPLATE/chore-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
name: Chore Template
about: build와 관련된 부분, 패키지 매니저 설정 등 여러가지 production code와 무관한 부분
title: "[CHORE] "
labels: chore
assignees: ''

---

### ✨ Description


### ✨ Time(마감기한)
13 changes: 13 additions & 0 deletions .github/ISSUE_TEMPLATE/docs-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
name: Docs Template
about: 문서화
title: "[DOCS] "
labels: docs
assignees: ''

---

### ✨ Description


### ✨ Time(마감기한)
13 changes: 13 additions & 0 deletions .github/ISSUE_TEMPLATE/feat-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
name: Feat Template
about: 기능 추가
title: "[FEAT] "
labels: feat
assignees: ''

---

### ✨ Description


### ✨ Time(마감기한)
13 changes: 13 additions & 0 deletions .github/ISSUE_TEMPLATE/fix-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
name: Fix Template
about: 기능 수정
title: "[FIX] "
labels: fix
assignees: ''

---

### ✨ Description


### ✨ Time(마감기한)
13 changes: 13 additions & 0 deletions .github/ISSUE_TEMPLATE/hotfix-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
name: HOTFIX Template
about: 긴급 수정
title: "[HOTFIX] "
labels: hotfix
assignees: ''

---

### ✨ Description


### ✨ Time(마감기한)
13 changes: 13 additions & 0 deletions .github/ISSUE_TEMPLATE/refactor-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
name: "Refactor Template"
about: '리팩토링 '
title: "[REFACTOR] "
labels: refactor
assignees: ''

---

### ✨ Description


### ✨ Time(마감기한)
13 changes: 13 additions & 0 deletions .github/ISSUE_TEMPLATE/ui-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
name: UI Template
about: 디자인 변경
title: "[STYLE] "
labels: design
assignees: ''

---

### ✨ Description


### ✨ Time(마감기한)
8 changes: 8 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
## 🚩 연관 이슈
closed #

## 📝 작업 내용

## 🏞️ 스크린샷 (선택)

## 🗣️ 리뷰 요구사항 (선택)
24 changes: 24 additions & 0 deletions .github/workflows/Auto_Issue_Setting.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Auto Issue Setting

on:
issues:
types: [opened]

permissions:
issues: write

jobs:
auto-assign:
runs-on: ubuntu-latest
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
# 리포지토리 체크아웃
- name: Checkout repository
uses: actions/checkout@v4

# 이슈 생성자를 자동 할당
- name: Auto-assign issue creator
uses: pozil/auto-assign-issue@v2
with:
assignees: ${{ github.actor }}
57 changes: 57 additions & 0 deletions .github/workflows/Auto_PR_Setting.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: Auto PR Setting

on:
pull_request:
types: [opened]

jobs:
assign-issue:
runs-on: ubuntu-latest

steps:
- name: Checkout Code
uses: actions/checkout@v4

- name: Set Auth Token
run: echo "GH_TOKEN=${{ secrets.PERSONAL_ACCESS_TOKEN }}" >> $GITHUB_ENV
# Personal Access Token을 환경 변수에 설정하여 gh CLI에서 인증에 사용.

- name: Get Issue Number
id: get_issue
run: |
# PR 정보를 가져와 브랜치 이름 확인.
PR_DATA=$(gh pr view ${{ github.event.pull_request.number }} --json headRefName)
echo "PR_DATA=${PR_DATA}" >> $GITHUB_ENV
# 브랜치 이름에서 이슈 번호 추출.
BRANCH_NAME=$(echo "${PR_DATA}" | jq -r '.headRefName')
echo "BRANCH_NAME=${BRANCH_NAME}" >> $GITHUB_ENV
ISSUE_NUMBER=$(echo "${BRANCH_NAME}" | awk -F'#' '{print $2}' | grep -Eo '^[0-9]+')
echo "ISSUE_NUMBER=${ISSUE_NUMBER}" >> $GITHUB_ENV

- name: Get Issue Details
id: get_issue_details
run: |
# 이슈 정보를 가져와 할당된 사람, 레이블, 프로젝트 항목 정보를 추출.
ISSUE_DATA=$(gh issue view "${ISSUE_NUMBER}" --json assignees,labels,projectItems --jq '{assignees: [.assignees[].login], labels: [.labels[].name], projects: [.projectItems[].title]}')
echo "ISSUE_DATA=${ISSUE_DATA}" >> $GITHUB_ENV

- name: Setting PR
id: setting_pr
run: |
# 이슈 데이터에서 할당된 사람, 레이블, 프로젝트 정보를 환경 변수로 설정.
ASSIGNEES=$(echo "${ISSUE_DATA}" | jq -r '.assignees | join(",")')
LABELS=$(echo "${ISSUE_DATA}" | jq -r '.labels | join(",")')

# 팀 멤버 목록을 정의하고, 할당되지 않은 멤버를 리뷰어로 추가.
TEAM_MEMBERS=("jaeml06" "i-meant-to-be" "eunwoo-levi")
IFS=', ' read -r -a ASSIGNEE_ARRAY <<< "${ASSIGNEES}"
REVIEWERS=()
for MEMBER in "${TEAM_MEMBERS[@]}"; do
if [[ ! " ${ASSIGNEE_ARRAY[@]} " =~ " ${MEMBER} " ]]; then
REVIEWERS+=("${MEMBER}")
fi
done
REVIEWER_LIST=$(IFS=', '; echo "${REVIEWERS[*]}")

# PR에 할당된 사람, 레이블, 리뷰어, 프로젝트를 추가.
gh pr edit ${{ github.event.pull_request.number }} --add-assignee "${ASSIGNEES}" --add-label "${LABELS}" --add-reviewer "${REVIEWER_LIST}"
34 changes: 34 additions & 0 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: frontend-CI

on:
pull_request:
branches:
- develop

jobs:
test:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Check Caching
uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}

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

- name: Install Dependencies
run: npm ci

- name: Run tests
run: npm run test

- name: Run linter
run: npm run lint
65 changes: 65 additions & 0 deletions .github/workflows/PR_Comment_Noti.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: Discord Notification on PR Comment

on:
issue_comment:
types: [created, edited]

jobs:
notify-discord-comment:
if: ${{ github.event.issue.pull_request && contains(github.event.comment.body, '/noti') }}
runs-on: ubuntu-latest

steps:
- name: Set Environment Variables
env:
TITLE: ${{ github.event.issue.title }}
run: |
echo "AVATAR_URL=${{ secrets.DISCORD_AVATAR_URL }}" >> $GITHUB_ENV
echo "COMMENT_BODY= 질문있어요~~" >> $GITHUB_ENV
echo "USERNAME=망곰" >> $GITHUB_ENV
echo "WEB_HOOK=${{ secrets.DISCORD_WEB_HOOK }}" >> $GITHUB_ENV

- name: Notify Discord
env:
COMMENT_BODY: ${{ env.COMMENT_BODY }}
COMMENT_AUTHOR: ${{ github.event.comment.user.login }}
PR_URL: ${{ github.event.issue.pull_request.html_url }}
AUTHOR_URL: ${{ github.event.comment.user.avatar_url }}
AVATAR_URL: ${{ env.AVATAR_URL }}
CONTENT: ${{ github.event.comment.body }}
USERNAME: ${{ env.USERNAME }}
WEB_HOOK: ${{ env.WEB_HOOK }}
run: |
if [ -n "$WEB_HOOK" ]; then
JSON_PAYLOAD=$(jq -n \
--arg content "$CONTENT" \
--arg description "$COMMENT_BODY" \
--arg username "$USERNAME" \
--arg avatar_url "$AVATAR_URL" \
--arg title "Pull Request Command" \
--arg url "$PR_URL" \
--arg author_url "$AUTHOR_URL" \
--arg author_name "$COMMENT_AUTHOR" \
--arg color "5814783" \
--arg timestamp "$(date -u +"%Y-%m-%dT%H:%M:%SZ")" \
'{
content: $content,
username: $username,
avatar_url: $avatar_url,
embeds: [{
title: $title,
url: $url,
author: {
name: $author_name,
icon_url: $author_url
},
description: $description,
color: ($color | tonumber),
timestamp: $timestamp
}]
}')

curl -X POST -H "Content-Type: application/json" -d "$JSON_PAYLOAD" "$WEB_HOOK"
else
echo "No matching title found. Skipping notification."
fi
49 changes: 49 additions & 0 deletions .github/workflows/deploy-development.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Deploy-Development

on:
workflow_dispatch:
pull_request:
branches: ['develop']
types: ['closed']

jobs:
build-and-deploy:
runs-on: ubuntu-latest
environment: DEPLOY_DEV

steps:
- name: Setup NodeJS
uses: actions/setup-node@v4
with:
node-version: 20

- name: Checkout Code
uses: actions/checkout@v4

- name: Setup .env
run: echo "${{vars.ENV}}" > .env

- name: Install Dependencies
run: npm ci

- name: Build Development
run: npm run build

- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{secrets.AWS_DEV_ACCESS_KEY_ID}}
aws-secret-access-key: ${{secrets.AWS_DEV_SECRET_ACCESS_KEY}}
aws-region: ap-northeast-2

- name: Deploy to AWS S3
env:
BUCKET_NAME: ${{secrets.AWS_DEV_BUCKET_NAME}}
aws-access-key-id: ${{secrets.AWS_DEV_ACCESS_KEY_ID}}
aws-secret-access-key: ${{secrets.AWS_DEV_SECRET_ACCESS_KEY}}
run: aws s3 sync ./dist s3://$BUCKET_NAME --delete

- name: Invalidate AWS Cloudfront Cache
run: |
aws cloudfront create-invalidation \
--distribution-id ${{secrets.AWS_DEV_CLOUDFRONT_ID}} --paths "/*"
49 changes: 49 additions & 0 deletions .github/workflows/deploy-production.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Deploy-Production

on:
workflow_dispatch:
pull_request:
branches: ['main']
types: ['closed']

jobs:
build-and-deploy:
runs-on: ubuntu-latest
environment: DEPLOY_PROD

steps:
- name: Setup NodeJS
uses: actions/setup-node@v4
with:
node-version: 20

- name: Checkout Code
uses: actions/checkout@v4

- name: Setup .env
run: echo "${{vars.ENV}}" > .env

- name: Install Dependencies
run: npm ci

- name: Build Production
run: npm run build

- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{secrets.AWS_PROD_ACCESS_KEY_ID}}
aws-secret-access-key: ${{secrets.AWS_PROD_SECRET_ACCESS_KEY}}
aws-region: ap-northeast-2

- name: Deploy to AWS S3
env:
BUCKET_NAME: ${{secrets.AWS_PROD_BUCKET_NAME}}
aws-access-key-id: ${{secrets.AWS_PROD_ACCESS_KEY_ID}}
aws-secret-access-key: ${{secrets.AWS_PROD_SECRET_ACCESS_KEY}}
run: aws s3 sync ./dist s3://$BUCKET_NAME --delete

- name: Invalidate AWS Cloudfront Cache
run: |
aws cloudfront create-invalidation \
--distribution-id ${{secrets.AWS_PROD_CLOUDFRONT_ID}} --paths "/*"
Loading
Loading