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
main
develop
(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를 적용한다.
🔎 카테고리 복구
팀장 및 팀원
은 삭제한 카테고리를 복구할 수 있다.
🔎 카드 생성
팀장 및 팀원
은 특정 카테고리에제목
,설명
,마감일
,첨부 파일
을 입력하여 카드를 생성할 수 있다.- 카테고리 내에서 카드의
순서
를 보장하는 필드 값이 존재한다.
🔎 카드 단건 조회
팀장 및 팀원
은 카드를 단건 조회할 수 있다.- 카드에 등록된
체크리스트
,할일
,댓글
들도 함께 조회할 수 있다.
🔎 카드 수정
팀장 및 팀원
은제목
,설명
,마감일
,첨부 파일
을 수정할 수 있다.팀장 및 팀원
은 같은 카테고리 내에서 카드의순서
를 변경할 수 있다.팀장 및 팀원
은 카드를 다른 카테고리로 이동할 수 있다.
🔎 카드 삭제
팀장 및 팀원
은 카드를 삭제할 수 있다.
🔎 담당자 등록
팀장 및 팀원
은닉네임
을 통해 카드에담당자
를 등록할 수 있다.
🔎 담당자 삭제
팀장 및 팀원
은닉네임
을 통해 카드의담당자
를 삭제할 수 있다.
🔎 체크리스트 생성
팀장 및 팀원
은 카드에제목
을 입력하여 체크리스트를 등록할 수 있다.
🔎 체크리스트 수정
팀장 및 팀원
은 체크리스트의제목
을 수정할 수 있다.
🔎 체크리스트 삭제
팀장 및 팀원
은 체크리스트를 삭제할 수 있다.
🔎 할일 생성
팀장 및 팀원
은 체크리스트에내용
을 입력하여 할일을 등록할 수 있다.
🔎 할일 수정
팀장 및 팀원
은 할일의내용
을 수정할 수 있다.
🔎 할일 삭제
팀장 및 팀원
은 할일을 삭제할 수 있다.
🔎 댓글 생성
팀장 및 팀원
은 카드에 댓글을 입력할 수 있다.
🔎 댓글 수정
팀장 및 팀원
은 댓글을 수정할 수 있다.
🔎 댓글 삭제
팀장 및 팀원
은 댓글을 삭제할 수 있다.