1. 프로젝트 소개
2. 팀원 소개
3. 기술 스택
4. 협업 전략
5. ERD
6. API 명세
7. 프로젝트 주요 기능
8. 테스트
협업을 위한 가치있는 서비스를 제공하는 칸반보드 툴 구현 프로젝트입니다.
| 이예진 @dlwls423 |
최준영 @junxtar |
강용수 @emost22 |
김재윤 @yunjae62 |
용소희 @yongcowhee |
| -회원가입 -프로필 기능 -댓글 기능 |
-카드 기능 -소셜 로그인: 깃허브, 네이버, 구글 |
-체크리스트 기능 -할일 기능 -배포 -RestDocs |
-로컬 로그인, 로그아웃 -인증/인가 -작업자 기능 |
-팀 기능 -카테고리 기능 -전역 예외 처리 |
- Java 17
- Spring Boot 3.2.0
- Spring Data JPA
- OAuth 2
- Spring Security 6.2.0
- MySQL 8.0.33
- Redis 6.0.16
- H2DB 2.1.214 (Test용)
- AWS
- EC2
- S3
- CloudFront
- ACM
- RDS
- Route53
- RestDocs
- Jacoco
maindevelop(default)feature/기능
Feat: 새로운 기능을 추가하는 경우Fix: 버그를 고친경우Docs: 문서를 수정한 경우Style: 코드 포맷 변경, 세미콜론 누락, 코드 수정이 없는경우Refactor: 코드 리팩토링Test: 테스트 코드 작성
- Issue, PR 템플릿 사용
- 커스텀한 라벨 사용
- PR마다 관련 이슈를 생성
- Spotless 적용
- Entity:
setter와method사용 x,private Builder사용 - 객체 간 변환:
org.mapstruct.Mapper사용 - api 1개마다 req, res dto 1개씩 사용
- Custom
ResultCode,ResponseEntity사용 Optional제외: validator file로 검증 로직을 분리- Service 인터페이스와 impl로 분리
- Repository 기능을 제한:
@RepositoryDefinition - 네이밍 규칙
- dto: 도메인 + 기능 + Req/Res
- Entity: 도메인명 그대로
- 테이블명: tb_도메인명
- id: 도메인명 + id
🔎 회원가입
이메일,닉네임,비밀번호는 필수 값이다.이메일 인증이 필요하다.닉네임은 고유한 값이다.
🔎 로컬 로그인
닉네임+비밀번호로 로그인을 할 수 있다.- 로컬 로그인 내에서
이메일 중복을 허용하지 않는다.
🔎 소셜 로그인
github,google,naver총 3가지 방법이 있다.- 로컬과 소셜 로그인에서
이메일 중복을 허용한다.
🔎 로그아웃
로그아웃을 할 수 있다.
🔎 프로필 수정
닉네임중복 확인을 할 수 있다.기존 비밀번호를 입력하여 일치하는지 확인할 수 있다.닉네임,비밀번호,자기소개,프로필 이미지를 변경할 수 있다.
🔎 프로필 조회
유저Id,닉네임,이메일,자기소개,프로필 이미지를 조회할 수 있다.
🔎 팀 생성
팀명,설명,배경색을 입력하여 팀을 생성할 수 있다.- 팀을 생성한 사용자는
팀장이 된다.
🔎 팀 조회
팀명,설명,배경색,팀원을 조회할 수 있다.
🔎 팀 수정
팀장은 팀의팀명,설명,배경색을 수정할 수 있다.
🔎 팀 삭제
팀장은 팀을 삭제할 수 있다.- soft delete를 적용한다.
🔎 팀 복구
팀장은 삭제한 팀을 복구할 수 있다.
🔎 팀원 초대
팀장은닉네임으로 팀에 사용자를팀원으로 초대할 수 있다.- 팀에 초대하면 해당 사용자에게
이메일이 발송된다. - 사용자는 이메일에서
초대 링크를 클릭하여 초대를 수락할 수 있다.
🔎 팀원 삭제
팀장은닉네임으로 팀원를 삭제할 수 있다.
🔎 카테고리 생성
팀장 및 팀원은카테고리명을 입력하여 카테고리를 생성할 수 있다.순서를 보장하는 필드 값이 존재한다.
🔎 카테고리 전체 조회
팀장 및 팀원은 팀에 생성된 모든 카테고리를삭제 여부를 조건으로 조회할 수 있다.- 카테고리에 등록된
카드들도 함께 조회할 수 있다.
🔎 카테고리 수정
팀장 및 팀원은카테고리명을 수정할 수 있다.팀장 및 팀원은 카테고리의순서를 변경할 수 있다.
🔎 카테고리 삭제
팀장 및 팀원은 카테고리를 삭제할 수 있다.- soft delete를 적용한다.
🔎 카테고리 복구
팀장 및 팀원은 삭제한 카테고리를 복구할 수 있다.
🔎 카드 생성
팀장 및 팀원은 특정 카테고리에제목,설명,마감일,첨부 파일을 입력하여 카드를 생성할 수 있다.- 카테고리 내에서 카드의
순서를 보장하는 필드 값이 존재한다.
🔎 카드 단건 조회
팀장 및 팀원은 카드를 단건 조회할 수 있다.- 카드에 등록된
체크리스트,할일,댓글들도 함께 조회할 수 있다.
🔎 카드 수정
팀장 및 팀원은제목,설명,마감일,첨부 파일을 수정할 수 있다.팀장 및 팀원은 같은 카테고리 내에서 카드의순서를 변경할 수 있다.팀장 및 팀원은 카드를 다른 카테고리로 이동할 수 있다.
🔎 카드 삭제
팀장 및 팀원은 카드를 삭제할 수 있다.
🔎 담당자 등록
팀장 및 팀원은닉네임을 통해 카드에담당자를 등록할 수 있다.
🔎 담당자 삭제
팀장 및 팀원은닉네임을 통해 카드의담당자를 삭제할 수 있다.
🔎 체크리스트 생성
팀장 및 팀원은 카드에제목을 입력하여 체크리스트를 등록할 수 있다.
🔎 체크리스트 수정
팀장 및 팀원은 체크리스트의제목을 수정할 수 있다.
🔎 체크리스트 삭제
팀장 및 팀원은 체크리스트를 삭제할 수 있다.
🔎 할일 생성
팀장 및 팀원은 체크리스트에내용을 입력하여 할일을 등록할 수 있다.
🔎 할일 수정
팀장 및 팀원은 할일의내용을 수정할 수 있다.
🔎 할일 삭제
팀장 및 팀원은 할일을 삭제할 수 있다.
🔎 댓글 생성
팀장 및 팀원은 카드에 댓글을 입력할 수 있다.
🔎 댓글 수정
팀장 및 팀원은 댓글을 수정할 수 있다.
🔎 댓글 삭제
팀장 및 팀원은 댓글을 삭제할 수 있다.

