Skip to content

Commit 020020b

Browse files
authored
Merge pull request #221 from FE13-Part4-Team2/hyeonjiroh-patch-1
docs: Update README.md
2 parents 91ef7ae + d19ccb6 commit 020020b

1 file changed

Lines changed: 300 additions & 10 deletions

File tree

README.md

Lines changed: 300 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,300 @@
1-
## 🚀 진행 일정
2-
3-
| 이름 | 프로젝트 시작 (-4.25) | 1차 기능 구현 (-5.03) | 2차 기능 구현 (-5.10) |
4-
| ------ | ------------------------------------------- | ------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |
5-
| 노현지 | • API 작업 <br> • 모달 공통 컴포넌트 | • 리스트 페이지 <br> • 할 일 상세 페이지 | • 할 일 생성 모달 <br> • 할 일 수정 모달 <br> • 할 일 삭제 모달 |
6-
| 이아름 | • 버튼 <br> • 드롭다운 <br> • 카드 컴포넌트 | • 버튼 <br> • 드롭다운 <br> • 카드 컴포넌트 | • 자유게시판 메인 페이지 <br> • 계정 설정 페이지 <br> • 비밀번호 변경 모달 <br> • 회원 탈퇴 모달 |
7-
| 이현선 | • 폰트, 컬러 가이드 | • 폰트, 컬러 가이드 | • 마이 히스토리 페이지 <br> • 404 에러 페이지 |
8-
| 이현호 | • 아이콘 컴포넌트 <br> • 헤더 컴포넌트 | • 아이콘 컴포넌트 <br> • 헤더 컴포넌트 | • 팀 생성 페이지 <br> • 팀 참여 페이지 <br> • 팀 수정 페이지 |
9-
| 장해명 | • API 작업 | • 회원가입/로그인 페이지 <br> • 비밀번호 재설정 페이지 | • 자유게시판 상세 페이지 <br> • 자유게시판 게시글 쓰기 페이지 <br> • Oauth |
10-
| 조민지 | • 인풋 컴포넌트 <br> • 커스텀 토스트 디자인 | • 다크 모드 <br> • 랜딩 페이지 | • 팀 페이지 <br> • 팀 없는 경우 페이지 <br> • 페이지 사용 모달 |
1+
# Coworkers
2+
![GIF_20250609_232943_882](https://github.com/user-attachments/assets/968556f6-36a9-4298-8c2a-f808fb874cae)
3+
4+
5+
## 💡 프로젝트 개요
6+
**Coworkers**는 팀 단위로 일정을 관리 및 공유할 수 있는 웹 애플리케이션입니다.
7+
- 소속된 팀의 할 일 목록, 그날의 진행 상황, 멤버 목록을 한눈에 확인할 수 있습니다.
8+
- 반복 주기를 설정하여 할 일을 생성할 수 있으며, 특정 할 일에 대해 댓글로 소통할 수 있습니다.
9+
10+
<br>
11+
12+
## ⏳ 개발 기간
13+
2025.04.21 ~ 2025.05.26
14+
15+
<br>
16+
17+
## 🚀 배포 주소
18+
https://coworkers-theta.vercel.app
19+
20+
<br>
21+
22+
## 👩🏻‍💻 팀원 소개
23+
<table>
24+
<tr>
25+
<td align="center"><b>노현지</b></td>
26+
<td align="center"><b>이아름</b></td>
27+
<td align="center"><b>이현선</b></td>
28+
<td align="center"><b>이현호</b></td>
29+
<td align="center"><b>장해명</b></td>
30+
<td align="center"><b>조민지</b></td>
31+
</tr>
32+
<tr>
33+
<td align="center">
34+
<a href="https://github.com/hyeonjiroh">
35+
<img width="200px" src="https://github.com/hyeonjiroh.png"/>
36+
</a>
37+
</td>
38+
<td align="center">
39+
<a href="https://github.com/ARON-Y">
40+
<img width="200px" src="https://github.com/ARON-Y.png"/>
41+
</a>
42+
</td>
43+
<td align="center">
44+
<a href="https://github.com/eplssun">
45+
<img width="200px" src="https://github.com/eplssun.png"/>
46+
</a>
47+
</td>
48+
<td align="center">
49+
<a href="https://github.com/MySoupRice">
50+
<img width="200px" src="https://github.com/MySoupRice.png"/>
51+
</a>
52+
</td>
53+
<td align="center">
54+
<a href="https://github.com/jjaneyxx">
55+
<img width="200px" src="https://github.com/jjaneyxx.png"/>
56+
</a>
57+
</td>
58+
<td align="center">
59+
<a href="https://github.com/MINJI121">
60+
<img width="200px" src="https://github.com/MINJI121.png"/>
61+
</a>
62+
</td>
63+
</tr>
64+
</table>
65+
66+
<br>
67+
68+
## 🤝 역할 분담
69+
### 노현지
70+
- 할 일 목록 페이지
71+
- 할 일 상세 페이지
72+
- 자유게시판 상세 페이지
73+
- 할 일 목록 생성/수정/삭제 모달
74+
- 할 일 생성/수정/삭제 모달
75+
- 모달 공통 컴포넌트
76+
- Datepicker 공통 컴포넌트
77+
- fetcher 함수 및 API 함수
78+
- 초기 세팅
79+
- Vercel 배포
80+
81+
### 이아름
82+
- 자유게시판 메인 페이지
83+
- 자유게시판 글 작성 페이지
84+
- 자유게시판 글 수정 페이지
85+
- 계정 설정 페이지
86+
- 회원 탈퇴 모달
87+
- 비밀번호 변경 모달
88+
- 버튼 공통 컴포넌트
89+
- 드롭다운 공통 컴포넌트
90+
91+
### 이현선
92+
- 마이 히스토리 페이지
93+
- 404 페이지
94+
- 스타일 가이드
95+
96+
### 이현호
97+
- 팀 생성 페이지
98+
- 팀 수정 페이지
99+
- 팀 참여 페이지
100+
- 팀 삭제 모달
101+
- 헤더 공통 컴포넌트
102+
- 아이콘 공통 컴포넌트
103+
104+
### 장해명
105+
- 회원가입 페이지
106+
- 로그인 페이지
107+
- 비밀번호 재설정 페이지
108+
- 비밀번호 재설정 모달
109+
- Oauth
110+
- 프로젝트 협업 환경 구성
111+
- Notion 기반 협업 구조 정비
112+
113+
### 조민지
114+
- 랜딩 페이지
115+
- 팀 페이지
116+
- 멤버 프로필 모달
117+
- 멤버 초대 모달
118+
- 커스텀 토스트 디자인
119+
- 인풋 공통 컴포넌트
120+
121+
<br>
122+
123+
## 🛠 기술 스택
124+
125+
### 프로그래밍 언어
126+
![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E)
127+
![TypeScript](https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge&logo=typescript&logoColor=white)
128+
129+
### 스타일링
130+
![TailwindCSS](https://img.shields.io/badge/tailwindcss-%2338B2AC.svg?style=for-the-badge&logo=tailwind-css&logoColor=white)
131+
132+
### 코드 품질
133+
![js](https://img.shields.io/badge/eslint-3A33D1?style=for-the-badge&logo=eslint&logoColor=white)
134+
![js](https://img.shields.io/badge/prettier-1A2C34?style=for-the-badge&logo=prettier&logoColor=F7BA3E)
135+
136+
### 라이브러리
137+
![React](https://img.shields.io/badge/react-%2320232a.svg?style=for-the-badge&logo=react&logoColor=%2361DAFB)
138+
![React Query](https://img.shields.io/badge/react--query-%23FF4154.svg?style=for-the-badge&logo=reactquery&logoColor=white)
139+
![Zustand](https://img.shields.io/badge/zustand-%23212121.svg?style=for-the-badge)
140+
![js-cookie](https://img.shields.io/badge/js--cookie-%23f1c40f.svg?style=for-the-badge)
141+
![twMerge](https://img.shields.io/badge/twMerge-%23F59E0B.svg?style=for-the-badge)
142+
![lodash.debounce](https://img.shields.io/badge/lodash.debounce-%230075a8.svg?style=for-the-badge)
143+
![react-hook-form](https://img.shields.io/badge/react--hook--form-%23EC5990.svg?style=for-the-badge&logo=reacthookform&logoColor=white)
144+
![react-datepicker](https://img.shields.io/badge/react--datepicker-%23F97316.svg?style=for-the-badge)
145+
![framer-motion](https://img.shields.io/badge/framer--motion-%23000000.svg?style=for-the-badge&logo=framer&logoColor=white)
146+
![react-toastify](https://img.shields.io/badge/react--toastify-%23FF6B81.svg?style=for-the-badge)
147+
![clsx](https://img.shields.io/badge/clsx-%23007ACC.svg?style=for-the-badge)
148+
![SVGR](https://img.shields.io/badge/SVGR-%23FFB13B.svg?style=for-the-badge)
149+
![Zod](https://img.shields.io/badge/Zod-%230070f0.svg?style=for-the-badge)
150+
151+
### 프레임워크
152+
![Next JS](https://img.shields.io/badge/Next.js-%23000000.svg?style=for-the-badge&logo=next.js&logoColor=white)
153+
154+
### 배포
155+
![Vercel](https://img.shields.io/badge/vercel-%23000000.svg?style=for-the-badge&logo=vercel&logoColor=white)
156+
157+
### 버전 및 이슈 관리
158+
![Git](https://img.shields.io/badge/git-%23F05033.svg?style=for-the-badge&logo=git&logoColor=white)
159+
![GitHub](https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge&logo=github&logoColor=white)
160+
161+
### 협업 툴
162+
![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?style=for-the-badge&logo=discord&logoColor=white)
163+
![Notion](https://img.shields.io/badge/Notion-%23000000.svg?style=for-the-badge&logo=notion&logoColor=white)
164+
165+
<br>
166+
167+
## 🗂️ 폴더 구조
168+
169+
```
170+
📂 public
171+
├── 📂 image
172+
└── 📂 logo
173+
174+
📂 src
175+
├── 📂 app
176+
│ ├── 📂 (auth)
177+
│ │ ├── 📂 login
178+
│ │ ├── 📂 oauth
179+
│ │ │ └── 📂 kakao
180+
│ │ ├── 📂 reset-password
181+
│ │ └── 📂 signup
182+
│ ├── 📂 (board)
183+
│ │ ├── 📂 article
184+
│ │ │ ├── 📂 [articleid]
185+
│ │ │ │ └── 📂 edit-article
186+
│ │ │ └── 📂 add-article
187+
│ │ └── 📂 boards
188+
│ ├── 📂 (landing)
189+
│ ├── 📂 (team)
190+
│ │ ├── 📂 add-team
191+
│ │ ├── 📂 join-team
192+
│ │ ├── 📂 no-team
193+
│ │ └── 📂 team
194+
│ │ └── 📂 [teamid]
195+
│ │ ├── 📂 edit
196+
│ │ ├── 📂 task
197+
│ │ │ └── 📂 [taskid]
198+
│ │ └── 📂 tasklist
199+
│ │ └── 📂 @sidePage
200+
│ │ └── 📂 (..)task
201+
│ │ └── 📂 [taskid]
202+
│ ├── 📂 (user)
203+
│ │ ├── 📂 myhistory
204+
│ │ └── 📂 mypage
205+
│ ├── 📄 not-found.tsx
206+
│ ├── 📄 page.tsx
207+
│ └── 📄 Providers.tsx
208+
├── 📂 assets
209+
│ └── 📂 icons
210+
├── 📂 components
211+
│ ├── 📂 article
212+
│ ├── 📂 auth
213+
│ ├── 📂 common
214+
│ ├── 📂 task
215+
│ ├── 📂 tasklist
216+
│ └── 📂 user
217+
├── 📂 constants
218+
├── 📂 fonts
219+
├── 📂 hooks
220+
├── 📂 lib
221+
│ ├── 📂 apis
222+
│ │ ├── 📂 article
223+
│ │ ├── 📂 articleComment
224+
│ │ ├── 📂 auth
225+
│ │ ├── 📂 comment
226+
│ │ ├── 📂 group
227+
│ │ ├── 📂 task
228+
│ │ ├── 📂 taskList
229+
│ │ ├── 📂 user
230+
│ │ └── 📄 uploadImage.ts
231+
│ ├── 📂 client
232+
│ │ ├── 📄 fetcher.client.ts
233+
│ │ └── 📄 token.client.ts
234+
│ └── 📂 server
235+
│ ├── 📄 fetcher.server.ts
236+
│ └── 📄 token.server.ts
237+
├── 📂 store
238+
└── 📂 utils
239+
```
240+
241+
<br>
242+
243+
## ✅ 컨벤션
244+
### 네이밍 컨벤션
245+
- 상수: `SNAKE_CASE`
246+
- 컴포넌트, interface 타입: `PascalCase`
247+
- 변수, 함수: `camelCase`
248+
- 폴더명: `kebab-case`
249+
- 파일명
250+
- 이미지 파일(public 폴더): `_`(언더바)로 구분
251+
- 이미지 import 시: `PascalCase`
252+
- 페이지 및 API 파일 (app, api 폴더): `kebab-case`
253+
- 컴포넌트 파일 (components 폴더): `PascalCase`
254+
- 유틸리티 파일 (lib, utils, hooks 폴더): `camelCase`
255+
256+
### 타입
257+
258+
- **feat** : 새로운 기능 추가
259+
- **fix** : 버그 수정
260+
- **docs** : 문서 수정
261+
- **style** : 코드 스타일 변경(코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우 등)
262+
- **design**: 사용자 UI 디자인 변경(CSS 등)
263+
- **refactor** : 코드 리팩토링
264+
- **test** : 테스트 코드 작성
265+
- **build**: 빌드 파일 수정
266+
- **ci**: CI 설정 파일 수정
267+
- **perf**: 성능 개선
268+
- **chore**: 빌드 수정, 패키지 매니저 설정, 운영 코드 변경이 없는 경우 등
269+
- **rename** : 파일 혹은 폴더명을 수정한 경우
270+
- **remove**: 파일 삭제만 한 경우
271+
272+
### 커밋 메세지
273+
274+
```
275+
type: 요약
276+
```
277+
278+
### 브랜치명
279+
280+
```
281+
type/#Issue-Number/Content
282+
```
283+
284+
### 이슈 제목
285+
286+
```
287+
[type] Content
288+
```
289+
290+
### PR 제목
291+
292+
```
293+
[type] #Issue-Number Content1 / Content2 ...
294+
```
295+
296+
## 🔄 팀 규칙
297+
- **4시간 동안 해결되지 않는 문제는 공유해서 함께 해결하기**
298+
- PR이 올라오고 6시간 내에 코드 리뷰 & Approve 해주기
299+
- 팀 미팅 불참 시 최소한 하루 전에 말해주기
300+
- Task 완료 시 칸반 보드 업데이트하기

0 commit comments

Comments
 (0)