Skip to content

feat: 진행률 차트 및 일정 위젯 실데이터 연동 - #64

Merged
JiWoongE merged 1 commit into
developfrom
Feat/#62/progress-calendar-widgets-supabase
Jul 15, 2026
Merged

feat: 진행률 차트 및 일정 위젯 실데이터 연동#64
JiWoongE merged 1 commit into
developfrom
Feat/#62/progress-calendar-widgets-supabase

Conversation

@JiWoongE

@JiWoongE JiWoongE commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Pull Request

작업 내용

  • 진행률 차트 페이지와 사이드프로젝트 대시보드의 캘린더/오늘 일정 위젯을 mock 데이터 기반에서 Supabase 실데이터 기반으로 전환했습니다.
  • task 집계값은 기존 useTasksByWorkspaceIdcreateProgressChartSummary를 재사용하도록 정리했고, calendar_events는 위젯 전용 selector를 추가해 월간 캘린더/오늘 일정에 맞는 형태로 파생했습니다.
  • 위젯 카탈로그에서 workspaceId를 캘린더/오늘 일정 위젯까지 전달하도록 연결했습니다.

작업 결과

  • 진행률 차트가 workspace별 실제 task 데이터를 기준으로 렌더링됩니다.
  • 사이드프로젝트 대시보드의 캘린더 위젯이 실제 일정 데이터를 기준으로 월간 이벤트 점을 표시합니다.
  • 오늘 일정 위젯이 실제 일정 데이터를 기준으로 오늘 일정 목록을 표시합니다.
  • 기존 mock 일정 데이터 의존이 제거되었습니다.

변경 사항

Added

  • calendar_events → 위젯 UI용 파생 데이터를 만드는 selector 추가
    • 월간 캘린더용 CalendarMonth
    • 오늘 일정용 ScheduleEvent[]

Changed

  • calendar_events 조회 시 event_type까지 함께 읽도록 확장
  • 캘린더 이벤트 모델에 eventType 필드 추가
  • 사이드프로젝트 캘린더 위젯을 실데이터 기반으로 변경
  • 사이드프로젝트 오늘 일정 위젯을 실데이터 기반으로 변경
  • 위젯 카탈로그에서 두 위젯에 workspaceId 전달
  • 진행률 차트 담당자 막대 차트 눈금/높이 계산을 실제 데이터 기준으로 보정
  • 진행률 차트 페이지에 남아 있던 실연동 전 TODO 주석 제거

Fixed

  • 사이드프로젝트 대시보드 일정 위젯들이 mock 일정만 보이던 문제
  • 담당자별 업무 현황 차트의 Y축 눈금과 막대 높이 기준이 어긋날 수 있던 문제

실행화면

테스트

  • 로컬 실행 확인
  • 주요 시나리오 확인
  • 영향 범위 확인

리뷰 체크리스트

  • PR base branch가 올바릅니다. (feature/* -> develop, 배포 시 develop 또는 release/* -> main)
  • 브랜치명이 Type/#issue-number/description 형식을 따릅니다.
  • 커밋 메시지가 컨벤션을 따릅니다.
  • 불필요한 console.log, 주석, 임시 코드를 제거했습니다.
  • 타입 에러와 린트 에러를 확인했습니다.
  • CodeRabbit 1차 리뷰를 확인했습니다.
  • CodeRabbit 리뷰 반영 후 Discord에 공유했습니다.
  • 최소 1명 이상의 approve 후 merge합니다.

리뷰 요청사항

  • calendar_events를 위젯에서 재사용하기 위해 event_type과 날짜/시간 파생 로직을 selector로 분리했는데, 이 구조가 엔티티 책임 범위에 맞는지 봐주시면 좋겠습니다.
  • 현재 npm run typecheck는 이번 변경분 문제가 아니라 기존 developresend 모듈 누락 이슈로 전체 통과가 막히는 상태입니다.
  • 별도로 프로젝트 관리의 업무 생성은 auth/session 또는 task RPC 권한 이슈로 보여 후속 확인 예정입니다. 이번 PR 범위와는 분리해서 봐주시면 됩니다.

관련 이슈

Closes #62

Summary by CodeRabbit

  • 새로운 기능
    • 오늘 일정과 캘린더가 실제 워크스페이스 이벤트를 표시합니다.
    • 회의와 마감 일정 유형을 구분해 확인할 수 있습니다.
    • 오늘 일정 정렬 및 월간 이벤트 날짜 표시가 개선되었습니다.
    • 데이터 로딩, 오류, 빈 상태 안내가 추가되었습니다.
  • 개선 사항
    • 진행률 차트 눈금과 막대 높이가 데이터 규모에 맞게 동적으로 조정됩니다.
    • 대시보드 위젯이 현재 워크스페이스의 데이터를 사용합니다.

@coderabbitai

coderabbitai Bot commented Jul 15, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

캘린더 이벤트에 eventType을 추가하고 workspace별 실데이터를 기반으로 오늘 일정과 월간 캘린더를 계산하도록 변경했습니다. 위젯 카탈로그는 workspaceId를 전달하며, 진행률 차트 눈금은 데이터 최댓값에 따라 동적으로 계산됩니다.

Changes

캘린더 실데이터 위젯

Layer / File(s) Summary
이벤트 타입 계약과 매핑
src/entities/calendar-event/api/get-calendar-events-by-workspace-id.ts, src/entities/calendar-event/model/calendar-event.*
calendar_events 조회 결과에 event_type을 포함하고 이를 CalendarEvent.eventType으로 매핑합니다.
일정 셀렉터
src/entities/side-project/schedule-event/model/schedule-event.selectors.ts, src/entities/side-project/schedule-event/index.ts
오늘 이벤트를 날짜·시간·제목순으로 정렬하고, 월별 이벤트 날짜와 화면용 ScheduleEvent를 계산하는 셀렉터를 공개합니다.
대시보드 위젯 실데이터 연결
src/views/dashboard/config/widget-catalog.tsx, src/widgets/side-project/dashboard-*/ui/*
캘린더와 오늘 일정 위젯에 workspaceId를 전달하고, 조회 결과·로딩·오류·빈 상태를 렌더링합니다.

진행률 차트 표시 조정

Layer / File(s) Summary
동적 차트 눈금과 막대 비율
src/features/manage-progress-chart/ui/ProgressChartView.tsx, src/views/progress-chart/ui/ProgressChartPage.tsx
담당자 막대 차트의 눈금과 높이를 동적 최대값 기준으로 계산하고 기존 주석을 삭제합니다.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
  participant DashboardWidgetCatalog
  participant CalendarWidget
  participant TodayScheduleWidget
  participant useCalendarEventsByWorkspaceId
  participant getCalendarEventsByWorkspaceId
  participant Supabase
  DashboardWidgetCatalog->>CalendarWidget: workspaceId 전달
  DashboardWidgetCatalog->>TodayScheduleWidget: workspaceId 전달
  CalendarWidget->>useCalendarEventsByWorkspaceId: workspaceId로 이벤트 조회
  TodayScheduleWidget->>useCalendarEventsByWorkspaceId: workspaceId로 이벤트 조회
  useCalendarEventsByWorkspaceId->>getCalendarEventsByWorkspaceId: 캘린더 이벤트 요청
  getCalendarEventsByWorkspaceId->>Supabase: calendar_events 조회
  Supabase-->>getCalendarEventsByWorkspaceId: event_type 포함 이벤트 반환
  CalendarWidget-->>CalendarWidget: 월별 이벤트 날짜 계산
  TodayScheduleWidget-->>TodayScheduleWidget: 오늘 일정 정렬 및 매핑
Loading

Possibly related PRs

  • TeampleRun/syncly#18: 대시보드 캘린더·오늘 일정 위젯의 mock 기반 구현과 직접 연결됩니다.
  • TeampleRun/syncly#29: 위젯 렌더링에 workspaceId를 전달하는 흐름이 겹칩니다.
  • TeampleRun/syncly#59: 캘린더 이벤트 Supabase 조회와 도메인 매핑 경로를 직접 확장합니다.

Suggested reviewers: seongjinss555

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 25.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed 제목이 진행률 차트와 일정 위젯의 실데이터 연동이라는 핵심 변경을 간결하게 잘 요약합니다.
Description check ✅ Passed 작업 내용, 결과, 변경 사항, 테스트, 체크리스트, 이슈가 포함되어 템플릿을 대부분 충족합니다.
Linked Issues check ✅ Passed 캘린더/오늘 일정의 실데이터 전환과 위젯 연결, 빈/에러 상태 처리가 구현되어 이슈 목표를 대체로 충족합니다.
Out of Scope Changes check ✅ Passed 변경 사항은 모두 진행률 차트와 일정 위젯의 실데이터 연동 및 관련 보조 로직에 한정되어 있습니다.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch Feat/#62/progress-calendar-widgets-supabase

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/entities/side-project/schedule-event/model/schedule-event.selectors.ts`:
- Around line 6-12: Update formatIsoDate and the current-date calculation in
buildCalendarMonthFromEvents to extract year, month, and day in KST rather than
using local-time Date getters. Reuse the existing KST formatting approach, such
as Intl.DateTimeFormat, so computed calendar dates consistently match event.date
values from formatIsoDateInKst across client and SSR timezones.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 49bee589-db48-46b0-be6a-4470678b669f

📥 Commits

Reviewing files that changed from the base of the PR and between aa580e1 and f971609.

📒 Files selected for processing (11)
  • src/entities/calendar-event/api/get-calendar-events-by-workspace-id.ts
  • src/entities/calendar-event/model/calendar-event.mapper.ts
  • src/entities/calendar-event/model/calendar-event.types.ts
  • src/entities/side-project/schedule-event/index.ts
  • src/entities/side-project/schedule-event/model/schedule-event.mock.ts
  • src/entities/side-project/schedule-event/model/schedule-event.selectors.ts
  • src/features/manage-progress-chart/ui/ProgressChartView.tsx
  • src/views/dashboard/config/widget-catalog.tsx
  • src/views/progress-chart/ui/ProgressChartPage.tsx
  • src/widgets/side-project/dashboard-calendar/ui/Calendar.tsx
  • src/widgets/side-project/dashboard-today-schedule/ui/TodaySchedule.tsx
💤 Files with no reviewable changes (2)
  • src/views/progress-chart/ui/ProgressChartPage.tsx
  • src/entities/side-project/schedule-event/model/schedule-event.mock.ts

@seongjinss555 seongjinss555 left a comment

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.

고생하셨습니다~

@JiWoongE
JiWoongE merged commit 0a1260f into develop Jul 15, 2026
1 check passed
@JiWoongE
JiWoongE deleted the Feat/#62/progress-calendar-widgets-supabase branch July 15, 2026 10:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: 진행률 차트 및 캘린더 위젯 실데이터 연동

2 participants