Skip to content

feat(view): Newviz 스토리라인 시각화#1030

Closed
hyemimi wants to merge 80 commits into
mainfrom
newviz
Closed

feat(view): Newviz 스토리라인 시각화#1030
hyemimi wants to merge 80 commits into
mainfrom
newviz

Conversation

@hyemimi
Copy link
Copy Markdown
Contributor

@hyemimi hyemimi commented Oct 30, 2025

📃 Description

Storyline Chart

  • CSMDict 타입 데이터를 활용하여 복잡한 깃 데이터를 누구나 쉽게 알아볼 수 있도록 시각화합니다.
  • 릴리즈별 기여자의 여정을 재미있게 보여주는 Githru의 새로운 차트입니다.

📈 Result

1. 진입

스크린샷 2025-10-13 오후 11 30 41 Githru 메인 화면 우측 상단의 아이콘을 통해 진입

2. 필터

스크린샷 2025-10-29 오후 9 33 43 Start Release, End Release, 필터하고 싶은 기여자 선택

3. 스토리라인 뷰

Adobe Express - 스토리라인_안깨지는

✨ Feature

  • 릴리즈별 기여자의 폴더, 파일 기여 시각화
  • y축 폴더/파일 클릭시 새로운 차트로 이동할 수 있는 계층 구조
  • 기여자의 기여도를 한 눈에 확인할 수 있는 툴팁
  • 릴리즈/기여자 필터링
  • 노드 클릭시 해당 기여자의 스토리라인 애니메이션
  • 특정 기간(릴리즈) 동안의 Top Contributor 조회

hyemimi and others added 30 commits September 7, 2025 11:42
[feat]: 기여자 - 기여자, 파일 - 파일, 기여자-파일 관계 시각화를 위한 유틸리티
feat(view): 스토리라인 차트 UI 구현
  구현
  - getReleaseSubFolders 함수 추가로 release mode용
  서브폴더 추출 지원
  - handleFolderClick, handleGoUp,
  handleBreadcrumbClick에서 release/cluster mode
  분기 처리
  - currentDepth 계산 로직 개선으로 정확한 depth
  전달
- Remove all console.log and logDataFlow calls from production code
- Clean up verbose debugging statements in handlers and effects
- Improve code readability by removing noise

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Extract ClusterVisualization into separate component
- Extract ReleaseVisualization into separate component
- Reduce FolderActivityFlow.tsx from ~600 to ~250 lines
- Improve maintainability and single responsibility principle

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Create NavigationStrategy interface with ClusterModeStrategy and ReleaseModeStrategy
- Remove duplicated if-else blocks in navigation handlers
- Reduce code duplication from ~60 lines to ~20 lines per handler
- Improve extensibility for future mode additions

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Replace 'any' with proper ReleaseGroup type in NavigationStrategy
- Add explicit type annotation for diffStatistics.files entries
- Remove all 'any' type usage from FolderActivityFlow components
- Enhance type checking and IDE autocomplete support

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Create useFolderNavigation hook for state management
- Reduce FolderActivityFlow component from ~250 to ~170 lines
- Encapsulate navigation logic and state in reusable hook
- Improve testability and separation of concerns

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Add detailed JSDoc to visualization components
- Document function parameters and return values
- Add usage examples for key functions
- Improve IDE autocomplete and developer experience

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
…lease-analyzer

feature/newviz storyline release analyzer
- 명령형에서 함수형 프로그래밍 스타일로 전환
  - forEach + push 패턴을 flatMap으로 변경
  - for 루프를 reduce로 교체하여 불변성 보장
  - unshift 사용을 spread 연산자로 대체

- 타입 안정성 강화
  - ReduceAccumulator 인터페이스 명시적 선언
  - extractReleaseContributorActivities에 반환 타입 추가
  - ReleaseContributorActivity 타입 import 추가

- 코드 품질 개선
  - ESLint no-plusplus 규칙 준수 (++ 연산자 제거)
  - 불필요한 non-null assertion 제거
  - 가독성을 위한 변수 구조 분해 할당 추가

- JSDoc 및 주석 개선
  - 모든 함수에 영문 JSDoc 주석 추가
  - 인라인 주석을 한글에서 영문으로 변경
  - 파라미터 및 반환값 설명 보완

- 코드 포맷팅 통일
  - 화살표 함수 일관성 적용
  - 타입 선언 포맷팅 개선
  - trailing comma 통일
- Map.get() 결과에 대한 명시적 null 체크로 ! 연산자 제거
- @typescript-eslint/no-non-null-assertion 규칙 준수
- 타입 안정성 및 런타임 안전성 개선
oortmealy and others added 19 commits October 11, 2025 16:34
[refactor](view): 스토리라인 차트 브래드크럼 MUI 컴포넌트로 변경
[new feature](view): StoryLine chart 타이틀/서브타이틀 구현
[refactor] (view): Storyline Chart 컴포넌트 반응형 구현
* fix: lint 에러 해결

* fix: 타이머 로직 정리 및 툴팁 상태 관리 추가

* refactor: 불필요한 상태 관리 제거
- MUI Full-screen dialog 적용
- 디자인 변경
- 모달 타이틀 변경
…1018)

* refactor(view): 네트워크 그래프 삭제

* refactor(view): FolderActivityFlow -> StorylineChart 파일명 변경

* refactor: 스토리라인 차트 핸들링 함수명 변경
* feat: 기여자, 릴리즈 필터 추가

* feat: 스토리라인 필터 적용

* refactor: 스토리라인 차트 필터 스타일  변경 및  코드 주석 제거
* feat: 기여자, 릴리즈 필터 추가

* feat: 스토리라인 필터 적용

* refactor: 스토리라인 차트 필터 스타일  변경 및  코드 주석 제거

* feat: 스토리라인 애니메이션 추가

* refactor: lint 수정

* fix: lint

* fix: type error

* fix: conflict

* feat: 기여자, 릴리즈 필터 추가

* refactor: 스토리라인 차트 필터 스타일  변경 및  코드 주석 제거
Copy link
Copy Markdown
Contributor

@ytaek ytaek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

테스트까지 완전 방대하군요!!!!!!
newviz의 mainline 머지를 환영합니다!!!!!

Comment thread CLAUDE.md
@@ -0,0 +1,151 @@
# CLAUDE.md
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

클로드 memory bank?? 가 repo로 들어왔군요 ㅎㅎ
이런 것들도 잘 관리되면 좋긴 하겠습니다!

@hyemimi hyemimi closed this Oct 30, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants