-
Notifications
You must be signed in to change notification settings - Fork 4
✨메인 태스크 및 깃허브, 레포지토리 테이블 CRUD 수퍼베이스 작성 #63
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
base: develop
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
현재 제 코드와 합쳐서 실행을 해보진 않았고 코드 리뷰로 궁금한 점만 남겼습니다!
실제 제 코드에 연결해서 테스트하는건 토요일 저녁부터 해보도록 하겠습니다.
| repo_id: number; | ||
| repo_name: string; | ||
| repo_url: string; | ||
| installation_id: number; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이게 github app용 id인거 같은데 해당 id는 어디에서 가져올 수 있는지 궁금합니다
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
installation_id: number 를 말씀하시는 것 같습니다.
installation_id는 GitHub App이 Organizatio 설치될 때 부여되는 고유 ID입니다.
GitHub App 설정 화면의 Install App 메뉴에서 설치된 항목을 클릭 후 확인 가능합니다.
해당 id에 대한 필요성은 현재 작업하면서 제거 가능성이 있는 컬럼 입니다.
| name: string; | ||
| title: string; | ||
| body: string; | ||
| raw: string; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
github api 둘 다 확인해도 raw라는 필드는 안보이는데 해당 값은 어떤 곳에 사용되는걸까요?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
넵 해당 raw 컬럼은 불필요한 컬럼 입니다. 문서와 AI를 쓰면서 잘못 들어간 부분 입니다. 해당 컬럼은 삭제하고 (수퍼베이스에도 동일하게) 반영하겠습니다!
| // import { useAuthStore } from '@/stores/authStore'; | ||
|
|
||
| // const isGuest: boolean = useAuthStore.getState().isGuest; | ||
| const isGuest = false; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
확인했습니다.
✨ 주요 기능 - 하드코딩된 프로젝트/팀 목록을 Supabase 기반 동적 관리로 전환 - ID/Name 매핑 시스템으로 표시(이름)와 저장(ID) 분리 - 프로젝트별 독립적인 accordion 토글 기능 - GitHub 저장소 연동 및 동적 사용자 관리 - task_priority와 state label 간 양방향 매핑 🔧 데이터 매핑 및 변환 - mapProjectIdToName/mapTeamIdToName: ID→이름 변환으로 UI 표시 개선 - taskPriorityIdToStateKey/stateKeyToTaskPriorityId: 서버(1-5) ↔ 클라이언트(hold-veryhigh) 매핑 - 필터 없음 상태에서도 모든 프로젝트/팀 레이아웃 생성 🗃️ 새로운 Store 시스템 - issueStore: Supabase 연동 이슈 관리 및 매핑 함수 - userStore: nettee_user 테이블 기반 동적 사용자 관리 - filterStore: ID 기반 필터링으로 성능 최적화 🎨 UI/UX 개선 - KanbanModal: 다중 선택 담당자/라벨, GitHub 저장소 선택 - 프로젝트별 고유 토글로 독립적인 확장/축소 - 실제 Supabase 데이터 기반 칸반 레이아웃 렌더링 🐛 버그 수정 - fetchProjectList ID 중복 문제 해결 (spread operator 사용) - 프로젝트명 대신 실제 Supabase ID를 accordion 키로 사용 - 라벨 매핑 불일치 문제 해결 🚀 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
올려주신지 일주일이 되어서야 제대로 연동 작업을 진행해보았네요 😭
아래 내역들 중 체크표시는 정상적으로 가져오는게 아마 다른 부분들도 제대로 올거 같네요 ㅎㅎ
작업 해주셔서 감사합니다!
연동작업하면서 논의가 필요할 거 같은 부분은 코멘트로 남겼습니다. 아마 이번에 남긴 코멘트는 디자이너 분들과 논의를 해야할 거 같습니다.
확인 내역
-
getKanbanTaskTree: 메인 태스크와 자식 태스크를 트리 구조로 반환합니다.
-
getMainTasks: parent_task_id가 null인 메인 태스크만 조건부로 조회합니다.
-
getSubTasks: 특정 parent_task_id를 가진 서브 태스크 목록을 조회합니다.
-
createKanbanTask: 새로운 태스크를 생성합니다.
-
updateKanbanTask: 특정 태스크를 수정합니다.
-
deleteKanbanTask: 특정 태스크를 삭제합니다.
-
getGithubRepos: 전체 GitHub 레포 목록을 조회합니다.
-
getGithubReposByTeam: 특정 팀(team_id)의 GitHub 레포 목록을 조회합니다.
-
getGithubIssueTemplates
| ended_at: string | null; | ||
| template_id: string | null; | ||
| repo_url: string | null; | ||
| kaban_user_id: string | null; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
현재 피그마상에서 하나의 task에 여러 담당자를 할당할 수 있는데, 현재 kaban_user_id는 단일로만 저장되는 문제가 있습니다
| template_id: string | null; | ||
| repo_url: string | null; | ||
| kaban_user_id: string | null; | ||
| task_priority_id: number | null; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
MVP로는 태스크에 단일 + 우선순위 만 설정하도록 하고 이후에 다중 + 우선순위 + 우선순위 외로 확장하거나 별도 테이블을 만드는 걸 염두하면 좋을거 같습니다.
- 시작일/종료일 개별 선택 기능 추가 - 날짜 범위 유효성 검사 및 시각적 경고 표시 - yyyy.mm.dd 포맷 유틸리티 함수 추가 - 한국 시간대 기반 날짜 처리 개선
- KanbanCard 디자인 개선 (아이콘 시스템 적용, 날짜 표시 형식 변경) - 빈 컬럼 상태 UI 추가 - 프로젝트/팀 헤더 스타일 개선 - 칸반 컬럼 헤더 디자인 업데이트
- 사이드바 텍스트 크기 통일 (text-xl → text-base, text-2xl → text-sm) - 글로벌 CSS 폰트 크기 정규화 (font-size: 16px) - 공통 UI 컴포넌트 (button, icon) 스타일 개선
- CLAUDE.md 프로젝트 문서 추가 - Edge Functions 구조 설계 및 주석 추가 - useKanbanData 훅 로직 개선 - 타입 정의 및 상수 업데이트
- .md 파일만 템플릿으로 허용하도록 필터링 - frontmatter 파싱하여 메타정보와 본문 분리 - 템플릿 선택 시 메타정보의 title을 제목에 자동 적용 - 본문 내용만 상세 내용 에디터에 반영 - 기존 작성 내용 있을 시 사용자 확인 후 덮어쓰기 - controlled component 방식으로 제목 입력 관리
- 빈 공간 클릭 시 최하단으로 이동하는 기본 동작 방지 - 실제 콘텐츠 영역 클릭 시에만 커서 이동 허용 - 사용자 경험 향상을 위한 클릭 이벤트 제어 추가
- ESLint 자동 수정으로 import 정렬 및 코드 스타일 통일 - Prettier를 통한 일관된 코드 포맷팅 적용 - 전체 컴포넌트 및 훅 파일들의 스타일 개선
- 태스크 모달 열 때 기존 연동된 저장소가 있으면 GitHub 저장소 목록 자동 로드 - 저장소 목록 로드 후 해당 저장소의 템플릿도 자동 로드 - 사용자가 수동으로 GitHub 연동 체크박스를 클릭할 필요 없이 바로 이용 가능
- ESLint 자동 수정으로 import 순서 정리 - Prettier 적용으로 일관된 코드 스타일 유지 - Sidebar 필터 컴포넌트 및 StateLabel, Editor 컴포넌트 포맷팅 개선
- netteeRepo 상수와 getRepo 함수 제거로 불필요한 의존성 정리 - GitHub 연동 시에만 selectedRepoUrl 사용하도록 단순화 - 코드 가독성 향상 및 유지보수성 개선
- getAllTasks API 추가하여 메인/서브태스크 모두 조회 - issueStore에 kanbanTasks 원본 데이터 관리 구조 추가 - 원본 데이터와 UI 데이터 자동 동기화 기능 구현 - KanbanCard에 서브태스크 목록 표시 및 드롭 지원 - 드래그 앤 드롭으로 태스크를 다른 태스크 위에 드롭 시 서브태스크 변환 - 메인 컬럼에서 서브태스크 필터링하여 중복 표시 방지 - parent_task_id 기반 계층 관계 관리 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
Creates detailed documentation for the kanban card improvement feature including: - Implementation plan with phase-by-phase breakdown - Project architecture and technical stack analysis - Task progress tracking template Provides structured guidance for implementing new features: - Card assignee/label display - Pin/unpin functionality - Column dividers - Sidebar filtering Documentation will help maintain development focus and ensure consistent implementation across features.
…unsaved changes protection - Add checkbox-based GitHub repository selection with visual feedback - Implement comprehensive unsaved changes detection across all form fields - Add warning modal with three action options when closing with unsaved changes - Fix GitHub dropdown layout reflow issue with conditional overflow control - Enhance modal close handlers to prevent accidental data loss - Replace icon-based selection with intuitive checkbox interface for better UX Technical improvements: - Dynamic overflow control prevents layout shifts during dropdown interactions - Comprehensive state comparison for reliable change detection - Form submission integration for save-and-close workflow
…vements - Document GitHub dropdown layout fix process and technical decisions - Add comprehensive problem analysis and solution approach - Update project features list with new KanbanModal capabilities - Record progress with detailed implementation steps and rollback process - Maintain development history for future reference and troubleshooting
- Fix false positive in hasUnsavedChanges() function by simplifying markdown comparison - Simplify warning modal from 3 buttons to 2 clear options (Yes/No) - Optimize change detection logic with early returns for better performance - Improve user experience with intuitive modal close behavior: • "Yes" or outside click: exit without saving • "No": return to modal for manual save - Remove complex conditional logic that caused incorrect change detection - Update documentation with refined implementation details Technical improvements: - Streamlined markdown !== initialState.body comparison - Better code formatting and readability - Enhanced user workflow clarity
- Add minimum width constraints to prevent layout collapse • KanbanCard: min-w-[256px] for consistent card sizing • KanbanColumn: min-w-[292px] with shrink-0 to maintain column width - Enhance card layout with justify-between for better element distribution - Remove flex-wrap from TeamBoard to keep columns in single row - Simplify datetime format by removing timezone suffix (+09:00) - Apply consistent code formatting (prettier/eslint rules) - Optimize column overflow behavior for better scrolling experience Technical improvements: - Better responsive design for narrow viewports - Improved visual consistency across kanban components - Cleaner date string format for internal operations
- Add pin/unpin icon click functionality in KanbanCard component - Implement togglePin function in issueStore for state management - Add pin/unpin area separation in KanbanColumn with proper rendering - Pin된 카드를 컬럼 상단에 배치하고 일반 카드와 구분선으로 분리 - Update Divider component styling for pin area separation - Improve type safety by replacing 'any' types with proper interfaces - Maintain drag-and-drop compatibility with existing functionality Pin된 카드들이 updated_at 기준으로 정렬되어 상단에 표시되고, 일반 카드들과 Divider로 구분되어 사용성이 향상됨.
- Reorder Tailwind CSS classes as per prettier-plugin-tailwindcss - Move caret-primary-12 class to beginning for consistent ordering
- Add showPinnedOnly and showGithubOnly states to FilterStore - Implement togglePinnedFilter and toggleGithubFilter actions - Update ViewOptions component with interactive filter buttons - Integrate pin/github filtering logic in useKanbanData hook - Add proper button state management with variant switching - Update resetAllFilters to include new filter states 사이드바에서 Pin/GitHub 필터 버튼 클릭으로 칸반 카드를 필터링할 수 있음: - Pin 필터: Pin된 카드만 표시 - GitHub 필터: GitHub 연동된 카드만 표시 기존 프로젝트/팀/담당자 필터와 조합하여 동작
- Fix query builder formatting in getAllTasks function - Apply ESLint auto-formatting rules
- Update task-progress.md with completed sidebar filter implementation - Add detailed technical implementation documentation - Update progress from 80% to 90% completion - Update test checklist with completed sidebar filter tests - Update project-analysis.md with new filtering capabilities - Add commit information and recent changes tracking 문서에 새로운 Pin/GitHub 필터 기능 상세 내용 추가
- Add detachSubTask API function for separating subtasks from parents - Enhance validateTaskMove with detailed error messages and errorType - Update issueStore with detachSubTaskFromParent action - Improve handleDropOnCard with validation and alert notifications - Support subtask separation when dragging from card to column - Add isSubTask detection in drag-and-drop handlers Features: - Subtasks can be dragged to columns to detach from parent - Enhanced validation prevents tasks with subtasks from becoming subtasks - User-friendly alert messages for validation failures - Maintains data consistency between frontend and backend
- Separate drag areas: main card header vs individual subtasks
- Add dragType discrimination ('MAIN_CARD' | 'SUB_TASK')
- Implement branching logic based on drag source and drop target
- Enhanced visual feedback during drag operations
Key Features:
- Main card drag: Status change or subtask creation
- Subtask drag: Independence promotion or parent change
- Improved UX with visual feedback and tooltips
- Maintains backward compatibility with existing functionality
Technical Implementation:
- Remove draggable from entire card, add to specific areas
- Extend drag data structure with dragType and parentId
- Enhanced handleDragEnd with conditional processing
- Added hover effects and drag state indicators
- Fix kanbanTasks array not updating when detaching subtasks - Enhance detachSubTaskFromParent to handle both data sync and status change - Prevent data conflicts by separating subtask vs main card processing - Ensure subtask list updates in real-time when items are detached Technical Changes: - Update both issues and kanbanTasks arrays in detachSubTaskFromParent - Add optional newProgress parameter for immediate status changes - Separate processing paths for SUB_TASK vs MAIN_CARD drag types - Eliminate redundant reorderIssues calls for subtask operations Fixes: - Subtasks now disappear from parent card immediately upon detachment - No more data inconsistencies between frontend arrays - Cleaner separation of concerns in drag-and-drop logic
관련 이슈 번호
Resolves #60
핵심 변경 사항 및 이유
kanban_task 작성
github_repo 작성
github_isuue_template 작성
각 테이블을 객체 지향으로 관리하기 위한 types를 추가하였습니다.
이외 기타 변경 사항 (선택)
PR 시 참고 사항 (선택)