Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
231 commits
Select commit Hold shift + click to select a range
b83a158
Fix : 변수명 변경
kangjunhyuk1 Dec 24, 2024
9ad3cb9
Merge pull request #1 from 3FT1/feature/card
kangjunhyuk1 Dec 24, 2024
9848556
fix : WorkspaceUser 엔티티 수정
Newbiekk-kkh Dec 24, 2024
fa10d6f
feat : Workspace, WorkspaceUser 초기 세팅
Newbiekk-kkh Dec 24, 2024
e6f79cc
feat : Workspace 멤버초대 기능 구현
Newbiekk-kkh Dec 24, 2024
52da70d
feat : 카드 리스트 CR(단건 조회)UD 구현
2unmini Dec 24, 2024
3039001
feat : Workspace 멤버역할 변경 기능 구현
Newbiekk-kkh Dec 24, 2024
866ab71
refactor : WorkspaceUser에 관련된 전부 WorkspaceMember로 리팩토링
Newbiekk-kkh Dec 24, 2024
45e7e0a
fix : Update, Delete 수정
2unmini Dec 24, 2024
784b6b2
feat : 워크스페이스 생성 기능 구현
Newbiekk-kkh Dec 26, 2024
2ad32da
feat : 워크스페이스 전체 조회 기능 구현
Newbiekk-kkh Dec 26, 2024
7c14e69
feat : 회원가입 및 유저 관련 기능 구현
Dec 26, 2024
7d7c5d3
feat : 워크스페이스 단일 조회 기능 구현
Newbiekk-kkh Dec 26, 2024
7368c52
feat : 회원가입 및 유저 관련 기능 구현
Dec 26, 2024
86b3d53
Feat : CardRequestDto 생성
kangjunhyuk1 Dec 26, 2024
ae7ccab
Feat : CardResponseDto 생성
kangjunhyuk1 Dec 26, 2024
8b227ee
Feat : QueryDslConfig 생성
kangjunhyuk1 Dec 26, 2024
6793c09
feat : 회원가입 및 우저 관련 기닁 구현
Dec 26, 2024
fb9a5f7
Feat : UpdateCardRequestDto 생성
kangjunhyuk1 Dec 26, 2024
c4dea2e
Feat : CardRepositoryCustom, CardRepositoryCustomImpl 생성
kangjunhyuk1 Dec 26, 2024
5e233f1
Feat : CardRepository의 상속 추가
kangjunhyuk1 Dec 26, 2024
1ccfd30
Feat : 카드생성, 삭제(하드 딜리트) 구현
kangjunhyuk1 Dec 26, 2024
5c38551
comment : 주석 추가
kangjunhyuk1 Dec 26, 2024
cbcab42
Merge pull request #2 from 3FT1/feature/user
2unmini Dec 26, 2024
64594e4
Merge branch 'develop' of https://github.com/3FT1/trello into feature…
2unmini Dec 26, 2024
5cecdbc
merge : develop → feature/workspace 로 병합
Newbiekk-kkh Dec 26, 2024
8b09e4e
Merge pull request #4 from 3FT1/feature/cardlist
2unmini Dec 26, 2024
4eea450
Mergc branch 'develop' of https://github.com/3FT1/trello into feature…
2unmini Dec 26, 2024
128eb86
Feat : CardRequestDto 코드 추가
kangjunhyuk1 Dec 26, 2024
d79e105
Merge remote-tracking branch 'refs/remotes/origin/develop' into featu…
Newbiekk-kkh Dec 26, 2024
c537045
Feat : UpdateCardResponseDto 추가
kangjunhyuk1 Dec 26, 2024
90a3a5f
Feat : CardResponseDto 코드 추가
kangjunhyuk1 Dec 26, 2024
6a29660
Comment : 카드 업데이트 기능 구현중
kangjunhyuk1 Dec 26, 2024
e3b9dba
Merge pull request #5 from 3FT1/feature/workspace
2unmini Dec 26, 2024
357516c
Merge branch 'develop' into feature/card
kangjunhyuk1 Dec 26, 2024
8228670
Merge branch 'develop' of https://github.com/3FT1/trello into feature…
2unmini Dec 26, 2024
1fe3b85
feat : 워크스페이스 수정 기능 구현
Newbiekk-kkh Dec 26, 2024
b9a0def
feat : 워크스페이스 삭제 기능 구현
Newbiekk-kkh Dec 26, 2024
54ee236
refactor : 워크스페이스의 생성을 로그인한 유저의 권한이 ADMIN 일때만 가능하도록 리팩토링
Newbiekk-kkh Dec 26, 2024
9086898
refactor : 워크스페이스의 조회를 로그인한 유저가 기준이 되도록 리팩토링
Newbiekk-kkh Dec 26, 2024
e435fb1
Fix : CardFindRequestDto, UpdateCardResponseDto 삭제
kangjunhyuk1 Dec 26, 2024
171a205
Feat : LocalDateTime의 @JsonFormat추가 및 CardRequestDto생성자 생성
kangjunhyuk1 Dec 26, 2024
d135d22
Feat : LocalDateTime의 @JsonFormat추가 및UpdateCardRequestDto생성자 생성
kangjunhyuk1 Dec 26, 2024
4fbd6fe
Feat : 카드 업데이트,단건조회 기능 구현, 구현한 기능 검사 완료
kangjunhyuk1 Dec 26, 2024
6ebc3b1
Feat : 카드 다건 조회 컨트롤러 추가
kangjunhyuk1 Dec 26, 2024
a1ba808
refactor : 워크스페이스의 수정 및 삭제를 로그인한 유저가 WORKSPACE 역할을 가지고 있을때만 가능하도록 수정
Newbiekk-kkh Dec 26, 2024
7be0fd0
fix : 워크스페이스 단건 조회시 제대로 조회가 안되던 부분 수정
Newbiekk-kkh Dec 26, 2024
d8f910c
refactor : 워크스페이스 멤버 초대 및 멤버 역할 수정 리팩토링
Newbiekk-kkh Dec 26, 2024
a3b28bb
Fix : 카드 다건 조회 조건변경
kangjunhyuk1 Dec 26, 2024
6a8af4a
Fix : 시작일,마감일의 타입 변경
kangjunhyuk1 Dec 26, 2024
2263c52
Feat : 카드 다건 조회 구현
kangjunhyuk1 Dec 26, 2024
3712d09
refactor : 워크스페이스 멤버 Repository 의 findByUserIdOrElseThrow 메서드명 변경
Newbiekk-kkh Dec 26, 2024
5444b99
feat : 보드 생성 기능 구현
Newbiekk-kkh Dec 26, 2024
b52ffb1
feat : 보드 전체 조회 기능 구현
Newbiekk-kkh Dec 26, 2024
e50578a
Fix : 카드 생성,조회시 유저 이름추가
kangjunhyuk1 Dec 26, 2024
826f304
fix : 각 요구 사항에 맞는 Update, Delete 수정
2unmini Dec 26, 2024
093a001
fix : 로그인 DTO 오타 수정
Dec 27, 2024
a6774c3
Merge pull request #6 from 3FT1/feature/cardlist
2unmini Dec 27, 2024
3c55255
Feat : 카드 다건 조회 페이징 적용
kangjunhyuk1 Dec 27, 2024
ad788c8
Merge branch 'develop' of https://github.com/3FT1/trello into feature…
2unmini Dec 27, 2024
d81d8ae
feat : 단일 보드 조회 기능 추가
Newbiekk-kkh Dec 27, 2024
79c5d80
Feat : 댓글 생성에 사용할 Dto 구현
kangjunhyuk1 Dec 27, 2024
8463cbe
Feat : 필드,생성자,어노테이션 추가
kangjunhyuk1 Dec 27, 2024
f3bd2ae
feat : 보드 수정 기능 추가
Newbiekk-kkh Dec 27, 2024
e6c7924
Feat : 댓글 생성 기능 구현
kangjunhyuk1 Dec 27, 2024
dca5657
feat : 보드 삭제 기능 추가
Newbiekk-kkh Dec 27, 2024
7ef259e
Feat : 카드 업데이트,삭제시 조건문 추가
kangjunhyuk1 Dec 27, 2024
080a22d
Feat : 댓글 업데이트에 사용할 Dto 생성
kangjunhyuk1 Dec 27, 2024
8ef60ce
Feat : 댓글 업데이트 기능 구현
kangjunhyuk1 Dec 27, 2024
26f938d
Feat : 댓글 삭제 기능 구현
kangjunhyuk1 Dec 27, 2024
1734568
feat : 슬랙알람 기능 구현
2unmini Dec 27, 2024
3c84393
Merge pull request #8 from 3FT1/feature/notification
2unmini Dec 27, 2024
5bca60e
Fix : 클래스명 변환
kangjunhyuk1 Dec 27, 2024
53bf88f
Fix : 닉네임 제거 밑 워크스페이스멤버 추가, 어노테이션 변경
kangjunhyuk1 Dec 27, 2024
d62275c
Fix : 닉네임 제거 밑 워크스페이스 멤버 아이디로 변경
kangjunhyuk1 Dec 27, 2024
8e72f24
Fix : 닉네임 제거 밑 워크스페이스 멤버 아이디로 변경
kangjunhyuk1 Dec 27, 2024
3659593
Fix : mapping 어노테이션 변경, @SessionAttribute적용
kangjunhyuk1 Dec 27, 2024
5413a2e
Fix : 변수명 변경
kangjunhyuk1 Dec 27, 2024
e102775
Fix : Builder 패턴 적용
kangjunhyuk1 Dec 27, 2024
6f06da3
Fix : 닉네임 제거, toDto 생성
kangjunhyuk1 Dec 27, 2024
b2cc8d6
Fix : userId 제거
kangjunhyuk1 Dec 27, 2024
ef44311
Fix : 닉네임 제거
kangjunhyuk1 Dec 27, 2024
7020f44
Fix : workspaceMember 추가, 닉네임 제거, 어노테이션 변경
kangjunhyuk1 Dec 27, 2024
0c14606
Fix : CommentResponseDto.toDto적용
kangjunhyuk1 Dec 27, 2024
5f582c7
Fix : workSpaceMember 추가 밑 Builder패턴 적용
kangjunhyuk1 Dec 27, 2024
6e746f1
Fix : workSpaceMemberId 추가
kangjunhyuk1 Dec 27, 2024
3ca9154
fix : enum Role 클래스 수정
Dec 27, 2024
fd8436d
Fix : 카드 업데이트,삭제 조건문 수정 및 단건, 다건 조회 Mapping 추가
kangjunhyuk1 Dec 27, 2024
07bb4e1
Fix : 댓글 조건문 변경
kangjunhyuk1 Dec 27, 2024
85b8b81
Merge remote-tracking branch 'refs/remotes/origin/develop' into featu…
Newbiekk-kkh Dec 27, 2024
4860d51
feat : 아마존 s3 파일 업로드 기능 구현
Newbiekk-kkh Dec 27, 2024
ea21fa6
feat : application.yml 파일 생성
Newbiekk-kkh Dec 27, 2024
7536a84
Fix : 잘못된 Mapping 수정
kangjunhyuk1 Dec 27, 2024
912e892
Fix : 클래스 이름 변경
kangjunhyuk1 Dec 27, 2024
73fe004
Merge pull request #12 from 3FT1/feature/workspace
2unmini Dec 27, 2024
5ceb741
토큰 생성 및 securrityFilter 구현
Dec 27, 2024
0f25802
Merge branch 'develop' of https://github.com/3FT1/trello into feature…
Dec 27, 2024
fa8511f
Merge branch 'develop' of https://github.com/3FT1/trello into feature…
kangjunhyuk1 Dec 27, 2024
50d712c
refactor : BoardController 과 BoardService 에서 Dto 를 매개변수로 받도록 수정
Newbiekk-kkh Dec 27, 2024
03bcb88
refactor : Workspace 및 WorkspaceMember 관련 Controller, Service 에서 매개변수…
Newbiekk-kkh Dec 27, 2024
1643974
refactor : Workspace 전체조회에서 불필요하게 데이터베이스에 2번 접근하던것을 1번 접근하도록 수정
Newbiekk-kkh Dec 27, 2024
afc74e7
Fix : 누락된 코드 추가
kangjunhyuk1 Dec 27, 2024
5c29080
Fix : startAt, endAt 타입 변경
kangjunhyuk1 Dec 27, 2024
fbe66d6
feat : 공통된 예외처리 구현
2unmini Dec 27, 2024
5679b32
Merge pull request #13 from 3FT1/feature/exception
2unmini Dec 27, 2024
3fc96ca
Merge branch 'develop' of https://github.com/3FT1/trello into feature…
kangjunhyuk1 Dec 27, 2024
7084596
Merge branch 'develop' of https://github.com/3FT1/trello into feature…
Dec 27, 2024
a943eb9
Merge remote-tracking branch 'origin/develop' into feature/workspace
Newbiekk-kkh Dec 27, 2024
7e64c6c
Merge branch 'feature/card' of https://github.com/3FT1/trello into fe…
kangjunhyuk1 Dec 27, 2024
425ed11
Fix : 오타 교정
kangjunhyuk1 Dec 27, 2024
17cae2d
fix : properties 수정 및 config 클래스 생성
Dec 27, 2024
128c0a2
Fix : @Transactional 추가
kangjunhyuk1 Dec 27, 2024
8f0ca1d
Fix : Mapping url 수정
kangjunhyuk1 Dec 27, 2024
e7a24df
Merge pull request #14 from 3FT1/feature/card
2unmini Dec 27, 2024
2da23f0
Merge pull request #15 from 3FT1/feature/user
2unmini Dec 27, 2024
941b84d
Merge branch 'develop' of https://github.com/3FT1/trello into feature…
kangjunhyuk1 Dec 27, 2024
6fcda9c
refactor : RuntimeException 으로 처리하던 예외를 커스텀예외를 생성하여 처리하도록 변경
Newbiekk-kkh Dec 27, 2024
5f6194a
Merge remote-tracking branch 'refs/remotes/origin/develop' into featu…
Newbiekk-kkh Dec 27, 2024
2a115a7
refactor : 세션에서 userId를 받아오는것에서 UserDetailsImpl에서 userId 값을 받아오도록 변경
Newbiekk-kkh Dec 27, 2024
beffc28
fix : 멤버역할 변경시 다른 워크스페이스의 멤버 역할을 변경할 수 있던 버그 수정
Newbiekk-kkh Dec 27, 2024
7190a6a
Fix : workSpaceMemberId 삭제
kangjunhyuk1 Dec 27, 2024
725f347
Fix : @AuthenticationPrincipal적용 및 변수명 변경,
kangjunhyuk1 Dec 27, 2024
2a5faa1
Fix : @AuthenticationPrincipal적용 및 변수명 변경,
kangjunhyuk1 Dec 27, 2024
2cf8610
Fix : workSpaceMemberId 삭제
kangjunhyuk1 Dec 27, 2024
7f9bab4
refactor : 입력 유효성 검증 확인을 위해 Validation 적용
Newbiekk-kkh Dec 27, 2024
1a6519c
Fix : @AuthenticationPrincipal적용 및 댓글 생성,수정,삭제시 조건문 추가
kangjunhyuk1 Dec 27, 2024
82a4620
chore : 리스트에 나올법한 예외를 커스텀하고 추가
2unmini Dec 28, 2024
e9b950a
feat : Board 에 이미지 업로드 기능 추가
Newbiekk-kkh Dec 29, 2024
6d72300
refactor : Board 에 색깔 컬럼을 ENUM 타입으로 변경
Newbiekk-kkh Dec 29, 2024
b15d75e
feat : Board 수정시 이미지 삽입 기능 추가
Newbiekk-kkh Dec 29, 2024
dfe6361
refactor : 각 도메인별 findById 메서드 에러를 각각에 맞는 커스텀에러로 리팩토링
Newbiekk-kkh Dec 29, 2024
65f8453
fix : 코드 수정
Dec 29, 2024
b86dd61
Merge pull request #16 from 3FT1/feature/user
2unmini Dec 29, 2024
ce423ed
Merge pull request #17 from 3FT1/feature/workspace
2unmini Dec 29, 2024
1965716
Merge pull request #18 from 3FT1/feature/cardlist
2unmini Dec 29, 2024
e37b1e9
feat : 유저 예외 처리 및 인터 셉터
Dec 29, 2024
6ebcb4d
Merge pull request #19 from 3FT1/feature/user
2unmini Dec 29, 2024
2a0fb15
refactor : BoardService 의 누락된 예외처리를 커스텀에러로 리팩토링
Newbiekk-kkh Dec 29, 2024
80935a4
feat : Board 에 이미지 업로드시 이미지 파일만 업로드가 가능하도록 확장자를 확인하는 기능 구현
Newbiekk-kkh Dec 29, 2024
f865c74
fix : 멤버 변경 Dto에서 NotBlank는 ENUM 타입을 받을 수 없어 NotNull로 변경
Newbiekk-kkh Dec 29, 2024
976da2b
Merge branch 'develop' of https://github.com/3FT1/trello into feature…
kangjunhyuk1 Dec 29, 2024
035df27
fix : 리드 권한을 가진 맴버에 대한 체크 메소드 수정
2unmini Dec 30, 2024
bcd4a8a
Merge pull request #20 from 3FT1/feature/role
2unmini Dec 30, 2024
9c5f03a
Fix : 파일 업로드기능
kangjunhyuk1 Dec 30, 2024
597ab9a
Merge branch 'develop' of https://github.com/3FT1/trello into feature…
kangjunhyuk1 Dec 30, 2024
e836c6a
Merge remote-tracking branch 'refs/remotes/origin/develop' into featu…
Newbiekk-kkh Dec 30, 2024
272c715
refactor : ReadOnly 역할이 할 수 없는 작업에 대한 예외처리를 공통메서드를 만들어서 처리하도록 리팩토링
Newbiekk-kkh Dec 30, 2024
ef90b52
Merge pull request #21 from 3FT1/feature/workspace
2unmini Dec 30, 2024
c460c75
Fix : 파일 삭제 기능구현
kangjunhyuk1 Dec 30, 2024
a76420d
Merge branch 'develop' of https://github.com/3FT1/trello into feature…
kangjunhyuk1 Dec 30, 2024
3d8e9b3
feat : 보드 수정 및 삭제시 s3에 기존에 업로드된이미지 파일도 삭제되는 기능 추가
Newbiekk-kkh Dec 30, 2024
4f3fe95
Fix : 에러 코드 구현
kangjunhyuk1 Dec 30, 2024
c2055d7
Fix : 에러 코드 구현 및 댓글 생성시 슬랙 알람 전송
kangjunhyuk1 Dec 30, 2024
fc96008
Fix : 카드 수정시 슬랙 알람 전송
kangjunhyuk1 Dec 30, 2024
fbf8b53
Fix : 클래스 파일 오타수정
kangjunhyuk1 Dec 30, 2024
14c3b9b
feat : 워크스페이스에 slackUrl 컬럼추가
Newbiekk-kkh Dec 30, 2024
a55206d
Merge pull request #23 from 3FT1/feature/workspace
2unmini Dec 30, 2024
8427e6c
Fix : 중복되는 코드 제거
kangjunhyuk1 Dec 30, 2024
619b6a1
Merge branch 'develop' of https://github.com/3FT1/trello into feature…
kangjunhyuk1 Dec 30, 2024
eac32d2
Fix : 오타 수정
kangjunhyuk1 Dec 30, 2024
79c4955
Fix : 같은 역할을 하는 코드 제거
kangjunhyuk1 Dec 30, 2024
47f6854
Merge pull request #25 from 3FT1/feature/card
2unmini Dec 30, 2024
999bbba
fix : 슬랙 알람 수정
2unmini Dec 30, 2024
9ed0fb4
Merge pull request #26 from 3FT1/feature/cardlist
2unmini Dec 30, 2024
a46f4c3
refactor : 보드, 워크스페이스 Controller 의 반환타입 통일화
Newbiekk-kkh Dec 30, 2024
9c351e9
fix : 업로드하는 이미지 파일이 null 일때 오류가 발생하던 현상 수정
Newbiekk-kkh Dec 30, 2024
7f73949
fix : 보드 업데이트시 파일의 확장자 검사를 실시 하도록 수정
Newbiekk-kkh Dec 30, 2024
608f451
Merge remote-tracking branch 'origin/develop' into feature/workspace
Newbiekk-kkh Dec 30, 2024
d0f4bfc
fix : BoardService 에 checkReadRole 메서드명이 잘못써져있던것 수정
Newbiekk-kkh Dec 30, 2024
a5b8ae1
feat : 파일 업로드시 최대사이즈(5MB) 설정 추가
Newbiekk-kkh Dec 30, 2024
22622ad
fix : 보드 업데이트시 파일의 확장자 검사를 실시 하도록 재 수정
Newbiekk-kkh Dec 30, 2024
3d0d68b
Merge pull request #28 from 3FT1/feature/workspace
2unmini Dec 30, 2024
13a0c29
refactor : 보드 이미지 업로드와 카드 첨부파일 업로드시 DB에 저장되는 형식 통일
Newbiekk-kkh Dec 30, 2024
e4be9cb
refactor : 파일 업로드, 삭제시 발생하는 에러를 BoardException 으로 리팩토링
Newbiekk-kkh Dec 30, 2024
46fbd8f
fix : 이미지 삭제시 subString 으로 파일명 자르던 부분 삭제
Newbiekk-kkh Dec 30, 2024
98fbd5e
Merge pull request #31 from 3FT1/feature/workspace
2unmini Dec 30, 2024
8fcb866
Create gradle-publish.yml
2unmini Dec 30, 2024
6c6cc42
Update gradle-publish.yml
kangjunhyuk1 Dec 30, 2024
933a50f
Update gradle-publish.yml
kangjunhyuk1 Dec 30, 2024
772f2dd
Update gradle-publish.yml
kangjunhyuk1 Dec 30, 2024
8790d98
Feat : docker 셋팅
kangjunhyuk1 Dec 30, 2024
9282c91
Update gradle-publish.yml
kangjunhyuk1 Dec 30, 2024
60d7843
Feat :
kangjunhyuk1 Dec 30, 2024
6d1a6b3
Merge branch 'feature/card' of https://github.com/3FT1/trello into fe…
kangjunhyuk1 Dec 30, 2024
5af98d9
Update gradle-publish.yml
kangjunhyuk1 Dec 30, 2024
475ad67
Update gradle-publish.yml
kangjunhyuk1 Dec 30, 2024
c80c617
Feat : 1차 시도
kangjunhyuk1 Dec 30, 2024
911d30b
Update gradle-publish.yml
kangjunhyuk1 Dec 30, 2024
5d8f2c0
Feat : 2차 시도
kangjunhyuk1 Dec 30, 2024
3272e91
Merge branch 'feature/card' of https://github.com/3FT1/trello into fe…
kangjunhyuk1 Dec 30, 2024
86cce1d
Update gradle-publish.yml
kangjunhyuk1 Dec 30, 2024
f6c2ada
Update gradle-publish.yml
kangjunhyuk1 Dec 30, 2024
88ff1db
Update gradle-publish.yml
kangjunhyuk1 Dec 30, 2024
62e6d23
Feat : 4차 시도
kangjunhyuk1 Dec 30, 2024
1347f54
Merge branch 'feature/card' of https://github.com/3FT1/trello into fe…
kangjunhyuk1 Dec 30, 2024
5ef68ca
Feat : 5차 시도
kangjunhyuk1 Dec 30, 2024
79d6612
Feat : 6차 시도
kangjunhyuk1 Dec 30, 2024
552db26
Update gradle-publish.yml
kangjunhyuk1 Dec 30, 2024
9531a51
Feat : 7차 시도
kangjunhyuk1 Dec 30, 2024
4216587
Update gradle-publish.yml
kangjunhyuk1 Dec 30, 2024
1d418c4
Feat : 8차 시도
kangjunhyuk1 Dec 30, 2024
7827a41
Update gradle-publish.yml
kangjunhyuk1 Dec 30, 2024
3a4faf1
Feat : 9차 시도
kangjunhyuk1 Dec 30, 2024
d7b75e6
Update gradle-publish.yml
2unmini Dec 30, 2024
0ae4aaf
Merge branch 'develop' of https://github.com/3FT1/trello into feature…
kangjunhyuk1 Dec 30, 2024
975bd6b
Merge pull request #35 from 3FT1/feature/card
kangjunhyuk1 Dec 30, 2024
20bc332
Update gradle-publish.yml
kangjunhyuk1 Dec 30, 2024
0ea9526
Feat : 9차 시도
kangjunhyuk1 Dec 30, 2024
40915a4
Update gradle-publish.yml
kangjunhyuk1 Dec 30, 2024
c41c97c
Feat : 11차 시도
kangjunhyuk1 Dec 30, 2024
d17a391
Update gradle-publish.yml
kangjunhyuk1 Dec 30, 2024
224e690
Feat : 12차 시도
kangjunhyuk1 Dec 30, 2024
fe4324d
Update gradle-publish.yml
kangjunhyuk1 Dec 30, 2024
806bb02
Feat : 13차 시도
kangjunhyuk1 Dec 30, 2024
ecf4134
Update gradle-publish.yml
kangjunhyuk1 Dec 30, 2024
7446969
Feat : 14차 시도
kangjunhyuk1 Dec 30, 2024
b216336
Update gradle-publish.yml
kangjunhyuk1 Dec 30, 2024
a960a8c
Feat : 15차 시도
kangjunhyuk1 Dec 30, 2024
2648b45
Update gradle-publish.yml
kangjunhyuk1 Dec 30, 2024
b73121b
Feat : 16차 시도
kangjunhyuk1 Dec 30, 2024
7b11b34
Update gradle-publish.yml
kangjunhyuk1 Dec 30, 2024
5e3a929
Feat : 17차 시도
kangjunhyuk1 Dec 30, 2024
6e7440e
Update gradle-publish.yml
kangjunhyuk1 Dec 30, 2024
050b95a
Feat : 18차 시도
kangjunhyuk1 Dec 30, 2024
a6e817a
Update gradle-publish.yml
kangjunhyuk1 Dec 30, 2024
0485659
Feat : 19차 시도
kangjunhyuk1 Dec 30, 2024
5e55f1c
docs : README.MD 작성
Newbiekk-kkh Dec 30, 2024
95b219d
Merge branch 'develop' of https://github.com/3FT1/trello into feature…
kangjunhyuk1 Dec 30, 2024
ac561ab
Feat : 변수 처리 추가
kangjunhyuk1 Dec 30, 2024
1bb19cd
Feat : 카드 업데이트시 워크스페이스 맴버를 바꿀 수 있도록 추가
kangjunhyuk1 Dec 30, 2024
4096fd1
Merge pull request #37 from 3FT1/feature/card
2unmini Dec 30, 2024
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
8 changes: 8 additions & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
DB_NAME=${{ secrets.DB_NAME }}
DB_USERNAME=${{ secrets.DB_PASSWORD }}
DB_PASSWORD=${{ secrets.DB_USERNAME }}


BUCKET_ACCESSKEY=${{ secrets.BUCKET_ACCESSORY }}
BUCKET_SECRETKEY=${{ secrets.BUCKET_SECRETARY }}
BUCKET_NAME=${{ secrets.BUCKET_NAME }}
58 changes: 58 additions & 0 deletions .github/workflows/gradle-publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow will build a package using Gradle and then publish it to GitHub packages when a release is created
# For more information see: https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#Publishing-using-gradle

name: Gradle Package

on: [ push ]

# https://github.com/marketplace/actions/build-and-push-docker-images
jobs:
docker-build-and-push:
runs-on: ubuntu-latest
steps:
-
name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ vars.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Set up QEMU
uses: docker/setup-qemu-action@v3
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
-
name: Build and push
uses: docker/build-push-action@v6
with:
file: /build/libs/*
push: true
tags: ${{ vars.DOCKERHUB_USERNAME }}/${{ vars.DOCKER_IMAGE_TAG_NAME }}:latest
# Ec2 에 배포
deploy-to-ec2:
needs: docker-build-and-push
runs-on: ubuntu-latest
# https://github.com/marketplace/actions/ssh-remote-commands
steps:
- name: Deploy to EC2
uses: appleboy/ssh-action@v1.2.0
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USER }}
key: ${{ secrets.EC2_KEY }}
script: |
CONTAINER_ID=$(sudo docker ps -q --filter "publish=8080-8080")

if [ ! -z "$CONTAINER_ID" ]; then
sudo docker stop $CONTAINER_ID
sudo docker rm $CONTAINER_ID
fi

sudo docker pull ${{ vars.DOCKERHUB_USERNAME }}/${{ vars.DOCKER_IMAGE_TAG_NAME }}:latest
sudo docker run -d -p 8080:8080 \
${{ vars.DOCKERHUB_USERNAME }}/${{ vars.DOCKER_IMAGE_TAG_NAME }}:latest
38 changes: 38 additions & 0 deletions Docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
version: '3'
services:
app:
image: trello:latest
build:
context: .
dockerfile: Dockerfile
ports:
- "8080:8080"
environment:
BUCKET_ACCESSKEY: ${BUCKET_ACCESSKEY}
BUCKET_SECRETKEY: ${BUCKET_SECRETKEY}
BUCKET_NAME: ${BUCKET_NAME}
SPRING_DATASOURCE_URL: jdbc:mysql://db:3306/trello?serverTimezone=Asia/Seoul&useSSL=false&allowPublicKeyRetrieval=true
SPRING_DATASOURCE_USERNAME: root
SPRING_DATASOURCE_PASSWORD: 1111
depends_on:
- db

db:
image: mysql:8.0
container_name: my-mysql
environment:
MYSQL_ROOT_PASSWORD: 1111
MYSQL_DATABASE: trello
MYSQL_USER: demo
MYSQL_PASSWORD: demo
ports:
- "3307:3306"
volumes:
- db_data:/var/lib/mysql
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
- --default-authentication-plugin=mysql_native_password

volumes:
db_data:
24 changes: 24 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
FROM eclipse-temurin:17-jdk-alpine

ARG JAR_FILE=build/libs/*.jar

COPY ${JAR_FILE} app.jar

ENTRYPOINT ["java", "-jar", "/app.jar"]

















72 changes: 72 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# Trello TeamProject
---
## 🦹‍ 12조 3FT1 팀원소개
|<img src="https://avatars.githubusercontent.com/u/183330093?v=4" width="150" height="150"/>|<img src="https://avatars.githubusercontent.com/u/183330589?v=4" width="150" height="150"/>|<img src="https://avatars.githubusercontent.com/u/174124185?v=4" width="150" height="150"/>|<img src="https://avatars.githubusercontent.com/u/183378078?v=4" width="150" height="150"/>|
|:-:|:-:|:-:|:-:|
|강준혁|고강혁|천준민|장우태|
|kangjunhyuk1<br/>[@kangjunhyuk1](https://github.com/kangjunhyuk1)|Newbiekk<br/>[@Newbiekk-kkh](https://github.com/Newbiekk-kkh)|2unmini<br/>[@2unmini](https://github.com/2unmini)|jangutae<br/>[@jangutae](https://github.com/jangutae)|
---
## 🛠️ Tools : <img src="https://img.shields.io/badge/mysql-4479A1?style=for-the-badge&logo=mysql&logoColor=white"> <img src="https://img.shields.io/badge/spring-6DB33F?style=for-the-badge&logo=github&logoColor=Green"> <img alt="Java" src ="https://img.shields.io/badge/Java-007396.svg?&style=for-the-badge&logo=Java&logoColor=white"/> <img alt="Java" src ="https://img.shields.io/badge/intellijidea-000000.svg?&style=for-the-badge&logo=intellijidea&logoColor=white"/> ![Amazon S3](https://img.shields.io/badge/Amazon%20S3-FF9900?style=for-the-badge&logo=amazons3&logoColor=white) ![Git](https://img.shields.io/badge/git-%23F05033.svg?style=for-the-badge&logo=git&logoColor=white) ![GitHub](https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge&logo=github&logoColor=white) ![Slack](https://img.shields.io/badge/Slack-4A154B?style=for-the-badge&logo=slack&logoColor=white)
- MySql 8.0
- Java 17
- SpringBoot 3.4.1
---
## 👨‍💻 Period : 2024/12/23 ~ 2024/12/30
---
## 👨‍💻 ERD
![image](https://github.com/user-attachments/assets/aba1e1ad-adc4-47e4-95e6-b416657efee3)


---
## 👨‍💻 API명세서

![플러스](https://github.com/user-attachments/assets/1833f1c6-2298-4244-bc2a-dbb4ecb02ff2)

---
## 👨‍💻 About Project

- 회원가입/로그인
- Spring security, JWT 를 사용해 인증 구현
- 아이디는 이메일 형식
- 탈퇴한 이메일 재사용 불가능 (회원 삭제를 STATUS ENUM 으로 관리)
- 비밀번호는 대소문자 포함 영문 + 숫자 + 특수문자 최소 1글자씩 포함
- 역할(ADMIN, USER) 에 따라 권한 부여

- 워크스페이스
- 제목, 설명, 슬랙URL 로 구성
- ADMIN 역할인 회원만 생성 가능
- 수정, 삭제 등 관리는 WORKSPACE 멤버역할을 가진 멤버만 가능

- 워크스페이스 멤버
- 멤버 역할(WORKSPACE, BOARD, READ_ONLY)로 구성
- ADMIN 역할을 가진 회원만 WORKSPACE 역할 부여 가능
- 워크스페이스 멤버 초대는 WORKSPACE 역할만 가능

- 보드
- READ_ONLY 역할을 제외한 워크스페이스의 멤버만 생성, 수정, 삭제 가능
- 보드는 제목, 배경색, 이미지 설정 가능
- 배경으로 쓸 이미지 업로드 기능 구현 (jpg, png, jpeg, gif 이외의 확장자는 업로드 불가능)
- 단일 조회시, 보드에 속한 리스트, 카드 전체 조회 가능

- 리스트
- READ_ONLY 역할을 제외한 워크스페이스의 멤버만 생성, 수정, 삭제 가능
- 리스트는 제목, 순서 설정 가능

- 카드
- READ_ONLY 역할을 제외한 워크스페이스의 멤버만 생성, 수정, 삭제 가능
- 카드는 제목, 설명, 마감일, 담당자 멤버 등을 추가 가능
- 카드의 제목, 내용, 마감일, 담당자 이름 등을 기준으로 페이징하여 검색 (쿼리DSL 활용)
- 첨부파일 기능 구현 (첨부파일 업로드, 삭제, 조회) / 정해진 확장자(jpg, png, jpeg, gif, pdf, csv) 이외는 업로드 불가능

- 댓글
- 카드 내에 댓글 작성 기능 ( 텍스트와 이모지 작성 )
- READ_ONLY 역할을 제외한 워크스페이스의 멤버만 생성 가능
- 댓글은 작성자만 수정, 삭제 가능

- 알림
- 멤버 추가 / 카드 변경 / 댓글 작성 시 워크스페이스 생성시 등록했던 슬랙Url로 실시간 알림 제공
---

## 😭 아쉬운점
- 제출 당일 새벽 4시까지 팀원들 모두가 모여서 CI/CD 배포를 하려했으나, 지속되는 오류에 포기한 점이 아쉽습니다. 다음 최종 프로젝트에선 꼭 누락되는 기능 없이 구현해보고 싶습니다.
- Spring security 로 인증은 구현하였으나, 인가는 구현하지 못했습니다. 이또한 추가적인 학습 후에 구현해보고 싶습니다.
12 changes: 12 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -28,18 +28,30 @@ dependencies {
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'com.mysql:mysql-connector-j'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'

// JWT
compileOnly 'io.jsonwebtoken:jjwt-api:0.12.3'
runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.12.3'
runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.12.3'

// QueryDSL
implementation "com.querydsl:querydsl-jpa:5.0.0:jakarta"
annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"

//Slack
implementation 'com.slack.api:slack-api-client:1.27.2'

// Apache Commons IO 라이브러리
implementation 'commons-io:commons-io:2.11.0'
}

tasks.named('test') {
Expand Down
22 changes: 20 additions & 2 deletions src/main/java/com/example/trello/board/Board.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.example.trello.cardlist.CardList;
import com.example.trello.workspace.Workspace;
import jakarta.persistence.*;
import lombok.Builder;
import lombok.Getter;

import java.util.List;
Expand All @@ -15,11 +16,12 @@ public class Board {
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Column(name = "title")
@Column(name = "title", nullable = false)
private String title;

@Column(name = "color")
private String color;
@Enumerated(EnumType.STRING)
private BoardColor color;

@Column(name = "image")
private String image;
Expand All @@ -30,4 +32,20 @@ public class Board {
@OneToMany(mappedBy = "board", cascade = CascadeType.ALL, orphanRemoval = true)
private List<CardList> cardLists;

public Board() {
}

@Builder
public Board(String title, BoardColor color, String image, Workspace workspace) {
this.title = title;
this.color = color;
this.image = image;
this.workspace = workspace;
}

public void updateBoard(String title, BoardColor color, String image) {
this.title = title;
this.color = color;
this.image = image;
}
}
12 changes: 12 additions & 0 deletions src/main/java/com/example/trello/board/BoardColor.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.example.trello.board;

public enum BoardColor {
BLACK,
BLUE,
RED,
WHITE,
ORANGE,
PURPLE,
YELLOW,
GREEN
}
52 changes: 52 additions & 0 deletions src/main/java/com/example/trello/board/BoardController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package com.example.trello.board;

import com.example.trello.board.dto.*;
import com.example.trello.config.auth.UserDetailsImpl;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequiredArgsConstructor
@RequestMapping("/boards")
public class BoardController {
private final BoardService boardService;

@PostMapping
public ResponseEntity<BoardResponseDto> createBoard(
@Valid @ModelAttribute BoardRequestDto dto,
@AuthenticationPrincipal UserDetailsImpl userDetails) {

BoardResponseDto boardResponseDto = boardService.createBoard(dto, userDetails.getUser().getId());
return new ResponseEntity<>(boardResponseDto, HttpStatus.CREATED);
}

@GetMapping
public ResponseEntity<List<BoardResponseDto>> viewAllBoard(@Valid @RequestBody viewAllBoardRequestDto dto, @AuthenticationPrincipal UserDetailsImpl userDetails) {
List<BoardResponseDto> boardResponseDtoList = boardService.viewAllBoard(dto, userDetails.getUser().getId());
return new ResponseEntity<>(boardResponseDtoList, HttpStatus.OK);
}

@GetMapping("/{boardId}")
public ResponseEntity<BoardDetailResponseDto> viewBoard(@PathVariable Long boardId, @AuthenticationPrincipal UserDetailsImpl userDetails) {
BoardDetailResponseDto boardDetailResponseDto = boardService.viewBoard(boardId, userDetails.getUser().getId());
return new ResponseEntity<>(boardDetailResponseDto, HttpStatus.OK);
}

@PatchMapping("/{boardId}")
public ResponseEntity<BoardResponseDto> updateBoard(@PathVariable Long boardId, @Valid @ModelAttribute UpdateBoardRequestDto dto, @AuthenticationPrincipal UserDetailsImpl userDetails) {
BoardResponseDto updatedBoardResponseDto = boardService.updateBoard(boardId, dto, userDetails.getUser().getId());
return new ResponseEntity<>(updatedBoardResponseDto, HttpStatus.OK);
}

@DeleteMapping("/{boardId}")
public ResponseEntity<String> deleteBoard(@PathVariable Long boardId, @AuthenticationPrincipal UserDetailsImpl userDetails) {
boardService.deleteBoard(boardId, userDetails.getUser().getId());
return new ResponseEntity<>("보드가 정상적으로 삭제되었습니다.", HttpStatus.OK);
}
}
7 changes: 6 additions & 1 deletion src/main/java/com/example/trello/board/BoardRepository.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
package com.example.trello.board;

import com.example.trello.common.exception.BoardErrorCode;
import com.example.trello.common.exception.BoardException;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface BoardRepository extends JpaRepository<Board, Long> {
List<Board> findAllByWorkspaceId(Long workspaceId);

default Board findByIdOrElseThrow(Long id){
return findById(id).orElseThrow(()->new RuntimeException());
return findById(id).orElseThrow(() -> new BoardException(BoardErrorCode.CAN_NOT_FIND_BOARD_WITH_BOARD_ID));
}
}
Loading
Loading