Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
151 commits
Select commit Hold shift + click to select a range
27f3652
design(components/layout/Home.tsx): 홈 화면 UI/UX 기본 디자인 완성
Zaixian5 May 6, 2025
9b181cf
chore: 해결된 todo 주석 삭제
sony-string May 6, 2025
f95e561
feat(useDocumentSync): BE 에서 변경된 subscribe destination 에 대응
sony-string May 6, 2025
3df632c
fix: note를 최초로 불러올 때 클라이언트에 적용 안되는 문제
semteul May 7, 2025
fe09592
Merge pull request #40 from CBNU-MoaNote-CapstonDesign/feature/databa…
semteul May 7, 2025
d85403e
design: 반응형 레이아웃 완성 및 여러 컴포넌트로 나눔
Zaixian5 May 7, 2025
605fe4a
feat(component/document): `MarkdownEditor` 에서 커서 위치를 추적하게 함 #44
sony-string May 10, 2025
84a80d4
deps(assert): `tiny-invariant` 의존성 추가; dev mode 에서만 동작하는 assert
sony-string May 10, 2025
60eef93
fix(component/document): `documentRenderer` 컴포넌트에서 `MarkdownRenderer`…
sony-string May 10, 2025
97aba48
refactor(MarkdownEditor): `lastCursorPosition` 과 `cursorHandler` prop…
sony-string May 11, 2025
69375a4
style: 쓸데 없는 주석 삭제. 코드 변경 없음.
Zaixian5 May 12, 2025
20aa020
fix: 채팅 기능 복원
semteul May 12, 2025
544a363
feature(useChatSync): 동일 Chat id 메시지 update 기능 변경
semteul May 12, 2025
b3bcd8b
design/home과 병합
Zaixian5 May 12, 2025
51474fc
Merge branch 'dev' of https://github.com/CBNU-MoaNote-CapstonDesign/f…
Zaixian5 May 12, 2025
648cfa8
feature(useChatSync): 동일 Chat id 메시지 update 기능 변경
semteul May 13, 2025
64b1896
feature(useChatSync): 동일 Chat id 메시지 update 기능 변경
semteul May 13, 2025
e6889cc
feature: 홈 화면 레이아웃 버튼 및 링크 레이아웃 완성. 동작은 미구현
Zaixian5 May 13, 2025
9693649
Merge branch 'dev' of https://github.com/CBNU-MoaNote-CapstonDesign/f…
Zaixian5 May 13, 2025
3f9f5ae
Merge branch 'hotfix' into feature/home_action
Zaixian5 May 13, 2025
d6b962e
feature: 홈 화면에서 시작하기, 로그인 클릭 시 백엔드 로그인 서버로 연결
Zaixian5 May 14, 2025
b874b9b
Merge pull request #53 from CBNU-MoaNote-CapstonDesign/feature/home_a…
Zaixian5 May 14, 2025
488a493
design: 홈화면(모아노트 접속 시 최초 등장 화면) 디자인 개선
Zaixian5 May 21, 2025
a2739ee
design: 메인 화면(로그인 이후 등장하는 노트 화면) 디자인 완성
Zaixian5 May 21, 2025
d4f66ca
design: 모아 AI 챗봇 버튼 만듦
Zaixian5 May 27, 2025
db6ec82
design: 더 알아보기 버튼에 커서 포인터 효과를 추가
Zaixian5 May 27, 2025
e84ab9b
refactor: 서버에서 사용자/노트 정보를 가져올 수 있도록 컴포넌트 코드에 Props를 만들어 줌
Zaixian5 May 27, 2025
7dc5b61
design: 공유 사용자 초대 창 디자인
Zaixian5 May 31, 2025
b86c9e7
design: 본인 프로필 표시 UI 통합
Zaixian5 May 31, 2025
6cddb9b
feature: 노트 탐색기에 노트 ID가 표시되도록 함
Zaixian5 May 31, 2025
de2b230
design: 공유 편집자 초대시 공유자 프로필 표시되는 UI 완성
Zaixian5 May 31, 2025
9ff2581
remove: 더이상 필요 없는 기존 프로필 이미지 삭제
Zaixian5 May 31, 2025
54ecc5c
design: 노트 텍스트 편집 UI 일부 통합
Zaixian5 Jun 2, 2025
eeb61a0
design: 텍스트 편집 UI 통합 완료
Zaixian5 Jun 2, 2025
671fa1e
design: 현재 선택한 문서의 제목이 상단 네비게이션 바에 표시되도록 함
Zaixian5 Jun 2, 2025
73bd0e5
refactor: 기존 문서를 /main에서 띄우던 방식에서 각 노트 uuid로 링크를 연결해서 띄우는 방식으로 변경
Zaixian5 Jun 2, 2025
ca1cc4b
refactor: 새로 만든 컴포넌트를 사용하지 않고 기존 컴포넌트를 재사용하는 구조로 리팩토링
Zaixian5 Jun 4, 2025
a16eb4f
BugFix: DocumentRenderer에 TextBlock의 디자인을 옮기는 과정에서 그림자 효과가 누락되었던 버그 수정
Zaixian5 Jun 4, 2025
ea5f5de
rename: Final.tsx에서 Footer.tsx로 이름 변경
Zaixian5 Jun 4, 2025
46844c1
Merge pull request #67 from CBNU-MoaNote-CapstonDesign/design/note_page
Zaixian5 Jun 4, 2025
85cd0a6
feature: 노트 목록에 열고 닫을 수 있는 햄버거 버튼 기능 추가
Zaixian5 Jun 4, 2025
89751f5
refactor: 노트 링크 접속 방식 변경
Zaixian5 Jun 4, 2025
ee7b745
BugFix: 노트 링크로 이동시 화면이 살짝 밑으로 내려가던 버그 수정
Zaixian5 Jun 4, 2025
9e2b2cb
Merge pull request #68 from CBNU-MoaNote-CapstonDesign/design/note_di…
Zaixian5 Jun 4, 2025
fbb69ff
feature(file): 파일 구조 데이터 추가
semteul Jun 6, 2025
030b2b4
feature(file): 파일 관련 API call 함수 추가
semteul Jun 6, 2025
8030a2f
feature(file): 파일 테스트 페이지 추가
semteul Jun 6, 2025
5ee35c3
design: 폴더 생성 UI 디자인 완성
Zaixian5 Jun 4, 2025
b3b2976
design: 폴더구조 UI 완성
Zaixian5 Jun 6, 2025
830cba6
design: 폴더 안 폴더 구조 구현 + 노트 폴더에 중복 저장 불가 로직 추가
Zaixian5 Jun 6, 2025
99ebcbd
design: 상위 폴더의 노트가 하위 폴더 노트보다 위에 위치하도록 렌더링 순서 변경
Zaixian5 Jun 6, 2025
5a783d1
design: 생성된 폴더 수정 기능 추가
Zaixian5 Jun 6, 2025
192a094
refactor: 노트 폴더 구조 UI 컴포넌트 분리
Zaixian5 Jun 6, 2025
fa14bfd
BugFix: Note 타입 컴포넌트를 빠뜨렸던 버그 해결
Zaixian5 Jun 6, 2025
b083e1e
임시커밋 - 대충 통합 (미완)
semteul Jun 7, 2025
56cd4d8
feat(file): note 생성 기능 추가
semteul Jun 8, 2025
e49eb99
feat(file): navigation bar 제목 표시
semteul Jun 8, 2025
f8466e7
feat(file): 디렉토리와 노트 수정 기능 추가
semteul Jun 9, 2025
e8f4edb
feat: 텍스트 에디터에서 onChange 에 이용하기 위해, 두 문자열 사이 diff 구하는 알고리즘 구현
sony-string May 24, 2025
f685f53
test: Jest 를 통한 `simpleDiff.test.ts` 테스트 코드 작성. Jest 의존성 추가
sony-string May 24, 2025
86e8739
feat(CRDT): Fugue 알고리즘을 지원하는 자료구조 구현체 treenote 작성 #36
sony-string May 26, 2025
887d7a7
feat(CRDT): treenote 를 이용한 편집기 컴포넌트 추가 #36
sony-string May 26, 2025
1a96f16
feat: CRDT Op-based 연산을 주고받는 DTO type 정의
sony-string May 27, 2025
1123efd
feature(fugue): fugue 동작을 주고 받는 STOMP API 를 위한 sync hook 구현 및 기존 컴포너트…
semteul May 27, 2025
baba7f1
design: 홈 화면 타이핑 효과, 페이드 인 효과 적용
Zaixian5 Jun 10, 2025
0059a91
임시커밋
semteul Jun 9, 2025
6e91b8c
feat(diagram): 다이어그램 테스트 동기화 기능 완성 (하드코딩된 UUID)
semteul Jun 10, 2025
285f782
feat(chat): 채팅 기능 재통합, 이름 올바르게 뜨도록 수정
semteul Jun 10, 2025
079273e
feat(file): 초대 링크 임시 커밋
semteul Jun 10, 2025
2ade25b
feat(share): 공유링크 기능 보강
semteul Jun 10, 2025
acf986e
feat(share): 세그먼트 추가 API call 함수 추가
semteul Jun 10, 2025
c2c0a8c
feat(fugue): destination 변경
semteul Jun 10, 2025
afa9471
feat(shared): 디자인 수정
semteul Jun 10, 2025
8adb7f9
feat: treenote 불러오기 및 서버 동기화 가능
sony-string Jun 10, 2025
16a10c8
feat(diagram): 다이어그램
semteul Jun 10, 2025
604e778
chore: 잘못 커밋된 파일 삭제
sony-string Jun 10, 2025
56fcc00
fix: TreeBasedDocumentRenderer 의 초기화 및 수정사항 전파 오류 해결
sony-string Jun 10, 2025
a9ec290
temp: useFugueDocumentSync 로직을 TreeBasedDocumentRenderer 컴포넌트 내부에 복사하…
sony-string Jun 11, 2025
f247473
fix: stomp client 콜백함수에서 state 의 클로저가 오래된 state 를 참조하여 생기는 롤백 현상 수정 #74
sony-string Jul 7, 2025
5e504dd
bugFix: 19번 줄 text 타입 명시
Zaixian5 Jul 20, 2025
1d42ae4
bugFix: 305번 줄 Collaborator[]를 Promise 객체로 수정
Zaixian5 Jul 20, 2025
5388f66
bugFix: (버그는 아니지만 잠재적 오류 발생 가능성이 있어서 수정) getSharedFiles 함수의 반환 타입을 Pr…
Zaixian5 Jul 20, 2025
f21be6b
bugFix: 26번 줄 folder의 id 값과 24번 째줄 부터 반환하는 `<FolderItem/>` 부분 오류 수정
Zaixian5 Jul 20, 2025
230e663
bugFix: 102번 줄 `<select>`에서 collaborator.permission이 PermissionDTO 타입…
Zaixian5 Jul 20, 2025
2e11041
bugFix: User 타입이 글로벌 타입이기 때문에 import를 지워야 함 + fetchCurrentUserServerS…
Zaixian5 Jul 20, 2025
699f352
comment: 현재 사용되지 않는 컴포넌트라는 것을 표시하기 위해 주석 추가
Zaixian5 Jul 20, 2025
93a9e03
bugFix: TopNavigationBar에는 note라는 props 타입이 없지만, 15번 줄에서 note props를 …
Zaixian5 Jul 20, 2025
5479821
bugFix: user는 null이면 안 됨. user가 null인지 아닌지 체크하는 if문 추가
Zaixian5 Jul 20, 2025
e7b54f9
test: Treetest.tsx에서 onEditNote props 전달을 빠뜨리고 있던 부분 수정
Zaixian5 Jul 20, 2025
1db7081
bugFix: ExcalidrawElement의 import 경로가 잘못되어 있었던 오류를 수정
Zaixian5 Jul 20, 2025
7c7fd63
bugFix: getCollaborators에 null 체크 로직 추가
Zaixian5 Jul 20, 2025
9eb84b3
bugFix: `<option>`을 렌더링 할 때 각 자식에 고유한 key가 없었던 오류를 수정
Zaixian5 Jul 20, 2025
e18dd2f
bugFix: (이전 커밋의 FolderEditModal.tsx와 같은 오류) `<option>`을 렌더링 할 때 자식마다 …
Zaixian5 Jul 20, 2025
1f8e06c
bugFix: (이전 커밋의 FolderEditModal.tsx, NoteEditModal.tsx와 같은 오류) `<opti…
Zaixian5 Jul 20, 2025
2da725f
refactor: 폴더 추가 모달은 FolderAddModal.tsx인데, 노트 추가 모달 이름은 AddNoteModal.t…
Zaixian5 Jul 20, 2025
78e9c91
bugFix: 폴더 열고 닫기 토글 버튼이 동작하지 않던 버그를 수정
Zaixian5 Jul 20, 2025
eb9cf5d
refactor: 폴더 모달 관련 함수와 노트 모달 관련 함수 구조가 상이한 부분을 발견함. 혼란 최소화를 위해 구조 통일
Zaixian5 Jul 20, 2025
16f2a18
bugFix: (이전과 동일한 오류) 자식 리스트를 렌더링 할 때 Fragment에 고유한 key가 없었던 오류를 수정
Zaixian5 Jul 21, 2025
3a04012
bugFix: 백엔드 json 응답의 본문이 없는 경우에도 json을 파싱하도록 되어있었음. 본문이 없으면 true, 본문이…
Zaixian5 Jul 27, 2025
4f8ed25
format: 코드 전체 포매팅(prettier 사용)
Zaixian5 Jul 27, 2025
27524d1
bugFix: 폴더 수정 시, 체크박스 해제로 노트를 폴더에서 빼는 기능이 동작하지 않던 오류를 수정
Zaixian5 Jul 27, 2025
0eaf5a6
Fix typo: 노트를 폴더라고 써놨던 오타 수정
Zaixian5 Jul 27, 2025
e58948c
bugFix: 폴더 수정으로 노트 위치 이동 시, 트리 새로고침 타이밍이 맞지 않아 노트가 사라진 것 처럼 보이던 버그 수정
Zaixian5 Jul 27, 2025
0a9076c
bugFix: (이전 커밋과 동일한 오류) 폴더 생성 시에도 비동기 작업이 끝난 후에 트리 새로고침이 이루어 지도록 Prom…
Zaixian5 Jul 27, 2025
06e2343
test: POST 요청 출력, 트리 구조 로그 출력 테스트
Zaixian5 Jul 27, 2025
06a9a05
bugFix: AddNoteModal에서 NoteAddModal로 수정
Zaixian5 Aug 5, 2025
2bfbb8e
bugFix: collaborators에 null safty 추가
Zaixian5 Aug 5, 2025
5f7da28
design: 메모 편집 박스 및 제목 박스 디자인 개선
Zaixian5 Aug 5, 2025
03b45f3
design: 상단 네비게이션 바 디자인 개선
Zaixian5 Aug 5, 2025
06b10c3
feat: <body>에 UI를 랜더링 하기위한 Portal 컴포넌트 만듦
Zaixian5 Aug 5, 2025
b8ce4df
bugFix: blurr 처리와 모달 표시 위치 관련 오류 수정
Zaixian5 Aug 5, 2025
5964913
design: 노트 탐색기 + 추가버튼 + 노트/폴더 추가 모달 디자인 개선
Zaixian5 Aug 5, 2025
b22aff4
design: 노트/폴더 편집 모달 디자인 개선
Zaixian5 Aug 5, 2025
9dd6677
design: 노트/폴더 표시 디자인 수정
Zaixian5 Aug 5, 2025
39ffb25
design: 기본 노트 표시 UI 디자인 개선
Zaixian5 Aug 5, 2025
fdaf9b8
help: 버그 수정을 위해 로그 출력을 해보았으나, 버그를 해결하지 못함
Zaixian5 Aug 25, 2025
4fc6074
chore(TreeBasedDocumentRenderer): 사용하지 않는 import useFugueDocumentSync…
sony-string Aug 11, 2025
8690ac8
refactor: 사용되지 않는 플래그 변수 endEditing 제거 및 파라미터의 optional 특성 제거
sony-string Aug 11, 2025
496b067
feat(TreeBasedEditor): 기존 textarea 를 활용한 텍스트 에디터 컴포넌트를 contentEditabl…
sony-string Aug 11, 2025
2378923
Merge branch 'dev' into fix/remaining-bug-in-dev
Zaixian5 Sep 5, 2025
d3d8695
Merge pull request #76 from fix/remaining-bug-in-dev
Zaixian5 Sep 5, 2025
806e3f7
fix(http-request): http response 처리 시 본문이 있는 경우에도 본문을 무시하는 경우가 있는 오류 수정
sony-string Sep 8, 2025
dd6dc86
refactor(document-component): TreeBasedDocumentRenderer.tsx 의 문서 동기화 …
sony-string Sep 18, 2025
183eadb
feat(CodeEditor): monaco editor 에 동시 편집 기능을 적용한 코드 에디터 컴포넌트 추가
sony-string Sep 19, 2025
9ca251b
feat(NoteAddModal): 노트 추가 모달에 소스 코드 생성 선택 및 소스코드 언어 선택 기능을 위한 UI 추가
sony-string Sep 24, 2025
d52d5cb
코드 에디터 디자인 개선 및 기능 추가
Zaixian5 Sep 29, 2025
a361b36
feat: Language 에 파일 확장자 필드 추가
sony-string Sep 29, 2025
7667bcb
refactor(CodeEditor): 프로그래밍 언어 목록 데이터 중복 코드 삭제
sony-string Sep 29, 2025
fc97a3e
feat(createFile_Code]): 노트 추가 시 소스 코드 옵션을 선택했을 때 API 를 올바르게 호출하도록 구현함
sony-string Oct 1, 2025
6a1d3a2
fix(NoteAddModal): 언어 변경 실패 문제 및 일반 문서 생성 시 코드 문서가 생성되는 오류 수정
sony-string Oct 1, 2025
4e3a5ce
feat(NoteUI): 노트가 소스 코드인지 아닌지 서버로부터 데이터를 받아 적절한 에디터 UI 선택
sony-string Oct 11, 2025
0fe7a0c
feat(FolderItemTree): 폴더 깊이에 따른 Left-Margin 제거
sony-string Oct 11, 2025
d755624
feat(FolderItem): github 에서 import 한 폴더에 대해 github 로고가 표시되도록 추가
sony-string Oct 12, 2025
a7c7bd9
feat: add GitHub integration UI flows
sony-string Oct 12, 2025
a52f434
feat(Ask): 불러온 리포지토리에 대해 질문하여 답변을 생성받을 수 있는 페이지 추가
sony-string Nov 3, 2025
5e0c573
홈 화면 설명을 모아노트에서 코드 포레스트로 변경
Zaixian5 Oct 22, 2025
309df11
chore: 빌드를 위해 타입 오류와 린트 오류 수정
sony-string Nov 8, 2025
892d763
feat(loadFiles): 더 이상 폴더를 열기 전까진 하위 파일을 불러오지 않음
sony-string Nov 8, 2025
89a69c1
feat(InviteEditing): FolderItem 의 우클릭을 통한 초대 옵션 버튼 추가
sony-string Nov 9, 2025
ce58d1b
feat(InviteEditing): 권한 부여 취소 기능 API 연결
sony-string Nov 9, 2025
a213901
feat(FileModal): 폴더에 추가할 파일 선택 기능 제거
sony-string Nov 9, 2025
42fa2fd
enhance(api/file/list): 불필요한 재귀적 API 호출 로직 제거
sony-string Nov 9, 2025
6e81acd
feat(api/file/list): 페이지 마운트 시 백그라운드에서 미리 전체 파일 목록을 불러옴
sony-string Nov 9, 2025
391d9de
fix(CodeEditor): 수정 시에 긴 문서, 혹은 긴 수정 사항을 올바르게 SEND 하지 못하던 오류 수정
sony-string Nov 9, 2025
7eb2190
텍스트블록, 디자인블록, 새 노트 만들기(또는 단축키) 버튼 삭제
Zaixian5 Nov 9, 2025
3bca20d
fixup! 텍스트블록, 디자인블록, 새 노트 만들기(또는 단축키) 버튼 삭제
sony-string Nov 10, 2025
8cb698d
fix: <img /> 태그 린트 경고 해결
sony-string Nov 10, 2025
988e450
feat(Editor): 모든 문서를 monaco-editor 에서 수정하도록 변경
sony-string Nov 10, 2025
5feb856
layout(NoteUI): 좌우 빈 공간을 채우도록 스타일 수정
sony-string Nov 10, 2025
00ec355
feat(CodeEditor): 동시 편집 시에 caret 위치를 서로 공유할 수 있는 기능 추가
sony-string Nov 10, 2025
b16cba1
Merge remote-tracking branch 'origin/main' into dev
sony-string Nov 11, 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
7 changes: 5 additions & 2 deletions .env.local.example
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Debug 메시지 출력 여부
NEXT_PUBLIC_DEBUG=false
NEXT_PUBLIC_DEBUG=true

# NEXT app router URL
NEXT_PUBLIC_API_URL=http://localhost:3000
Expand All @@ -8,4 +8,7 @@ NEXT_PUBLIC_API_URL=http://localhost:3000
NEXT_PUBLIC_SERVER_URL=http://localhost:8080

# Backend WS server URL
NEXT_PUBLIC_SERVER_WS_URL=http://localhost:8080
NEXT_PUBLIC_SERVER_WS_URL=http://localhost:8080

# Backend Login Page
NEXT_PUBLIC_LOGIN_URL=http://localhost:8080/login
14 changes: 14 additions & 0 deletions babel.config.testenv.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
module.exports = function (api) {
const isTest = api.env('test');

if (isTest) {
return {
presets: [
['@babel/preset-env', {targets: {node: 'current'}}],
['@babel/preset-react', {runtime: 'automatic'}],
'@babel/preset-typescript',
],
};
}
return {};
};
42 changes: 42 additions & 0 deletions jest.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
/*
* For a detailed explanation regarding each configuration property, visit:
* https://jestjs.io/docs/configuration
*/

module.exports = {
transform: {
'^.+\\.(js|jsx|ts|tsx)$': ['babel-jest', { configFile: './babel.config.testenv.js' }],
},

// Automatically clear mock calls, instances, contexts and results before every test
clearMocks: true,

// Indicates whether the coverage information should be collected while executing the test
collectCoverage: false,

// The directory where Jest should output its coverage files
coverageDirectory: 'coverage',

// Indicates which provider should be used to instrument code for coverage
coverageProvider: 'v8',

// An array of file extensions your modules use
moduleFileExtensions: ['js', 'mjs', 'cjs', 'jsx', 'ts', 'tsx', 'json', 'node'],

// A map from regular expressions to module names or to arrays of module names that allow to stub out resources with a single module
moduleNameMapper: {
'^@/(.*)$': '<rootDir>/src/$1',
},

// The test environment that will be used for testing
testEnvironment: 'jest-environment-jsdom',

// The glob patterns Jest uses to detect test files
testMatch: [
'<rootDir>/**/*.test.(js|jsx|ts|tsx)',
'<rootDir>/(tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx))',
],

// An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation
transformIgnorePatterns: ['<rootDir>/node_modules/'],
};
13 changes: 12 additions & 1 deletion next.config.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,18 @@
import type { NextConfig } from "next";

const nextConfig: NextConfig = {
/* config options here */
images: {
remotePatterns: [
{
protocol: "https",
hostname: "avatars.githubusercontent.com",
},
{
protocol: "https",
hostname: "github.com",
},
],
},
};

export default nextConfig;
Loading