Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
543e0cd
Co-authored-by: heewls <[email protected]>s
hhjin1 May 25, 2025
91a4d5e
Fix : nogroup페이지에서 프로필 드롭다운이 안나오는 문제 수정
hhjin1 May 26, 2025
9c81fdc
Fix : 회원가입 직후 fetchuser호출
hhjin1 May 26, 2025
8257875
Merge branch 'dev' of https://github.com/FE-team1/coworkers into gnb
hhjin1 May 26, 2025
2ab4e6a
Style : 토스트 문구 수정
hhjin1 May 26, 2025
bdb4e7c
Fix : dnd시 taskListId를 잘못 가져오는 문제 해결
May 28, 2025
abe1884
Create README.md
grimza99 May 28, 2025
e72bfff
Merge pull request #168 from FE-team1/Refactor/final_grimaza99
grimza99 May 30, 2025
1d481df
Merge branch 'dev' of https://github.com/FE-team1/coworkers into chor…
May 30, 2025
3462f77
Refactor : interception route를 위한 폴더 구조 변경
May 30, 2025
da89ec7
Feat : 디테일 태스크를 위한 페이지 생성
May 30, 2025
bb5ade2
Fix : 디테일 태스크 페이지에서 토글 버튼 클릭시 바로 반영을 위한 revalidateTag 옵션 활성화
May 30, 2025
5ab8961
Feat : 사이드로 나온 디테일 태스크에서 확장 버튼 클릭시 디테일 태스크 페이지로 이동
May 30, 2025
deb6ffc
Chore : 사용하지 않는 import, props 정리
May 30, 2025
1e46ef7
Refactor : 모달을 별개의 라우트로 구현 - parallel & intercepting routes 활용
KSJ27 May 30, 2025
fe85046
Chore : install react-hook-form & zod
heewls May 30, 2025
b4182b9
Refactor : Modal 컴포넌트 폴더 구조 변경 - modal 기능 관련 코드는 하나의 파일로 묶고, Context …
KSJ27 May 30, 2025
3c3bfc3
Merge pull request #167 from FE-team1/gnb
hhjin1 May 31, 2025
4237ab6
Refactor : 퍼렐럴 라우팅 수정
May 31, 2025
4890634
Build : 빌드 에러 해결을 위한 import문 삭제, 디펜던시 리스트 추가
Jun 1, 2025
5737e5a
Merge branch 'dev' of https://github.com/FE-team1/coworkers into Refa…
Jun 1, 2025
b653799
Merge branch 'dev' of https://github.com/FE-team1/coworkers into chor…
Jun 1, 2025
23d31c6
Merge pull request #169 from FE-team1/chore/readme
grimza99 Jun 1, 2025
bba3522
Chore : 사용하지 않는 파일 삭제
Jun 1, 2025
6b4995f
Refactor : new form field
heewls Jun 1, 2025
3a20bb5
Merge pull request #170 from FE-team1/refactor/modal
KSJ27 Jun 1, 2025
0fd2311
Refactor : useZodForm
heewls Jun 1, 2025
9336cbe
Refactor : image uploader object-cover
heewls Jun 1, 2025
b526e9c
Refactor : apply useZodForm
heewls Jun 1, 2025
7782065
Merge branch 'dev' of https://github.com/FE-team1/coworkers into refa…
heewls Jun 1, 2025
4b018c7
Merge branch 'dev' of https://github.com/FE-team1/coworkers into Refa…
Jun 2, 2025
67776e3
Chore : 핸들러 이름 변경
Jun 2, 2025
3726639
Chore : 컴포넌트명 변경
Jun 2, 2025
1491663
Merge pull request #171 from FE-team1/Refactor/final_grimaza99
grimza99 Jun 2, 2025
c97fa83
Feat : intercepting routes 방식 모달에 맞는 모달 컴포넌트 분리
KSJ27 Jun 2, 2025
e77ac26
Feat : intercepting routing 방식 모달의 라우팅 주소를 바꾸고, 렌더링 위치를 루트 레이아웃으로 변경
KSJ27 Jun 2, 2025
9ff07e6
Feat : 모달 안 열었을 때 기본 라우트 페이지 구현
KSJ27 Jun 2, 2025
a3d5cf1
Merge branch 'dev' of https://github.com/FE-team1/coworkers into refa…
heewls Jun 2, 2025
f43dfd4
Merge pull request #172 from FE-team1/refactor/form-field
heewls Jun 2, 2025
61b86ca
Feat : query provider
heewls Jun 2, 2025
57a0885
Refactor : tasklist 생성 모달 라우트 변경
KSJ27 Jun 4, 2025
93475d0
Fix : tasklist 생성 모달 경로 직접 방문 시 not found 렌더링
KSJ27 Jun 4, 2025
a9fe00d
Merge pull request #173 from FE-team1/refactor/modal
KSJ27 Jun 4, 2025
fc771df
Merge branch 'dev' of https://github.com/FE-team1/coworkers into tanS…
heewls Jun 4, 2025
9758f76
Merge pull request #174 from FE-team1/tanStack-query
heewls Jun 4, 2025
9472ea4
Merge branch 'dev' of https://github.com/FE-team1/coworkers into feat…
hhjin1 Jun 5, 2025
6c06c40
Chore : 회원가입 관련 모달 폴더구조 정리
hhjin1 Jun 5, 2025
795c35d
Feat : 회원가입 폼에 TanStack Query useMutation 적용
hhjin1 Jun 5, 2025
66dd00b
Feat : 계정관리페이지에 TanStack Query useMutation 적용
hhjin1 Jun 5, 2025
28123c1
Fix : 마이페이지 닉네임/비밀번호 유효성 에러 메시지 표시 개선
hhjin1 Jun 5, 2025
2172424
Style : 회원가입 버튼 로딩 상태 BouncingDots 적용
hhjin1 Jun 5, 2025
7b5ba3c
Refactor : 중복된 로직 제거
hhjin1 Jun 5, 2025
cb582c0
Chore : placeholder 문구 수정
hhjin1 Jun 5, 2025
717ed22
Fix : 회원가입 자동 로그인 타이밍 및 중복 요청 방지 개선
hhjin1 Jun 5, 2025
d98709f
Chore : 토스트 문구 수정
hhjin1 Jun 8, 2025
d4edbba
Merge pull request #175 from FE-team1/feature/mypage
hhjin1 Jun 9, 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
80 changes: 57 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,36 +1,70 @@
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).
# Coworkers

## Getting Started
## **💡** 프로젝트 개요

First, run the development server:

```bash
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
```
> ▫️ **Coworkers** 는 가족, 회사 등 다양한 커뮤니티에서 일정을 관리하고 공유할 수 있는 웹 애플리케이션입니다.
▫️ 멤버 초대, 할 일 목록 CRUD, 댓글 작성 등 유기적인 커뮤니티 기능을 제공 합니다.
>

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/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.
🔹 **그룹, 할일목록, 할일 생성**

## Learn More
- 할일의 반복 설정, 할일 목록 생성 수정등 마감일, 담당자 등 업무에 필요한 내용을 추가할수 있어, 전반적인 내용을 쉽게 공유할 수 있습니다.
- 댓글 남길 수 있어 실시간으로 현황이나 의견을 공유할 수 있습니다.
- drag & drop으로 쉽게 할일의 우선순위를 부여하여 사용자의 편의성을 높였습니다.

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

<br>

- [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!
- **Front-End : Next.js(App Router) , Axios , tailwind, dnd-kit,…**
- **Back-end : Swagger**
- **배포 환경 : Vercel , AWS**
- **디자인 : Figma**
- **버전 및 이슈 관리: Github , Git ,Github action**
- **협업 툴: Discord, Notion**

## Deploy on Vercel
<br>

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.
## 📂 폴더 구조

<img width="720" alt="스크린샷 2025-05-28 오후 4 51 02" src="https://github.com/user-attachments/assets/c456e189-9a4b-4351-aa84-ee78d19965d7" />


<br>

# **👥** 프로젝트 팀 구성 및 역할

</aside>

---

## 🧑‍💻👩‍💻👩‍💻👩‍💻 팀원 소개와 역할

| 이름 | 주요 역할 | GitHub |
| --- | --- | --- |
|강석준 | modal ,interceptor, 댓글, 랜딩페이지, 로그인 페이지, 그룹 페이지, 자유게시판 생성,수정, AWS 배포, docker 설정, ... | https://github.com/KSJ27
|김희진 | button , toast, input, 투두리스트 아이템, 팀생성페이지, 팀 수정페이지, 할일 생성,수정, 자유게시판 상세 페이지, ... | https://github.com/heewls
|유선향 | dropdown , svgr, OAuth, 비번 재설정 페이지, 리스트 페이지, 히스토리페이지, 할일 상세, Dnd ,... | https://github.com/grimza99
|황혜진 | header , global css, 회원가입, 팀참여하기 페이지, 계정 관리 페이지, 자유게시판 페이지, ... | https://github.com/hhjin1


<br>

# 프로젝트 수행 절차 및 컨벤션

### 프로젝트 기간 : 25.04.21 ~ 25.05.25
### 리팩토링 기간 : 25.05.28 ~ 25.06.08
### ⏰ 코어 타임: 월-금, 오후 2시~5시

### 🛠 데일리 스크럼: 월- 토, 오후 2시

### 📌 **오류 발생 시, 1~2시간 내로 해결이 안되면 공유하기!**

### 📖 데일리 스크럼시, 팀 규칙에 따른 해당 팀원이 노션에 진행 내용과 진행 예정을 기록

Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.
75 changes: 74 additions & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 5 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
"dependencies": {
"@dnd-kit/core": "^6.3.1",
"@dnd-kit/sortable": "^10.0.0",
"@hookform/resolvers": "^5.0.1",
"@tanstack/react-query": "^5.79.0",
"axios": "^1.9.0",
"clsx": "^2.1.1",
"date-fns": "^4.1.0",
Expand All @@ -20,8 +22,10 @@
"react-calendar": "^5.1.0",
"react-dom": "^19.0.0",
"react-error-boundary": "^6.0.0",
"react-hook-form": "^7.56.4",
"react-intersection-observer": "^9.16.0",
"react-toastify": "^11.0.5"
"react-toastify": "^11.0.5",
"zod": "^3.25.41"
},
"devDependencies": {
"@eslint/eslintrc": "^3",
Expand Down
1 change: 1 addition & 0 deletions public/icons/expand-icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,8 @@ import {
ModalFooter,
ModalHeading,
ModalOverlay,
ModalPortal,
} from '@/components/common/modal';
import useModalContext from '@/components/common/modal/core/useModalContext';
import { useModal, ModalPortal } from '@/contexts/ModalContext';
import BouncingDots from '@/components/common/loading/BouncingDots';
import { Member } from '@/types/user';

Expand All @@ -28,7 +27,7 @@ export default function MemberDeleteModal({
deleteMember,
}: MemberDeleteModalProps) {
const { userName } = member;
const { closeModal } = useModalContext();
const { closeModal } = useModal();

const handleClickDeleteButton = async () => {
deleteMember();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,8 @@ import {
ModalFooter,
ModalHeading,
ModalOverlay,
ModalPortal,
} from '@/components/common/modal';
import useModalContext from '@/components/common/modal/core/useModalContext';
import { useModal, ModalPortal } from '@/contexts/ModalContext';
import { Member } from '@/types/user';

type MemberDetailModalProps = {
Expand All @@ -20,7 +19,7 @@ type MemberDetailModalProps = {

export default function MemberDetailModal({ modalId, member }: MemberDetailModalProps) {
const { userName, userImage, userEmail } = member;
const { closeModal } = useModalContext();
const { closeModal } = useModal();
const copyEmailToClipboard = () => {
navigator.clipboard.writeText(userEmail);
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,8 @@ import {
ModalFooter,
ModalHeading,
ModalOverlay,
ModalPortal,
} from '@/components/common/modal';
import useModalContext from '@/components/common/modal/core/useModalContext';
import { useModal, ModalPortal } from '@/contexts/ModalContext';
import { Toast } from '@/components/common/Toastify';
import BouncingDots from '@/components/common/loading/BouncingDots';
import { getInvitationToken } from '@/api/group';
Expand All @@ -32,7 +31,7 @@ export default function MemberInvitationModal({
isLoading,
addMember,
}: MemberInvitationModalProps) {
const { closeModal } = useModalContext();
const { closeModal } = useModal();
const [isTokenMethod, setIsTokenMethod] = useState(true);
const [email, setEmail] = useState('');

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,8 @@ import {
ModalFooter,
ModalHeading,
ModalOverlay,
ModalPortal,
} from '@/components/common/modal';
import useModalContext from '@/components/common/modal/core/useModalContext';
import { useModal, ModalPortal } from '@/contexts/ModalContext';
import BouncingDots from '@/components/common/loading/BouncingDots';
import { Tasklist } from '@/types/tasklist';

Expand All @@ -27,7 +26,7 @@ export default function TasklistDeleteModal({
deleteTasklist,
}: TasklistDeleteModalProps) {
const { name } = tasklist;
const { closeModal } = useModalContext();
const { closeModal } = useModal();

const handleClickDeleteButton = async () => {
deleteTasklist(tasklist);
Expand Down
Loading