Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEAT] 메인 브랜치에 프론트엔드 코드 통합 #945

Merged
merged 442 commits into from
Jan 9, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
442 commits
Select commit Hold shift + click to select a range
d1e0e22
hotfix: cors 수정
Gyaak Nov 4, 2024
234f3e1
hotfix: cors 수정
Gyaak Nov 4, 2024
7cdee95
hotfix: dev profile base-url 수정
Gyaak Nov 4, 2024
705935d
refactor: local mysql 설정 변경 (#389)
Gyaak Nov 4, 2024
bfc7f6c
[REFACTOR] api request, response 양식 통일 (#396)
sangwonsheep Nov 5, 2024
5438b59
hotfix: cors 설정에 https://local.minlife.me:3000 추가
sangwonsheep Nov 5, 2024
e07f92a
[REFACTOR] 폴더 멀티 이동 관련 버그 수정, Pick, Folder 변수명 통일 (#397)
sangwonsheep Nov 5, 2024
6a20cfb
[FEAT] Folder API 연결 (#399)
dmdgpdi Nov 6, 2024
0e0e532
fix: 테스트 application.yaml 수정 (#402)
Gyaak Nov 6, 2024
dee068a
[FIX] 다른 폴더로 이동되지 않는 문제, 스웨거 응답 예시 추가 (#403)
sangwonsheep Nov 6, 2024
3d25557
[FEAT] 폴더 클릭에 따른 라우팅 변경 (#405)
dmdgpdi Nov 7, 2024
f61220a
[FEAT] 검색 위젯 기능 구현 및 미사용 필터 제거 (#410)
kimminkyeu Nov 7, 2024
4841dfd
[FEAT] SecurityProperties 분리 (#415)
Gyaak Nov 10, 2024
04c97d2
[FEAT] 검색창 자동 완성 (#418)
kimminkyeu Nov 11, 2024
0c078a5
[FEAT] 같은 폴더 내에서 Pick Drag&Drop 구현 (#420)
dmdgpdi Nov 11, 2024
fe03a73
[FIX] 깃허브 액션 API 테스트
dmdgpdi Nov 11, 2024
bf673ec
[FEAT] pick bulk insert 구현 및 테스트 작성 (#409)
sangwonsheep Nov 12, 2024
add1168
[FIX] 검색창 버그 수정 및 URL 업데이트 (#424)
kimminkyeu Nov 12, 2024
95b2513
:rotating_light: fix: useSearchParams 사용처에 <Suspence> 추가
kimminkyeu Nov 13, 2024
0a3355a
[DESIGN] 폴더 영역 디자인 개선 (#430)
dmdgpdi Nov 13, 2024
b657731
[FEAT] 픽을 폴더로 이동하는 기능 추가 (#432)
dmdgpdi Nov 14, 2024
9d19340
[REFACTOR] 시큐리티 및 예외처리 리팩토링 (#427)
Gyaak Nov 14, 2024
ba5ecd3
[FIX] FolderService 로직 변경 (#434)
Gyaak Nov 14, 2024
8020973
[FIX] DragOver 수정 및 휴지통 이동 로직 변경 (#441)
dmdgpdi Nov 14, 2024
b653ceb
[FIX] 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트 (#446)
dmdgpdi Nov 14, 2024
fd3fc74
[FEAT] 로그인 리다이렉트 URL 추가 (#450)
dmdgpdi Nov 14, 2024
8d41135
[FEAT] 검색 기능 구현 (#454)
sangwonsheep Nov 15, 2024
882cc2e
[TEST] FolderService 단위 테스트 구현 (#440)
Gyaak Nov 15, 2024
91fcb39
refactor: security 모듈 api 모듈로 통합 (#451)
Gyaak Nov 15, 2024
520b2bc
[REFACTOR] 익스텐션 폴더 구조 변경 및 API 최신화 (#458)
dmdgpdi Nov 15, 2024
c30a837
[FIX] 로그인 이후 뒤로가기 시 로그인 화면으로 이동하지 못하게 수정 (#453)
dmdgpdi Nov 15, 2024
ae4a06a
[fix] 픽 검색 API 페이지네이션 적용 (#460)
kimminkyeu Nov 16, 2024
ac2ffb7
[FEAT] radix-color 추가 (#462)
dmdgpdi Nov 17, 2024
afe2cf9
chore: route 변수 수정
kimminkyeu Nov 17, 2024
a9f440f
feat: breadcrumb 적용
kimminkyeu Nov 17, 2024
80d4458
chore: 기타 스타일링
kimminkyeu Nov 17, 2024
e94c722
chore: 입력창 스타일링
kimminkyeu Nov 17, 2024
4e2446e
feat: 무한 스크롤 다듬기 작업
kimminkyeu Nov 17, 2024
6311831
feat: 검색창 변수 수정
kimminkyeu Nov 17, 2024
643204a
[DESIGN] 검색 바 디자인 개선 (#463)
kimminkyeu Nov 17, 2024
e30053d
fix: useSearchParams는 suspense로 반드시 감싸야 한다.
kimminkyeu Nov 17, 2024
288fe49
Merge remote-tracking branch 'refs/remotes/origin/frontend' into fron…
kimminkyeu Nov 17, 2024
b325721
refactor: ApiFolderErrorCode 오타 수정 (#468)
Gyaak Nov 18, 2024
82bab92
Update README.md
Gyaak Nov 18, 2024
abc3c9f
[CHORE] 운영환경 배포를 위한 frontend 브랜치 merge (#471)
Gyaak Nov 18, 2024
5123061
[FEAT] 메모 제거, 폴더 선택 추가(API 미연결), 우클릭시 사이트 이동 (#473)
dmdgpdi Nov 18, 2024
ca2eea0
[REFACTOR] 픽 리팩토링, 검색 테스트 구현 (#474)
sangwonsheep Nov 18, 2024
4f29142
refactor: 테스트 코드 ParameterizedTest로 리팩토링 (#476)
sangwonsheep Nov 18, 2024
4c4798c
[DESIGN] 익스텐션 디자인 변경 (#479)
dmdgpdi Nov 19, 2024
204f147
[FIX] 픽 수정 리팩토링 및 검증로직 개선 (#477)
Gyaak Nov 19, 2024
820e46e
[FEAT] error 메세지 전송 및 폰트 적용방식 변경 (#482)
dmdgpdi Nov 19, 2024
1194d47
feat: 폴더 응답에 생성 수정 일자 추가 (#485)
Gyaak Nov 19, 2024
a3d422d
[FEAT] 익스텐션 배포 전, 수정 (#489)
dmdgpdi Nov 19, 2024
ee9dfb5
hotfix: 익스텐션 design 변경
dmdgpdi Nov 19, 2024
5713eac
fix: zip파일 제거
dmdgpdi Nov 19, 2024
d53ce07
[CICD] AWS 배포 CICD 구축 (#494)
Gyaak Nov 19, 2024
e2abab6
[FEAT] 에러 요청에 대한 로깅 구현 (#481)
Gyaak Nov 19, 2024
8108af3
[fix] refetch 검색 안되는 문제 해결 (#496)
kimminkyeu Nov 19, 2024
c6e5ae2
[FEAT] 픽 렌더링 카드에서 리스트 아이템으로 교체 (#501)
dmdgpdi Nov 19, 2024
d7f9ddd
[FEAT] 폴더 export 기능 구현 (#504)
Gyaak Nov 20, 2024
2e76828
[DESIGN] 디자인 변경 (#500)
dmdgpdi Nov 20, 2024
796cdc0
[FEAT] 파비콘 추가 및 title 변경 (#503)
dmdgpdi Nov 20, 2024
ff1d512
[FEAT] 픽 제목 최대 길이 검증 및 Validation 검증 리팩토링 (#499)
sangwonsheep Nov 20, 2024
1e9f8a2
fix: title이 null일 때 터지는 오류 해결
kimminkyeu Nov 20, 2024
e9c29c3
fix: && 문법 오류 수정
kimminkyeu Nov 20, 2024
fb814b7
[BUG] 픽 태그 삭제 버그, 픽 수정 버그 수정 (#509)
sangwonsheep Nov 21, 2024
b6d89d1
refactor: 픽 생성 시 타이틀이 없으면 터지는 예외 해결
sangwonsheep Nov 21, 2024
944980b
refactor: 데드락 문제 해결을 위해 트랜잭션 범위 최소화
sangwonsheep Nov 21, 2024
1bb833d
[FEAT] PickRecord 컴포넌트 구현 및 pick 수정(태그, 타이틀)기능 구현 (#513)
dmdgpdi Nov 21, 2024
8c03418
[BUG] 픽 태그 리스트 수정 시 데드락 문제 수정 (#514)
sangwonsheep Nov 21, 2024
1a70e86
hotfix: Pick 엔티티의 Link Lazy -> Eager
sangwonsheep Nov 21, 2024
453c5cd
Merge branch 'backend-v2' of https://github.com/Kernel360/F2-TECHPICK…
sangwonsheep Nov 21, 2024
0f445ad
[FEAT] 픽 휴지통 이동 및 휴지통에서 픽 삭제 구현, 픽 포커스 변경 (#515)
dmdgpdi Nov 21, 2024
de3bf68
refactor: PickTag에 낙관적 락 설정
sangwonsheep Nov 21, 2024
6b39bae
refactor: Spring retry 추가
sangwonsheep Nov 21, 2024
b7980ea
[REFACTOR] PickTag 테이블에 낙관적 락 설정 (#519)
sangwonsheep Nov 21, 2024
55ffe59
Merge branch 'backend-v2' of https://github.com/Kernel360/F2-TECHPICK…
sangwonsheep Nov 21, 2024
1b24f4e
refactor: 픽태그 삭제 부분 수정
sangwonsheep Nov 21, 2024
4f4fd60
design: tag 생성이나 삭제 시에 TagAutocompleteDialog 위치 조정 (#520)
dmdgpdi Nov 21, 2024
d962b1c
[FIX] 두번 useEffect 호출 되는 거 방지 (#518)
dmdgpdi Nov 21, 2024
494aae9
refactor: pick 수정하는 부분에 비관적 락 추가 (#521)
sangwonsheep Nov 21, 2024
691b3f8
chore: 로그인 페이지 작업 (#508)
kimminkyeu Nov 21, 2024
7a215ca
[FEAT] 크롬 북마크 Import 기능 구현 (#522)
Gyaak Nov 21, 2024
dba0266
[DESIGN] 디자인 작업 (#524)
kimminkyeu Nov 21, 2024
4122d25
feat: og 태그 데이터 가져오는 api 구현 (#525)
sangwonsheep Nov 21, 2024
b8a31e6
refactor: 운영 서버에서 스웨거 접근 못하도록 변경 (#527)
sangwonsheep Nov 22, 2024
098c132
Merge branch 'release' into backend-v2
kimminkyeu Nov 22, 2024
28ed30b
Backend Api Release (#528)
kimminkyeu Nov 22, 2024
8675fe0
[DESIGN] 배포전 PR (#529)
dmdgpdi Nov 22, 2024
c844e24
chore: 배포 주석
dmdgpdi Nov 22, 2024
8c7b002
[CI/CD] 배포 release (#530)
dmdgpdi Nov 22, 2024
b52f325
fix: url 수정 및 구현안된 기능 숨기기
dmdgpdi Nov 22, 2024
a5a72a8
Merge branch 'backend-v2' of https://github.com/Kernel360/F2-TECHPICK…
dmdgpdi Nov 22, 2024
4a5abb7
Merge branch 'release' into frontend
dmdgpdi Nov 22, 2024
b78d4bf
fix: unused import 제거
dmdgpdi Nov 22, 2024
3769fa9
fix: 폴더 삭제 전체 삭제 변경
dmdgpdi Nov 22, 2024
ba66ae8
[FIX] tag CRUD 버그 수정 (#538)
dmdgpdi Nov 22, 2024
e4583f5
refactor: 프론트엔드 관련 코드 삭제
sangwonsheep Nov 22, 2024
5c3e8d6
Revert "[FIX] tag CRUD 버그 수정 (#538)"
dmdgpdi Nov 22, 2024
f5c59a8
Revert "fix: 폴더 삭제 전체 삭제 변경"
dmdgpdi Nov 22, 2024
40b7103
Revert "fix: unused import 제거"
dmdgpdi Nov 22, 2024
590e13b
Revert "Merge branch 'release' into frontend"
dmdgpdi Nov 22, 2024
eac1b7e
Revert "Merge branch 'backend-v2' of https://github.com/Kernel360/F2-…
dmdgpdi Nov 22, 2024
f81dbed
Revert "fix: url 수정 및 구현안된 기능 숨기기"
dmdgpdi Nov 22, 2024
5568d95
chore: revert 한 것들 복구
dmdgpdi Nov 22, 2024
1d7a9aa
[GIT] push (#550)
dmdgpdi Nov 22, 2024
13f3a89
Backend v2 (#551)
dmdgpdi Nov 22, 2024
45af178
chore: 깃 충돌 테스트를 위한 주석 추가한 코드
dmdgpdi Nov 22, 2024
83ccf20
refactor: 테스트를 위해 주석 추가
sangwonsheep Nov 22, 2024
b6b4b83
Merge branch 'release' into frontend
dmdgpdi Nov 22, 2024
d720655
chore: 깃 충돌 방지를 위한 테스트 커밋
dmdgpdi Nov 22, 2024
6479aa5
Frontend (#552)
dmdgpdi Nov 22, 2024
5c1ff47
Merge branch 'release' into backend-v2
sangwonsheep Nov 22, 2024
a56d655
refactor: 테스트를 위해 주석 추가
sangwonsheep Nov 22, 2024
fc685ca
Merge branch 'backend-v2' of https://github.com/Kernel360/F2-TECHPICK…
sangwonsheep Nov 22, 2024
fce977c
refactor: 프론트엔드 코드 삭제
sangwonsheep Nov 22, 2024
3c782ce
Revert "refactor: 프론트엔드 코드 삭제"
dmdgpdi Nov 22, 2024
69bb86e
Revert "Merge branch 'backend-v2' of https://github.com/Kernel360/F2-…
dmdgpdi Nov 22, 2024
0947006
Revert "refactor: 테스트를 위해 주석 추가"
dmdgpdi Nov 22, 2024
60c43ca
Revert "chore: 깃 충돌 방지를 위한 테스트 커밋"
dmdgpdi Nov 22, 2024
9457cc8
Revert "Merge branch 'release' into frontend"
dmdgpdi Nov 22, 2024
1de30d5
Revert "chore: 깃 충돌 테스트를 위한 주석 추가한 코드"
dmdgpdi Nov 22, 2024
8acc7ef
Revert "[GIT] push (#550)"
dmdgpdi Nov 22, 2024
6415ad5
fix: front와의 git 상태 통일
dmdgpdi Nov 22, 2024
f9bf9cc
Merge branch 'backend-v2' of https://github.com/Kernel360/F2-TECHPICK…
dmdgpdi Nov 22, 2024
d12025a
chore: add husky
dmdgpdi Nov 22, 2024
3807c9f
fix: backend folder 가져오기
dmdgpdi Nov 22, 2024
0939aa6
fix: 깃 충돌 방지를 위한 테스트 커믹
dmdgpdi Nov 22, 2024
86aaea2
[FIX] git 충돌 방지를 위한 커밋 테스트 (#560)
dmdgpdi Nov 22, 2024
e1ff0a4
[FIX] 깃 충돌 방지를 위한 테스트 커밋 (#561)
dmdgpdi Nov 22, 2024
b5809c3
ci/cd: 깃허브 액션 복구
dmdgpdi Nov 22, 2024
c33bd3e
Merge branch 'production-deploy' of https://github.com/Kernel360/F2-T…
dmdgpdi Nov 22, 2024
07b718a
fix: 충돌 방지를 위한 테스트 커밋
dmdgpdi Nov 22, 2024
5d72ce2
[FIX] 깃 충돌 방지를 위한 테스트 커밋 (#562)
dmdgpdi Nov 22, 2024
da4b280
[FIX] 깃 충돌 방지를 위한 깃허브 커밋 (#563)
dmdgpdi Nov 22, 2024
471e080
[FIX] 깃허브 액션 수정 (#564)
dmdgpdi Nov 22, 2024
f4314bb
fix: 깃 머지 테스트를 위한 commit
dmdgpdi Nov 22, 2024
952ff74
Merge branch 'production-deploy' of https://github.com/Kernel360/F2-T…
dmdgpdi Nov 22, 2024
9c1d394
fix: 깃 머지 테스트를 위한 commit
dmdgpdi Nov 22, 2024
3358d46
[FIX] 깃 충돌 방지를 위한 깃허브 커밋 (#566)
dmdgpdi Nov 22, 2024
2d287d8
fix: 깃 머지 테스트를 위한 commit
dmdgpdi Nov 22, 2024
68c1447
fix: 액션 테스트용 커밋
sangwonsheep Nov 22, 2024
4e8f289
fix: 깃 머지 테스트를 위한 commit
dmdgpdi Nov 22, 2024
adf6e33
[FIX] 원래 코드 복구 (#568)
dmdgpdi Nov 22, 2024
9b629cb
fix: 기존 작업 코드 복구
kimminkyeu Nov 22, 2024
7542636
fix: build 위해 안쓰는 파일 주석
dmdgpdi Nov 22, 2024
b9c8b62
[DESIGN] 픽 생성시 zIndex 추가 (#570)
dmdgpdi Nov 22, 2024
7818426
[FEAT] 배포를 위한 PR (#565)
dmdgpdi Nov 22, 2024
bf8de7d
fix: 배포위한 주석
dmdgpdi Nov 22, 2024
883bae0
[FIX] 현재 완전히 구현되지 않은 기능 UI 제거 (#576)
dmdgpdi Nov 25, 2024
26906af
Merge branch 'production-deploy' into frontend
dmdgpdi Nov 25, 2024
ca9744c
[FIX] PickRecord에서 태그가 보이지 않는 문제 수정 (#580)
dmdgpdi Nov 25, 2024
c393970
[FEAT] PickRecord 입력 UI 개선 및 수정중일 때 drag&drop 방지 (#593)
dmdgpdi Nov 25, 2024
7059c9b
[DESIGN] 픽 드래그 시의 디자인 개선 (#601)
dmdgpdi Nov 26, 2024
518149b
[FEAT] SPA에서 metadata 가져오기. (#589)
dmdgpdi Nov 27, 2024
e5fd005
[FEAT] 전체적인 디자인 변경 (#609)
dmdgpdi Nov 27, 2024
924aacc
[FIX] PickTagPicker 망가지는 UI 해결 (#610)
dmdgpdi Nov 27, 2024
f37115c
[FEAT] pick 로딩중인지, 빈 값인지 확인하는 로직 추가 (#615)
dmdgpdi Nov 28, 2024
b99d88e
[FIX] drag 끝날 때마다 MousePosition 초기화 (#617)
dmdgpdi Nov 28, 2024
f333b40
[FEAT] 휴지통 삭제 다이얼로그 추가 (#619)
dmdgpdi Nov 28, 2024
9a8521c
[FEAT] 헤더 추가 및 로그아웃 기능 추가 (#622)
dmdgpdi Nov 29, 2024
4279abc
[FEAT] 폴더 공유 다이얼로그 (#621)
obvoso Nov 29, 2024
85e0121
[FIX] 폴더 콘텍스트 및 다이얼로그 수정 및 공통 hook 생성 (#624)
dmdgpdi Nov 29, 2024
5aa1633
[FEAT] not-found 구현 (#629)
dmdgpdi Nov 29, 2024
df721ea
[FIX] 폴더 영역 넘치는 거에 따른 디자인 변경 (#632)
dmdgpdi Nov 29, 2024
80cb312
[FIX] 폴더 공유 API 타입 변경에 따른 타입 변경 (#641)
dmdgpdi Dec 1, 2024
387f081
[FEAT] Sentry 연결 (#642)
dmdgpdi Dec 2, 2024
e891271
[DESIGN] 앱의 전체적인 크기 줄이기 (#650)
dmdgpdi Dec 2, 2024
a9bc5b3
[FEAT] 링크 클릭 시에 이벤트 수집 추가 (#653)
dmdgpdi Dec 2, 2024
b99930d
[FEAT] 수요일 배포 전 PR (#662)
dmdgpdi Dec 3, 2024
4c1488a
[FIX] sentry global-error 추가 (#664)
dmdgpdi Dec 3, 2024
58cfb65
[FIX] 에러 메세지 JSON 올바르게 나오지 않던 것 변경 및 docker build 실패 원인 수정 (#673)
dmdgpdi Dec 4, 2024
f00a89c
[FEAT] 공개 폴더 페이지 및 설정 컴포넌트 (#674)
obvoso Dec 5, 2024
9516eb2
[FIX] 공유 폴더 접근 권한 버그 수정
obvoso Dec 5, 2024
d8bcc5b
[FEAT] 추천 페이지 구현 (#719)
dmdgpdi Dec 10, 2024
4fcf323
[CHORE] #719 코드리뷰 변경사항 적용 (#721)
dmdgpdi Dec 10, 2024
999c8c6
[FEAT] PICK 검색 다이얼로그 (#724)
obvoso Dec 10, 2024
a969e7f
[FIX] 공유 폴더 취소 시 동시성 문제 발생 해결 (#727)
obvoso Dec 10, 2024
bcb19d2
[FIX] 검색 결과 포커스 해제 (#739)
obvoso Dec 11, 2024
68998cd
[FEAT] add sentry session replay (#742)
obvoso Dec 11, 2024
a65200f
hotfix: 빌드 실패로 인한 sentry 재설정
dmdgpdi Dec 11, 2024
d3e8d8f
[FIX] 프론트엔드 이슈에 남겨진 버그 수정 (#752)
dmdgpdi Dec 11, 2024
592955b
style: 사이드바 색상 변경 (#761)
obvoso Dec 12, 2024
3c337e5
[FIX] 다른 폴더로 픽 이동 후 이동한 폴더 클릭 시 화면에 나타나지 않는 문제 수정 (#764)
dmdgpdi Dec 12, 2024
1aa9147
[FEAT] 익스텐션 에러 페이지 수정 및 에러 코드 추가, 버그 수정, 디자인 수정 (#760)
dmdgpdi Dec 12, 2024
d7d89ba
[FIX] 검색에서 특정 문자 입력시 cors 에러 발생 해결 (#771)
obvoso Dec 12, 2024
28358a9
[FEAT] 단축키 이벤트 핸들러, 컴포넌트 추가 (#773)
obvoso Dec 12, 2024
31c9192
[FEAT] 튜토리얼 로직 추가 (#779)
dmdgpdi Dec 13, 2024
b7d0502
[CI/CD] 백엔드 깃허브 액션 삭제 및 프론트 테스트 배포 액션 변경 (#781)
dmdgpdi Dec 13, 2024
aa90bbf
[FIX] 프론트엔드 테스트 배포 액션 branch target 올바르게 변경 (#782)
dmdgpdi Dec 13, 2024
4a03dff
[FEAT] 추천 픽 드래그 시에 크기 줄이기 (#785)
dmdgpdi Dec 13, 2024
3855d4f
[FIX] add max-width to filter select input (#787)
obvoso Dec 13, 2024
abe5cb1
[FEAT] 익스텐션 수정 (#789)
dmdgpdi Dec 13, 2024
2e40b47
[FIX] 이슈에 보고된 버그(폴더 이동 후, 포커싱 문재, 공유 폴더 많을시 스크롤 초과, 포커싱 유지 문제) 수정 및 백…
dmdgpdi Dec 14, 2024
055f1d5
[FEAT] 추천 페이지 디자인 변경 및 더블 클릭이 아닌 클릭으로 링크 이동 (#795)
dmdgpdi Dec 15, 2024
c5dfcad
[FIX] 현재 위치한 폴더에서 마이페이지 클릭 시 포커싱이 유지되는 문제 수정 (#796)
dmdgpdi Dec 15, 2024
b4c1239
[FEAT] 로그인 실패 UI 추가 (#797)
dmdgpdi Dec 15, 2024
479b6ab
[FEAT] 북마크 import 기능 추가 (#798)
dmdgpdi Dec 15, 2024
a2da0fb
[FEAT] 웹 서비스 내에서 픽 생성 기능 구현 (#804)
dmdgpdi Dec 16, 2024
8ae639a
[FIX] 익스텐션 제출 전 최종 수정 (#810)
dmdgpdi Dec 16, 2024
7c75e40
[CHORE] 익스텐션 버전 업그레이드 명시 (#811)
dmdgpdi Dec 16, 2024
a0e1eee
[FIX] Image컴포넌트 대신 img 적용 (#817)
dmdgpdi Dec 16, 2024
475dbf1
hotfix: image 컴포넌트 대신 img 태그 사용
dmdgpdi Dec 16, 2024
e82aec0
hotfix: image 컴포넌트 대신 img 레이아웃 고정
dmdgpdi Dec 16, 2024
c102412
[FEAT] FeedbackToolbar 구현 (#818)
dmdgpdi Dec 16, 2024
2cd8074
[DESIGN] 좌측 네비게이션바 디자인 변경 (#820)
dmdgpdi Dec 16, 2024
8235d75
[DESIGN] 공유중인 상태 표시 (#821)
dmdgpdi Dec 17, 2024
4372a9e
Update README.md
sangwonsheep Dec 17, 2024
b09784e
[FEAT] 필터 토글 삭제, 검색 바 디자인 변경 (#822)
dmdgpdi Dec 17, 2024
de3a274
[FIX] 검색바 press text 추가 (#823)
dmdgpdi Dec 17, 2024
9a666ca
hotfix: json 제대로 전달
dmdgpdi Dec 17, 2024
094f7e4
[FEAT] front (#826)
dmdgpdi Dec 17, 2024
dc513d7
chore: 바구니로 이름 수정
dmdgpdi Dec 17, 2024
4a5f3a6
design: 추천 페이지 디자인 수정
dmdgpdi Dec 17, 2024
f70345b
[FIX] 익스텐션 버그 hotfix (#830)
dmdgpdi Dec 17, 2024
e03df54
[FEAT] 익스텐션 제출 위한 버전 상승
dmdgpdi Dec 17, 2024
3e51237
[FIX] 익스텐션으로 인해 AWS 로그인이 안되는 문제 수정 (#831)
dmdgpdi Dec 17, 2024
8ce4ead
Update README.md
sangwonsheep Dec 19, 2024
37a14bb
Update README.md
sangwonsheep Dec 19, 2024
88f2fcc
[FIX] 픽 생성 UI 수정 및 공유 폴더 페이지 SSR 적용 (#842)
dmdgpdi Dec 19, 2024
d3810d6
[FIX] PickTagPicker 개선 (#846)
dmdgpdi Dec 19, 2024
73ee8c2
docs: 설명 추가
dmdgpdi Dec 19, 2024
d9bd763
[FEAT] 익스텐션 OG DATA 가져오는 방식 변경 (#855)
dmdgpdi Dec 23, 2024
579032a
[DESIGN] 드래그 앤 드랍 오버레이 투명도 반영 (#863)
dmdgpdi Dec 25, 2024
426db44
[CI/CD] sentry 계정 변경 (#861)
dmdgpdi Dec 25, 2024
62b6cd1
[FEAT] 사용하지 않는 의존성 제거 (#872)
dmdgpdi Dec 26, 2024
ed69cf0
[REFACTOR] 중복 스타일링 제거 (#871)
dmdgpdi Dec 26, 2024
a1cde58
[FIX] 잘못된 이미지 url일 때 엑스박스가 표기되는 문제 해결 (#875)
dmdgpdi Dec 27, 2024
37beb84
[FEAT] 공유 페이지에서 회원가입, 홈페이지 이동 버튼 추가 및 이벤트 로그 추적 (#880)
dmdgpdi Dec 27, 2024
680082f
[FIX] 검색 다이얼로그 색 하얀색으로 정상 적용 (#895)
dmdgpdi Dec 31, 2024
b68f248
[FEAT] 북마크 이동 시 토스트 알람 생성 (#891)
dmdgpdi Jan 1, 2025
6b25e05
[FEAT] 마이페이지에서 곧바로 튜토리얼 볼 수 있게 변경 (#890)
dmdgpdi Jan 1, 2025
7210f9a
[FIX] 토큰 만료 시 리다이렉트 작업, 태그 생성시 길이가 길면 알림 (#888)
dmdgpdi Jan 1, 2025
71bf6cc
[FEAT] OG Image 추가 (#886)
dmdgpdi Jan 1, 2025
250a2bc
[FIX] 테스트 서버 배포 도커 파일 수정 및 OG image 가져올 때 환경변수 제거 (#903)
dmdgpdi Jan 1, 2025
0410a70
[FIX] OG Image를 가져오는 경로를 절대 경로로 수정 (#904)
dmdgpdi Jan 1, 2025
0739edb
[FEAT] 기획 변경에 따른 익스텐션 변경 (#919)
dmdgpdi Jan 7, 2025
1bbf1fe
Merge branch 'defalut/feat/merge' into fe-develop
dmdgpdi Jan 7, 2025
a34925c
[CHORE] 디폴트 브랜치에 백엔드 코드 merge 가능한지 확인하는 PR (#922)
dmdgpdi Jan 7, 2025
777c247
Merge branch 'defalut/feat/merge' into fe-develop
dmdgpdi Jan 7, 2025
f742ca0
feat: 자동적으로 페이지 뷰 트래킹하지 않게 변경
dmdgpdi Jan 8, 2025
5cadbbc
[FEAT] 믹스패널로 사용자 식별 및 이벤트 추가 (#924)
dmdgpdi Jan 8, 2025
4c9c0b9
[FIX] 검색 창에서 태그 선택 후 esc 눌렀을 시 검색 창이 종료되는 문제 해결(#929)
dmdgpdi Jan 8, 2025
5c45164
[FEAT] 웹 사이트에서 북마크 생성하는 컴포넌트 및 로직 제거. 익스텐션 이동하는 방식으로 변경 (#931)
dmdgpdi Jan 8, 2025
b363c2f
[FIX] 길이가 짧은 폴더 공유 시 공유 취소 버튼이 짤리는 문제 수정 (#932)
dmdgpdi Jan 8, 2025
bfdf15c
[FEAT] dnd 충돌 알고리즘 수정 (#934)
dmdgpdi Jan 8, 2025
f4cfd01
[DESIGN] 픽 헤더 제목 영어 대신 한국어로 변경 (#935)
dmdgpdi Jan 8, 2025
af894a6
[FEAT] 크롬 익스텐션 전용 API 적용 (#940)
dmdgpdi Jan 8, 2025
ee4965c
[FIX] 웹에서 태그 생성 후 빈 태그가 생성이 가능한 문제 해결 (#941)
dmdgpdi Jan 8, 2025
125e03e
Merge branch 'readme' of https://github.com/Kernel360/F2-BAGUNI into …
dmdgpdi Jan 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
93 changes: 93 additions & 0 deletions .github/workflows/baguni.test.client.deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
name: Baguni Test Client CI/CD

# *****************************************
# NOTE: 추후 도커 허브 레포를 baguni로 변경할 예정
# *****************************************

on:
push:
branches:
- 'fe-develop'
workflow_dispatch:

jobs:
build:
runs-on: ubuntu-latest
env:
docker-hub-username: 'minkyeu'
docker-hub-repo: 'baguni' # TODO: change to baguni
module-name: 'baguni-client'
steps:
- # 저장소 Checkout
name: Checkout source code
uses: actions/checkout@v4

- # .env 파일 설정
name: Create .env.production
run: |
cd ./frontend/techpick
touch .env.production
echo "NEXT_PUBLIC_API=${{ secrets.FRONT_NEXT_PUBLIC_API }}" >> .env.production
echo "NEXT_PUBLIC_DOMAIN=${{ secrets.FRONT_NEXT_PUBLIC_DOMAIN }}" >> .env.production
echo "NEXT_PUBLIC_REDIRECT_URL=${{secrets.FRONT_NEXT_PUBLIC_REDIRECT_URL}}" >> .env.production
echo "NEXT_PUBLIC_MIXPANEL_TOKEN=${{secrets.FRONT_NEXT_PUBLIC_MIXPANEL_TOKEN}}" >> .env.production
echo "NEXT_PUBLIC_IMAGE_URL=${{secrets.FRONT_NEXT_PUBLIC_IMAGE_URL}}" >> .env.production

- # .env.sentry-build-plugin 설정
name: Create .env.sentry-build-plugin
run: |
cd ./frontend/techpick
touch .env.sentry-build-plugin
echo "SENTRY_AUTH_TOKEN=${{secrets.FRONT_SENTRY_AUTH_TOKEN}}" >> .env.sentry-build-plugin

- # Docker image 빌드
name: Build docker image
run: |
docker build -t ${{ env.docker-hub-username }}/${{ env.docker-hub-repo }}:${{ env.module-name }}-${{ github.sha }} frontend
- # Docker hub 로그인
name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ env.docker-hub-username }}
password: ${{ secrets.DOCKERHUB_REPO_BAGUNI_TOKEN }}
- # Docker hub 업로드
name: Publish to docker hub
run: docker push ${{ env.docker-hub-username }}/${{ env.docker-hub-repo }}:${{ env.module-name }}-${{ github.sha }}
- # 서버 ssh 접속 후 방금 올린 이미지 pull 받고 실행
name: Deploy on Test-Server
uses: appleboy/ssh-action@master
with:
host: minlife.me # test home server
port: 4242
username: root # root user
password: ${{ secrets.SSH_TEST_SERVER_KYEU_PASSWORD }}
script: |

echo "login docker hub for private repository access ..."
echo ${{ secrets.DOCKERHUB_REPO_BAGUNI_TOKEN }} | docker login -u ${{ env.docker-hub-username }} --password-stdin

echo "docker - pulling..."
docker pull ${{ env.docker-hub-username }}/${{ env.docker-hub-repo }}:${{ env.module-name }}-${{ github.sha }}

echo "docker - changing image name and tag ..."
docker tag ${{ env.docker-hub-username }}/${{ env.docker-hub-repo }}:${{ env.module-name }}-${{ github.sha }} ${{ env.docker-hub-repo }}:${{ env.module-name }}-staging

echo "moving to project directory..."
cd /home/project/baguni/develop

docker compose down ${{ env.module-name }}
docker compose up ${{ env.module-name }} -d

echo "docker - pruning images that passed 24h ..."
docker image prune -af --filter "until=24h"

- name: Discord Webhook Notification
uses: sarisia/[email protected]
if: always()
with:
webhook: ${{ secrets.DISCORD_WEBHOOK_URL }}
status: ${{ job.status }}
title: 'TEST CLIENT DEPLOY'
color: 0xff91a4
url: 'https://github.com/sarisia/actions-status-discord'
username: GitHub Actions
39 changes: 39 additions & 0 deletions .github/workflows/playwright.test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: Playwright Tests
on:
pull_request:
branches: [fe-develop]
workflow_dispatch:
jobs:
test:
timeout-minutes: 60
runs-on: ubuntu-latest
defaults:
run:
working-directory: frontend/techpick
steps:
- uses: actions/checkout@v4
- name: Enable Corepack
run: corepack enable

- uses: actions/setup-node@v4
with:
node-version: lts/*
cache: 'yarn'
cache-dependency-path: frontend/yarn.lock

- name: Install dependencies
run: yarn

- name: Install Playwright Browsers
run: yarn playwright install --with-deps

- name: Run Playwright tests
run: yarn playwright test

- name: 'Upload Playwright Report'
if: always()
uses: actions/upload-artifact@v4
with:
name: playwright-report
path: frontend/techpick/playwright-report/
retention-days: 10
6 changes: 0 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,9 +1,3 @@
.vscode
.DS_Store
.vscode/extensions.json
.vscode/settings.json
.idea
frontend/techpick/.env.production
frontend/techpick/.env.development
frontend/techpick-extension/.env.development
frontend/techpick-extension/.env.production
11 changes: 11 additions & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
if git diff --cached --name-only | grep -q '^frontend/techpick-extension'; then
echo "frontend/techpick-extension lint or tsc error"
cd "frontend/techpick-extension"
yarn lint
yarn tsc -b
elif git diff --cached --name-only | grep -q '^frontend/techpick'; then
echo "frontend/techpick lint or tsc error"
cd frontend/techpick
yarn lint
yarn tsc
fi
3 changes: 0 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,13 @@
## 팀 소개 페이지 [🔗 Notion](https://positive-airboat-4de.notion.site/Baguni-15841a7fba6580c59591e2d5d1c2414b)
[<img width="1464" alt="스크린샷 2024-12-18 오후 12 19 13" src="https://github.com/user-attachments/assets/2d1f8c70-fd90-4f4b-9494-3cf1e2f5813a" />](https://app.baguni.kr/)



## 팀원 소개
| **[팀장 : 김민규](https://github.com/kimminkyeu)** | **[팀원 : 김승태](https://github.com/dmdgpdi)** | **[팀원 : 오송민](https://github.com/obvoso)** | **[팀원 : 박수형](https://github.com/Gyaak)** | **[팀원 : 양상원](https://github.com/sangwonsheep)** |
| :-: | :-: | :-: | :-: | :-: |
| <a href="https://github.com/kimminkyeu"><img src="https://avatars.githubusercontent.com/kimminkyeu" width=200px /> | <a href="https://github.com/dmdgpdi"><img src="https://avatars.githubusercontent.com/dmdgpdi" width=200px /> | <a href="https://github.com/obvoso"><img src="https://avatars.githubusercontent.com/obvoso" width=200px /> | <a href="https://github.com/Gyaak"><img src="https://avatars.githubusercontent.com/Gyaak" width=200px /> | <a href="https://github.com/sangwonsheep"><img src="https://avatars.githubusercontent.com/sangwonsheep" width=200px /> |
| Backend | Frontend | Frontend | Backend | Backend |



## 프로젝트 소개
### 만들게 된 계기
<img width="785" alt="스크린샷 2024-12-19 오전 11 52 34" src="https://github.com/user-attachments/assets/125acbeb-312d-4cdd-ada9-108b237d8593" />
Expand Down
3 changes: 2 additions & 1 deletion backend/.env.sample
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
none
none

1 change: 1 addition & 0 deletions backend/baguni-api/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ dependencies {
// package for [@Transactional] + [@Aspect] + [Slice<T> from PickSliceResponse.java]
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'


// rabbitMQ
implementation 'org.springframework.boot:spring-boot-starter-amqp'
implementation 'org.springframework.amqp:spring-amqp:3.2.0'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;


import baguni.common.event.events.LinkEvent;
import baguni.common.event.messenger.CrawlingEventMessenger;
import io.swagger.v3.oas.annotations.Operation;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import baguni.domain.infrastructure.folder.dto.FolderCommand;
import baguni.domain.infrastructure.folder.dto.FolderResult;


@Mapper(
componentModel = "spring",
injectionStrategy = InjectionStrategy.CONSTRUCTOR,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,10 @@
import java.util.List;

import io.swagger.v3.oas.annotations.media.Schema;

import baguni.domain.model.folder.FolderType;


public record FolderApiResponse(
Long id,

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
package baguni.api.infrastructure.folder;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

import baguni.entity.model.folder.Folder;
import baguni.entity.model.folder.FolderRepository;
import baguni.entity.model.user.User;
import baguni.entity.model.user.UserRepository;
import lombok.RequiredArgsConstructor;
import baguni.api.service.folder.dto.FolderCommand;
import baguni.api.service.folder.exception.ApiFolderException;
import baguni.api.service.user.exception.ApiUserException;

@Component
@RequiredArgsConstructor
public class FolderDataHandler {

private final FolderRepository folderRepository;
private final UserRepository userRepository;

@Transactional
public void createMandatoryFolder(User user) {
folderRepository.save(Folder.createEmptyUnclassifiedFolder(user));
folderRepository.save(Folder.createEmptyRecycleBinFolder(user));
folderRepository.save(Folder.createEmptyRootFolder(user));
}

@Transactional(readOnly = true)
public Folder getFolder(Long folderId) {
return folderRepository.findById(folderId).orElseThrow(ApiFolderException::FOLDER_NOT_FOUND);
}

// idList에 포함된 모든 ID에 해당하는 폴더 리스트 조회, 순서를 보장하지 않음
@Transactional(readOnly = true)
public List<Folder> getFolderList(List<Long> folderIdList) {
List<Folder> folderList = folderRepository.findAllById(folderIdList);
// 조회리스트에 존재하지 않는 태그id가 존재하면 예외 발생
if (folderList.size() != folderIdList.size()) {
throw ApiFolderException.FOLDER_NOT_FOUND();
}
return folderList;
}

// idList에 포함된 모든 ID에 해당하는 폴더 리스트 조회, 순서는 idList의 순서를 따름
@Transactional(readOnly = true)
public List<Folder> getFolderListPreservingOrder(List<Long> folderIdList) {
List<Folder> folderList = folderRepository.findAllById(folderIdList);
// 조회리스트에 존재하지 않는 태그id가 존재하면 예외 발생
if (folderList.size() != folderIdList.size()) {
throw ApiFolderException.FOLDER_NOT_FOUND();
}
folderList.sort(Comparator.comparing(folder -> folderIdList.indexOf(folder.getId())));
return folderList;
}

@Transactional(readOnly = true)
public List<Folder> getFolderListByUserId(Long userId) {
return folderRepository.findByUserId(userId);
}

@Transactional(readOnly = true)
public Folder getRootFolder(Long userId) {
return folderRepository.findRootByUserId(userId);
}

@Transactional(readOnly = true)
public Folder getRecycleBin(Long userId) {
return folderRepository.findRecycleBinByUserId(userId);
}

@Transactional(readOnly = true)
public Folder getUnclassifiedFolder(Long userId) {
return folderRepository.findUnclassifiedByUserId(userId);
}

@Transactional
public Folder saveFolder(FolderCommand.Create command) {
User user = userRepository.findById(command.userId()).orElseThrow(ApiUserException::USER_NOT_FOUND);
Folder parentFolder = folderRepository.findById(command.parentFolderId())
.orElseThrow(ApiFolderException::FOLDER_NOT_FOUND);

Folder folder = folderRepository.save(Folder.createEmptyGeneralFolder(user, parentFolder, command.name()));
folder.getParentFolder().addChildFolderIdOrdered(folder.getId());
return folder;
}

@Transactional
public Folder updateFolder(FolderCommand.Update command) {
Folder folder = folderRepository.findById(command.id())
.orElseThrow(ApiFolderException::FOLDER_NOT_FOUND);
folder.updateFolderName(command.name());

return folder;
}

@Transactional
public List<Long> moveFolderWithinParent(FolderCommand.Move command) {
Folder parentFolder = folderRepository.findById(command.parentFolderId())
.orElseThrow(ApiFolderException::FOLDER_NOT_FOUND);

parentFolder.updateChildFolderIdOrderedList(command.idList(), command.orderIdx());
return parentFolder.getChildFolderIdOrderedList();
}

@Transactional
public List<Long> moveFolderToDifferentParent(FolderCommand.Move command) {
Folder folder = folderRepository.findById(command.idList().get(0))
.orElseThrow(ApiFolderException::FOLDER_NOT_FOUND);

Folder oldParent = folder.getParentFolder();
oldParent.getChildFolderIdOrderedList().removeAll(command.idList());

Folder newParent = folderRepository.findById(command.destinationFolderId())
.orElseThrow(ApiFolderException::FOLDER_NOT_FOUND);
newParent.addChildFolderIdOrderedList(command.idList(), command.orderIdx());

List<Folder> folderList = getFolderList(command.idList());
for (Folder moveFolder : folderList) {
moveFolder.updateParentFolder(newParent);
}

return newParent.getChildFolderIdOrderedList();
}

@Transactional
public void deleteFolderList(FolderCommand.Delete command) {

List<Folder> deleteList = new ArrayList<>();

for (Long id : command.idList()) {
Folder folder = folderRepository.findById(id)
.orElseThrow(ApiFolderException::FOLDER_NOT_FOUND);

Folder parentFolder = folder.getParentFolder();
parentFolder.removeChildFolderIdOrdered(folder.getId());

deleteList.add(folder);
}

folderRepository.deleteAllInBatch(deleteList);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package baguni.api.infrastructure.link;

import java.util.Optional;

import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

import baguni.entity.model.link.Link;
import baguni.entity.model.link.LinkRepository;
import lombok.RequiredArgsConstructor;
import baguni.api.service.link.exception.ApiLinkException;

@Component
@RequiredArgsConstructor
public class LinkDataHandler {
private final LinkRepository linkRepository;

@Transactional(readOnly = true)
public Link getLink(String url) {
return linkRepository.findByUrl(url).orElseThrow(ApiLinkException::LINK_NOT_FOUND);
}

@Transactional(readOnly = true)
public Optional<Link> getOptionalLink(String url) {
return linkRepository.findByUrl(url);
}

@Transactional
public Link saveLink(Link link) {
return linkRepository.save(link);
}

@Transactional(readOnly = true)
public boolean existsByUrl(String url) {
return linkRepository.existsByUrl(url);
}
}
Loading
Loading