A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | AB | AC | AD | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Milestone | Part | Task | Description | Sprint | Developer | Priority | Issue # | Status | Reference | |||||||||||||||||||||
2 | |||||||||||||||||||||||||||||||
3 | Sign in | Frontend | 기초 UI 구축 | - 로그인화면 HTML/CSS 를 개발 | 2 | 🐕 | 113 | Done | |||||||||||||||||||||||
4 | 토큰 저장 | - OAuth 토큰 localStorage 저장 | 🐕 | 114 | Done | ||||||||||||||||||||||||||
5 | 로그인 상태 | - 로그인 상태에 따른 화면 요소 변화 | 🐹 | 127 | Done | ||||||||||||||||||||||||||
6 | Backend | Github Sign in | - OAuth Homepage URL로 요청 - Github Redirect 요청 받기 | 1 | 🐕 | 18 | Done | Github-api https://www.npmjs.com/package/github-api | |||||||||||||||||||||||
7 | Duplicate Check | - (회원가입 시) email 중복체크 | 🐳 | 19 | Cancel | ||||||||||||||||||||||||||
8 | Database Insert | - 해당 userData 저장 - 중복된 Data있을 경우 해당 Data Post | 🐳🐹🐕 | 20 | Done | ||||||||||||||||||||||||||
9 | Access Token | - JWT 토큰 생성 | 🐹 | 21 | Done | ||||||||||||||||||||||||||
10 | Swift | Github Sign in | - ASWebAuthenticationSession | ||||||||||||||||||||||||||||
11 | 인증 후 이슈 목록 화면으로 넘어가기 | ||||||||||||||||||||||||||||||
12 | 이미 발행한 OAuth 토큰이 있는지 확인 : 있는 경우 바로 이슈 목록 화면 표시 | ||||||||||||||||||||||||||||||
13 | Apple Sign in | - ASWebAuthenticationSession | 1 | Apple Developer Document https://developer.apple.com/documentation/authenticationservices/implementing_user_authentication_with_sign_in_with_apple | |||||||||||||||||||||||||||
14 | Access Token | - Session을 통해 들어온 Data를 Backend에 Post - OAuth 토큰 UserDefaults 저장 | |||||||||||||||||||||||||||||
15 | 화면 구성 | Title, 아이디, 비밀번호 입력 창, 로그인 & 회원가입 버튼, 깃헙로그인, 애플로그인 | 1 | 🐼🐲 | In Progress | ||||||||||||||||||||||||||
16 | - 아이디는 최소 6자리~ 16자리 - 비밀번호는 최소 6자리 ~ 12자리 | 1 | |||||||||||||||||||||||||||||
17 | 이슈목록 | Frontend | 기초 UI 구축 | - 이슈 목록 화면(전체 틀) HTML/CSS 를 개발 - 이슈 목록 상단 필터 버튼 UI 구축 | 2 | 🐹 | 128 | Done | |||||||||||||||||||||||
18 | 이슈 목록 조회 | - 이슈 목록을 동적으로 보여줌 - 클릭시 이슈 상세 화면 페이지로 이동 | 🐳 | 115 | Done | ||||||||||||||||||||||||||
19 | 메뉴 기본 정보 설정 | - Labels 버튼 옆에 현재 사용하는 레이블 개수 표시 - Milestones 버튼 옆에 진행 중인 마일스톤 개수 표시 | 🐳 | 118 | Done | ||||||||||||||||||||||||||
20 | 메뉴에 따른 화면 전환 | - New issue 버튼 클릭시 새로운 이슈를 생성하는 페이지로 이동 - Labels 버튼 클릭시 레이블 목록 화면으로 이동 - Milestones 버튼 클릭시 마일스톤 목록 화면으로 이동 | 🐹 | 129 | Done | ||||||||||||||||||||||||||
21 | 이슈 목록 체크박스 | - 이슈 목록의 체크박스 UI 생성 - 전체선택, 전체해제 기능 구현 - 이슈 목록에서 체크시 Mark as 버튼 표시 - Mark as 버튼으로 일괄 Open, Closed 적용 | 🐳 | 120 | Done | ||||||||||||||||||||||||||
22 | Backend | 이슈 목록 조회 API | - 로그인한 사용자와 관련있는 issue를 모두 반환하는 API를 개발 | 1 | 🐳 | 22 | Done | ||||||||||||||||||||||||
23 | 레이블을 조회하는 API | - 프로젝트의 레이블을 조회해주는 API를 개발 | 🐕 | 23 | Done | ||||||||||||||||||||||||||
24 | 마일스톤을 조회하는 API | - 프로젝트의 마일스톤을 조회해주는 API를 개발 | 🐹 | 24 | Done | ||||||||||||||||||||||||||
25 | issue open 여부 변경 API | - 사용자가 체크박스로 선택한 issue list의 open 여부를 일괄 업데이트하는 API를 개발 | 🐳 | 25 | Done | ||||||||||||||||||||||||||
26 | Swift | TabBar 구성 | 4가지 item : 이슈, 레이블, 마일스톤, 설정 | 1 | 🐼🐲 | 7 | Done | ||||||||||||||||||||||||
27 | CollectionView 구성 | 이슈 목록 가져와서 보여주기 - 제목, 설명, 마일스톤, 레이블 (해당 값이 없다면 표시 하지 않음) - 설명은 최대 2줄 (길어지면 줄여서 표시) | 🐼🐲 | 9 | In Progress (현재 화면 출력은 mock data 활용) | ||||||||||||||||||||||||||
28 | Swipeable Collection View Cell | swipe 할 경우 effect를 통해 delete 화면 표시 (빨간색) | 10 | swipe delete 참고링크 https://www.amerhukic.com/swipeable-collection-view-cell https://levelup.gitconnected.com/creating-lists-with-uicollectionview-in-ios-14-89d5fdc880af | |||||||||||||||||||||||||||
29 | swipe 할 경우 issue close 추가 (초록색) | 10 | |||||||||||||||||||||||||||||
30 | Search | 해당 Api를 통해 Data를 받아와 출력 | 12 | ||||||||||||||||||||||||||||
31 | New Issue Button | modal을 통해 이슈생성 페이지로 이동 (full screen) (서비스 기획서와 다름) | 1 | 🐼🐲 | Done | ||||||||||||||||||||||||||
32 | Filter Button | filtering 조건 선택하는 화면으로 이동 | 1 | 🐼🐲 | Done | ||||||||||||||||||||||||||
33 | Edit Button | 다중 선택 편집 화면으로 이동 (이동일까?) | |||||||||||||||||||||||||||||
34 | Issue Edit 다중 편집 화면 | 각 이슈들을 선택 가능하게 만들기 (didSelectItemAt을 이용해 상세 이슈로 이동) | |||||||||||||||||||||||||||||
35 | Select All 버튼 선택 시 전체 선택 (Select all 된 경우 버튼은 deselect all 로 변경) | ||||||||||||||||||||||||||||||
36 | Deselect All 버튼 선택 시 전체 해제 | ||||||||||||||||||||||||||||||
37 | 선택 이슈 닫기 버튼 선택 시 선택 된 모든 이슈 닫기 | ||||||||||||||||||||||||||||||
38 | 이슈 필터 | Frontend | 이슈 필터 종류 선택 | - 이슈 필터 모달 생성 - 필터 종류 5가지 중 선택 시 팝업이 닫히면서 적용 - 선택하지 않고 다른 곳 클릭 시 그냥 닫힘 | 3 | 🐕 | 245 | ||||||||||||||||||||||||
39 | 필터 초기화 | - 필터가 적용된 상태일 때 초기화 버튼 생성 및 클릭 시 필터 제거 - 이슈 전체 목록 페이지로 이동 | 🐹🐕 | 208 | |||||||||||||||||||||||||||
40 | 검색창에 필터 적용 상태 표시 | - 초기값은 open 이슈만 나타냄 - 지우고 검색 시 닫힌 이슈 포함한 전체 이슈 리스트 띄움 | 🐕 | 246 | |||||||||||||||||||||||||||
41 | 필터링 default 화면 | - 필터링 결과 보여줄 목록이 없으면 default 화면을 띄움 | 🐹 | 210 | |||||||||||||||||||||||||||
42 | 작성자 상단 추가 필터 구현 | - 작성자 추가 필터 옵션 선택 시 팝업창으로 작성자 목록 띄움 | 🐳 | 217 | Done | ||||||||||||||||||||||||||
43 | 마일스톤 상단 추가 필터 구현 | - 마일스톤 추가 필터 옵션 선택 시 팝업창으로 마일스톤 목록 띄움 | 🐳 | 221 | Done | ||||||||||||||||||||||||||
44 | 레이블 상단 추가 필터 구현 | - 레이블 추가 필터 옵션 선택 시 팝업창으로 레이블 목록 띄움 | 🐳 | 211 | Done | ||||||||||||||||||||||||||
45 | 담당자 상단 추가 필터 구현 | - 담당자 추가 필터 옵션 선택 시 팝업창으로 작성자 목록 띄움 | 🐳 | 247 | Done | ||||||||||||||||||||||||||
46 | Backend | 필터링 이슈 데이터 반환 API | - [Filters] 버튼 클릭 시, 선택한 필터에 맞는 데이터를 Query로 요청 | 2 | 🐳🐹🐕 | 27 | |||||||||||||||||||||||||
47 | Author을 조회하는 API | - 프로젝트의 Author을 조회해주는 API를 개발 | 1 | 🐳 | 75 | Done | |||||||||||||||||||||||||
48 | Assignee을 조회하는 API | - 프로젝트의 Assignee을 조회해주는 API를 개발 | 🐳 | 76 | Done | ||||||||||||||||||||||||||
49 | 추가 필터링 데이터 반환 API | - 체크된 항목을 백엔드에서 고차함수로 필터링 해주고 배열을 반환해준다. | 2 | 🐳🐹🐕 | 28 | ||||||||||||||||||||||||||
50 | Swift | TableView 구성 | - Select Action을 이용하여 필터 체크한 내용 post - post한 조건에 따른 이슈 Data 출력 | ||||||||||||||||||||||||||||
51 | 세부 조건 선택 | - 작성자 / 레이블 / 마일스톤 / 담당자 Data를 가져와 목록 표시 - 해당 데이터 조건에 맞는 이슈 리스트 표시 | |||||||||||||||||||||||||||||
52 | 이슈 생성 | Frontend | 작성자 프로필, 제목 영역 | - 이슈를 생성할 작성자의 프로필 이미지 표시 - 제목 작성 영역 표시 | 2 | 🐕 | 122 | Done | |||||||||||||||||||||||
53 | 이슈 내용 작성 & 글자 수 체킹 | - 이슈 내용 작성 - 2초간격으로 현재 입력된 글자 수 표현 | 🐳 | 131 | Done | ||||||||||||||||||||||||||
54 | 이미지 선택 tab 구현 | - 이미지 선택 시 서버에 업로드 - 저장된 이미지 주소가 마크다운 형식으로 내용 작성 영역에 추가 | 3 | 🐳🐕 | 224 | ||||||||||||||||||||||||||
55 | Cancel 컴포넌트 구현 | - Cancel 버튼 클릭 시, 이슈 목록 화면으로 이동 | 2 | 🐹🐳 | 132 | Done | |||||||||||||||||||||||||
56 | Submit 컴포넌트 구현 | - 이슈 등록 진행 -> DB 저장 - 이슈 상세 화면으로 화면 이동 | 🐹 | 134 | Done | ||||||||||||||||||||||||||
57 | Assignees 설정 tab 구현 | - 담당자 목록 팝업 - Default: No one - assign yourself / 다른 user 할당 가능 | 🐕 | 123 | feat-issue-tab Branch로 생성 | ||||||||||||||||||||||||||
58 | Lables 설정 tab 구현 | - 레이블 목록 팝업 - Default: None yet - 어떤 레이블이 선택됐는지 확인 가능 | 🐹 | 136 | feat-issue-tab Branch로 생성 | ||||||||||||||||||||||||||
59 | Milestone 설정 tab 구현 | - 마일스톤 목록 팝업 - Default: None milestone - 어떤 마일스톤이 선택됐는지 확인 가능 | 🐳 | 116 | feat-issue-tab Branch로 생성 | ||||||||||||||||||||||||||
60 | Backend | 프로필 이미지 조회 API | - mysql users 프로필 이미지 path 조회 API | 1 | 🐹 | 29 | Done | ||||||||||||||||||||||||
61 | Issues 저장 API | - 등록된 이슈 정보 및 lebels id, user id, milestone id 저장 | 🐳 | 39 | Done | ||||||||||||||||||||||||||
62 | 이미지 저장 API | - 이슈 내용에 이미지를 포함한 경우 S3에 이미지를 저장 후 issue imgPath 컬럼에 path 추가 | 3 | 🐳🐹🐕 | 30 | ||||||||||||||||||||||||||
63 | Swift | 새 이슈 생성 화면 구성 | - 좌측 상단 : Cancel - 우측 상단 : 메뉴 버튼 (선택 시 assignee, label, milestone 선택 가능 창) - 기타 요구사항 : 기획서 참고 | 1 | |||||||||||||||||||||||||||
64 | 이슈 cell 선택 시 이슈 상세 화면으로 이동 | 1 | |||||||||||||||||||||||||||||
65 | 글 작성 (웹과 호환) | 마크다운 형식으로 여러 줄 입력 가능 | |||||||||||||||||||||||||||||
66 | 마크다운 입력한 항목을 기준으로 렌더링하여 표시 | ||||||||||||||||||||||||||||||
67 | 작성한 사항 저장 | ||||||||||||||||||||||||||||||
68 | 메뉴 표시 : Insert Photo | 앨범에서 사진 선택할 수 있게끔 구현 | |||||||||||||||||||||||||||||
69 | 앨범에서 사진 선택 완료 시 서버에 업로드 | ||||||||||||||||||||||||||||||
70 | 서버에 업로드되면 저장된 이미지 주소를 마크다운 형식으로 추가 | ||||||||||||||||||||||||||||||
71 | Cancel 버튼 | 아무런 변화 없이 화면 빠져나가기 | 1 | ||||||||||||||||||||||||||||
72 | 완료 버튼 | 작성한 사항 서버에 Post | |||||||||||||||||||||||||||||
73 | 화면 닫기 | 1 | |||||||||||||||||||||||||||||
74 | 이슈 수정 | Frontend | 이슈 수정 | - 자신이 작성한 이슈(또는 코멘트)에서 Edit버튼을 눌러 수정한다 - 수정 시 텍스트 박스 형태로 변경된다 - Edit 버튼은 사라지고 텍스트 박스 하단에 Cancel과 Update comment 버튼이 나타난다. - 수정 후 Update comment 버튼을 누르면 수정된 내용이 반영되고, 원래의 코멘트 디자인으로 돌아간다. | 3 | ||||||||||||||||||||||||||
75 | 새 코멘트 작성 | - 수정과 동일하나 Cancel, Update comment 대신 Close issue와 Comment 버튼이 표시된다. - 내용을 작성하면 Comment 버튼이 활성화된다. - 아무 내용이 없으면 비활성화된다. - Comment 버튼을 누르면 같은 디자인의 코멘트가 달린다. | 🐕 | 265 | Done | ||||||||||||||||||||||||||
76 | Assignees 수정 tab 구현 | - 담당자 목록 팝업 - Default: 할당됐던 담당자 - assign yourself / 다른 user 할당 가능 | |||||||||||||||||||||||||||||
77 | Lables 수정 tab 구현 | - 레이블 목록 팝업 - Default: 할당됐던 라벨 - 어떤 레이블이 선택됐는지 확인 가능 | |||||||||||||||||||||||||||||
78 | Milestone 수정 tab 구현 | - 마일스톤 목록 팝업 - Default: 할당됐던 마일스톤 - 어떤 마일스톤이 선택됐는지 확인 가능 | |||||||||||||||||||||||||||||
79 | 이슈 클로즈 및 오픈 | - Close issue버튼과 Reopen issue 버튼으로 이슈를 열고 닫는다. | 🐕 | 266 | Done | ||||||||||||||||||||||||||
80 | Backend | 이슈 내용 업데이트 요청 | - 자신이 수정한 이슈의 내용으로 데이터를 업데이트한다. | 1 | 🐳 | 40 | Done | ||||||||||||||||||||||||
81 | 코멘트 생성 요청 | - 자신이 쓴 코멘트의 데이터 생성을 요청한다. | 🐳 | 41 | Done | ||||||||||||||||||||||||||
82 | 이슈 클로즈 및 오픈 | - 해당 이슈의 상태(close, open)를 바꿔준다. | 🐳 | 42 | Done | ||||||||||||||||||||||||||
83 | Assignee 수정 | - 수정된 Assignees 로 데이터 업데이트 | 🐳 | 43 | Done | ||||||||||||||||||||||||||
84 | Labels 수정 | - 수정된 Labels로 데이터 업데이트 | 🐳 | 44 | Done | ||||||||||||||||||||||||||
85 | Milestone 수정 | - 수정된 Milestone 로 데이터 업데이트 | 🐳 | 45 | Done | ||||||||||||||||||||||||||
86 | Swift | 화면 구성 | 이슈 생성 화면 재사용 해야 함 | ||||||||||||||||||||||||||||
87 | Data 화면 출력 | 해당 이슈의 데이터를 가져와 화면에 출력 | |||||||||||||||||||||||||||||
88 | 이슈 상세 | Frontend | 이슈 상세 정보 | - 이슈 제목, 번호, 오픈 여부, 작성자, 시간, 코멘트 개수를 표시 | 2 | 🐕 | 133 | Done | |||||||||||||||||||||||
89 | 이슈 코멘트 디자인 | - 작성자의 프로필, 아이디, 시간, 내용 등을 표시 - 다른 사용자가 작성한 것도 디자인이 동일하나 Edit 버튼이 없다. | 🐕 | 125 | Done | ||||||||||||||||||||||||||
90 | 이슈 작성자 표시 | - 이슈 작성자가 누군지 표시한다. ex) Owner, Author .. | 🐕 | 135 | |||||||||||||||||||||||||||
91 | 이모티콘 기능 | - 코멘트에 이모티콘을 사용할 수 있다. | - | ||||||||||||||||||||||||||||
92 | Assignees tab 표시 | - 할당되어있는 담당자 표시 | 🐕 | 126 | |||||||||||||||||||||||||||
93 | Lables tab 표시 | - 할당되어있는 라벨 표시 | 🐹 | 130 | 212 | ||||||||||||||||||||||||||
94 | Milestone tab 표시 | - 할당되어있는 마일스톤 표시 | 🐳 | ||||||||||||||||||||||||||||
95 | Backend | 이슈의 코멘트 개수 반환 | - 해당 이슈의 코멘트 개수에 대해 반환한다. | 1 | 🐳 | 46 | Done | ||||||||||||||||||||||||
96 | Swift | Collection View 구성 | - 세션에 Issue Title과 번호, open/close를 표시한다. - Cell에는 Issue 내용과 댓글을 표시한다. | ||||||||||||||||||||||||||||
97 | Edit button 표시 | - UserDefault의 Data를 확인하여 일치할 경우, 수정 버튼 hidden = false | 67 | ||||||||||||||||||||||||||||
98 | 하단 메뉴 | - bottomView(Draggable Bottom Card) 이용 - 해당 글의 담당자, 레이블, 마일스톤 data 출력 - edit 버튼을 이용해 담당자, 레이블, 마일스톤 data 수정 | 유튜브 영상 : https://www.youtube.com/watch?v=L-f1KSPKm4I&app=desktop | ||||||||||||||||||||||||||||
99 | 댓글 이동 | - 현재 해당하는 row, index를 가져와 다음 인덱스의 셀 height 만큼 이동 | |||||||||||||||||||||||||||||
100 | 레이블 | Frontend | Lables 컴포넌트 구현 | - 현재 화면이 레이블 목록 화면이라는 걸 표시 | 3 | 🐹 | 213 | Done |