| 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 | AE | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Priority 기준 : must(1), should(2), could(3) / 필수 구현 (A), 선택 구현 (B), 필요해서 구현 (C) | ||||||||||||||||||||||||||||||
2 | Story ID | User Stories | A/B/C | Priority | Task ID | FE/BE | Assigned To | Week | Task | Task Description | difficulty | Time Estimate (days) | |||||||||||||||||||
3 | LoginPage | 0 | 사용자는 Google 로그인이 가능하다. | A | 1 | 0-1 | FE | 이한주 | 2 | DONE | Login Page | ||||||||||||||||||||
4 | 1 | 0-2 | FE | 이한주 | 2 | DONE | Google Login 버튼 구현 | ||||||||||||||||||||||||
5 | 1 | 0-3 | FE | 이한주 | 2 | DONE | 로그인을 완료하면 Work space 입장 Page로 넘어간다. | ||||||||||||||||||||||||
6 | 1 | 0-4 | BE | 이한주 | 2 | DONE | Google Login API 구현 | ||||||||||||||||||||||||
7 | WorkSpace 입장 Page | 1 | 사용자는 Work space 리스트를 볼 수 있다. | C | 1 | 1-1 | FE | 이한주 | 2 | DONE | Work space 입장 Page | ||||||||||||||||||||
8 | 2 | 1-2 | FE | 이한주 | 2 | DONE | 사용자가 소속되어있는 work space 리스트를 보여준다 | ||||||||||||||||||||||||
9 | 2 | 1-3 | BE | 이한주 | 2 | DONE | 한 유저의 work space 리스트 API | ||||||||||||||||||||||||
10 | 2 | 사용자는 Work space 입장 Page에서 생성 페이지로 이동할 수 있다. | 2 | 2-1 | FE | 이한주 | 2 | DONE | Work space 생성 버튼 구현, 클릭 시 Work space 생성 화면으로 이동 | ||||||||||||||||||||||
11 | 3 | 사용자는 Work space 로 입장할 수 있다. | 2 | 3-1 | FE | 이한주 | 2 | DONE | Work space 리스트에서 하나를 클릭하면 해당 Work space 페이지로 이동한다. | ||||||||||||||||||||||
12 | WorkSpace 생성 Page | 4 | 사용자는 새로운 Work space를 생성할 수 있다. | 1 | 4-0 | FE | 이한주 | 2 | DONE | Work space 생성 Page | |||||||||||||||||||||
13 | 2 | 4-1 | FE | 이한주 | 2 | DONE | Work space 이름 입력 컴포넌트 | ||||||||||||||||||||||||
14 | 2 | 4-2 | FE | 이한주 | 2 | DONE | Work space 채널 이름 입력 컴포넌트 | ||||||||||||||||||||||||
15 | 2 | 2 | FE | 이한주 | 2 | DONE | Work space 유저 초대 링크 생성 컴포넌트 | ||||||||||||||||||||||||
16 | 2 | 4-4 | FE | 이한주 | 2 | DONE | 각 입력 Page에서 다음을 클릭하면 다음 입력 페이지로 이동한다. | ||||||||||||||||||||||||
17 | 2 | 4-5 | BE | 이한주 | 2 | DONE | 새롭게 생성할 work space 초대 링크 생성 API | 1. 초대링크 클릭 (http://~~~/join?workspace_id=workspace고유 id) 2. local storage에 유효한 토큰이 존재한다면, 바로 workspace에 join 3. 유효한 로그인 정보가 없다면, 로그인 이후에 workspace에 join 하도록 한다. | |||||||||||||||||||||||
18 | 2 | 4-6 | BE | 이한주 | 2 | DONE | 새로운 work space 생성 API | ||||||||||||||||||||||||
19 | Header | 5 | 사용자는 헤더의 서치바를 통해 channel/message 검색을 할 수 있다. | B | 1 | 5-1 | FE | 박준호 | 2 | DONE | Header 컴포넌트 구현 | ||||||||||||||||||||
20 | 2 | 5-2 | FE | 박준호 | 2 | DONE | Search Bar 컴포넌트 구현 | ||||||||||||||||||||||||
21 | 2 | 5-3 | FE | 4 | 채널 검색 기능 구현 | ||||||||||||||||||||||||||
22 | 2 | 5-4 | FE | 4 | message 검색 기능 구현 | ||||||||||||||||||||||||||
23 | 2 | 5-5 | BE | 4 | 검색 조건에 알맞는 리스트 API | ||||||||||||||||||||||||||
24 | 6 | 사용자의 정보를 볼 수 있다. | C | 2 | 6-1 | FE | 박준호 | 2 | DONE | Header 가장 우측에 사용자의 프로필 사진이 보인다. | |||||||||||||||||||||
25 | 2 | 6-2 | FE | 박준호 | 2 | DONE | 프로필 사진을 클릭하면 userInfo Popup이 보인다. | ||||||||||||||||||||||||
26 | 2 | 6-3 | FE | 박준호 | 2 | PENDING | userInfo Popup은 사용자의 프로필 사진, 이름, 활동 상태를 보여준다. | ||||||||||||||||||||||||
27 | 2 | 6-4 | BE | 박준호 | 2 | DONE | user의 프로필 사진, 이름, 활동 상태 API | ||||||||||||||||||||||||
28 | Sidebar | 7 | 사용자는 Sidebar를 통해 원하는 화면으로 이동할 수 있다. | A | 1 | 7-1 | FE | 박준호 | 2 | DONE | Side Bar 컴포넌트 구현 | ||||||||||||||||||||
29 | 2 | 7-2 | FE | 박준호 | 2 | DONE | Threads 탭 구현 | 클릭 시 Thread 화면으로 이동한다. | |||||||||||||||||||||||
30 | 2 | 7-3 | FE | 박준호 | 2 | DONE | All DMs 탭 구현 | 클릭 시 All DMs 화면으로 이동한다. | |||||||||||||||||||||||
31 | 2 | 7-4 | FE | 박준호 | 2 | DONE | Channel Browser 탭 구현 | 클릭 시 Channel Browser 화면으로 이동한다. | |||||||||||||||||||||||
32 | 2 | 7-5 | FE | 박준호 | 2 | DONE | People 탭 구현 | 클릭 시 People 화면으로 이동한다. | |||||||||||||||||||||||
33 | Sidebar - Channels Section | 8 | 사용자는 Channels 섹션을 통해 (자신이 join되어 있으며,) Channels 섹션에 속해 있는 Channel 목록을 조회 할 수 있다. | 1 | 8-1 | FE | 박준호 | 2 | DONE | 기본 섹션인 Channel 섹션 구현 | 기본 채널 : random, general, <사용자가 work space 생성 시 만든 채널> | ||||||||||||||||||||
34 | 2 | 8-2 | FE | 박준호 | 2 | DONE | Channel 섹션에서 ⬇️(toggle button) 클릭 시 속해 있는 채널 hide | ||||||||||||||||||||||||
35 | 2 | 8-3 | FE | 박준호 | 2 | DONE | Channel 섹션에서 ➡️ (toggle button) 클릭 시 속해 있는 채널 expose | ||||||||||||||||||||||||
36 | 2 | 8-4 | BE | 박준호 | 2 | DONE | 사용자가 속해 있는 Channel 조회 API | 사용자가 속해 있는 전체 섹션 별 채널 조회 | |||||||||||||||||||||||
37 | 2 | 8-5 | FE | 박준호 | 2 | DONE | 각 채널은 채널명 좌측에 public일 경우 #, private일 경우는 자물쇠 모양이 나타난다. | ||||||||||||||||||||||||
38 | 9 | 사용자는 채널에 가입하는 페이지로 이동할 수 있다. | B | 2 | 9-1 | FE | 박준호 | 3 | DONE | Add channels 버튼 클릭 시 나오는 팝업에서 Browse channels 클릭 시 browse channel page로 이동한다. | hover 시에 join button이 나타난다. | ||||||||||||||||||||
39 | 10 | 사용자는 새로운 채널을 생성할 수 있다. | C | 2 | 10-1 | FE | 박준호 | 2 | DONE | Channels 섹션 hover 시 section options 버튼과 + 버튼이 나타난다. | |||||||||||||||||||||
40 | 2 | 10-2 | FE | 박준호 | 2 | DONE | Channels 섹션 최하단 Add channels 탭 버튼 팝업 구현 | ||||||||||||||||||||||||
41 | 2 | 10-3 | FE | 박준호 | 2 | DONE | 채널 생성 팝업 구현 | input : 채널 name, 채널 description, private 여부 | |||||||||||||||||||||||
42 | 2 | 10-4 | FE | 박준호 | 2 | DONE | 채널 생성 팝업 make private 여부 토글 버튼 구현 | ||||||||||||||||||||||||
43 | 2 | 10-5 | FE | 박준호 | 2 | DONE | Add channels 버튼 클릭 시 나오는 팝업에서 Create a channel 클릭 시 채널 생성 팝업이 나타난다. | Add channels 팝업 : browse channels / create a channel 탭으로 구성 | |||||||||||||||||||||||
44 | 2 | 10-6 | BE | 박준호 | 2 | DONE | 채널 생성 API | 새로운 채널 생성 시 default 로 Channels 섹션에 포함된다. | |||||||||||||||||||||||
45 | 2 | 10-7 | FE | 박준호 | 2 | 새로운 채널 생성 시 Sidebar의 Channels 섹션에 추가된다. | |||||||||||||||||||||||||
46 | 11 | 사용자는 새로운 섹션을 생성할 수 있다. | B | 2 | 10-1 | FE | 박준호 | 4 | DONE | Channels 섹션 hover 시 section options 버튼과 Add channels 버튼이 나타난다. | |||||||||||||||||||||
47 | 2 | 11-1 | FE | 박준호 | 4 | DONE | section options 팝업 구현 | Create new section / Browse channels / Create a channel 탭으로 구성 | |||||||||||||||||||||||
48 | 2 | 11-2 | FE | 4 | section options 팝업에서 create new section 클릭 시 섹션 생성 팝업이 나타난다. | 채널 그룹핑 | |||||||||||||||||||||||||
49 | 2 | 11-3 | FE | 4 | 섹션 생성 팝업 구현 | input: 섹션 name | |||||||||||||||||||||||||
50 | 2 | 11-4 | BE | 4 | 섹션 생성 API | 새로운 섹션 생성 시 default 로 빈 섹션이 만들어진다. | |||||||||||||||||||||||||
51 | 2 | 11-5 | FE | 4 | 새로운 섹션 생성 시 Sidebar에 해당 섹션이 추가된다. | ||||||||||||||||||||||||||
52 | 12 | 사용자는 원하는 채널을 드래그 앤 드롭으로 특정 섹션으로 이동시킬 수 있다. | B | 2 | 12-1 | FE | 4 | 채널을 드래그하여 Sidebar의 섹션 위에 드랍 하면 해당 섹션에 드롭한 채널이 추가된다. | 각 채널 드래그 앤 드롭 구현 | ||||||||||||||||||||||
53 | 2 | 12-2 | BE | 4 | 채널의 섹션 변경 API | ||||||||||||||||||||||||||
54 | 13 | 사용자는 각 채널을 hover 함으로서 원하는 action을 수행할 수 있다. | C | 2 | 13-1 | FE | 박준호 | 2 | DONE | 각 채널 hover 시 more 버튼이 나타난다. | |||||||||||||||||||||
55 | 2 | 13-2 | FE | 박준호 | 2 | DONE | 채널 more 팝업 구현 | Move channel / Change notifications / Leave channel | |||||||||||||||||||||||
56 | 14 | 사용자는 채널을 다른 섹션으로 옮길 수 있다. | B | 3 | 14-1 | FE | Move channel 은 dropleft 로서 현재 생성되어 있는 모든 섹션을 보여준다. | 섹션 이름 클릭 시 채널이 해당 섹션으로 이동된다. | |||||||||||||||||||||||
57 | 3 | 14-2 | BE | 섹션 변경 API | |||||||||||||||||||||||||||
58 | 15 | 사용자는 자신이 소속된 각 채널의 notification 설정을 변경할 수 있다. | C | 2 | 15-1 | FE | 박준호 | 3 | Change notification 클릭 시 해당 채널의 notification 설정 팝업이 나타난다. | ||||||||||||||||||||||
59 | 2 | 15-2 | FE | 박준호 | 3 | notification 팝업 구현 | 모든 메세지에 대하여 알람 받기 / 거부 중 선택 | ||||||||||||||||||||||||
60 | 15-4 | BE | ALL | 3 | *** noti 구현 시 DB 스키마 변경 | ||||||||||||||||||||||||||
61 | 2 | 15-3 | BE | 박준호 | 3 | 채널의 notification 설정 변경 API (on/off) | |||||||||||||||||||||||||
62 | 16 | 사용자는 각 채널에서 탈퇴 할 수 있다. | C | 2 | 16-1 | FE | 박준호 | 3 | more action의 Leave channel 클릭 시 해당 채널에서 탈퇴된다. | 확인 alert 은 없다. | |||||||||||||||||||||
63 | 2 | 16-2 | BE | 박준호 | 3 | 채널 탈퇴 API | |||||||||||||||||||||||||
64 | 17 | 사용자는 사용자가 만든 각 section을 hover 함으로서 원하는 action을 수행할 수 있다. | C | 2 | 17-1 | FE | 박준호 | 4 | DONE | 사용자가 만든 section hover 시 section options 버튼이 나타난다. | default section options 와 사용자 section options 가 다르기 때문에 재활용? | ||||||||||||||||||||
65 | 2 | 17-2 | FE | section more 버튼 팝업 구현(default section options 와 다르다) | Rename <section 이름> / Delete <section 이름> | ||||||||||||||||||||||||||
66 | 18 | 사용자는 섹션 이름을 수정할 수 있다. | C | 3 | 18-1 | FE | Rename 클릭 시 section 이름을 바꿀 수 있는 팝업이 화면 중앙에 나타난다. | ||||||||||||||||||||||||
67 | 3 | 18-2 | BE | 섹션 이름 변경 API | |||||||||||||||||||||||||||
68 | 19 | 사용자는 사용자가 만든 섹션을 삭제할 수 있다. | C | 2 | 19-1 | FE | 빨간색으로 칠해진 Delete 클릭 시 section 이 Sidebar에서 사라진다. | 확인 alert 은 없다. | |||||||||||||||||||||||
69 | 2 | 19-2 | BE | 사용자가 생성한 section 삭제 API | |||||||||||||||||||||||||||
70 | Sidebar - DMs | 20 | 사용자는 본인의 DM 리스트를 볼 수 있다. | A | 1 | 20-1 | FE | 박준호 | 2 | DONE | Direct messages 섹션 | Work space 첫 가입 시 자기자신과의 DM 만 존재한다. | |||||||||||||||||||
71 | 2 | 20-2 | FE | 박준호 | 2 | DONE | DM List 구현 | ||||||||||||||||||||||||
72 | 2 | 20-3 | BE | 박준호 | 2 | DONE | DM List API | ||||||||||||||||||||||||
73 | 21 | 사용자는 새로운 섹션을 만들어 DM을 구분지을 수 있다. * StoryID 11,12와 관련 | C | 2 | 21-1 | FE | Direct messages 섹션 제목을 hover 하면 section options 버튼과 open a direct message 버튼이 나타난다. | ||||||||||||||||||||||||
74 | 2 | 21-2 | FE | section options 버튼을 누르면 아이템으로 create new sectiond을 가지는 팝업이 나타난다. | |||||||||||||||||||||||||||
75 | 2 | 21-3 | FE | 팝업에서 새로운 섹션을 생성하면 side bar의 direct messages 섹션 바로 위에 노출된다. | |||||||||||||||||||||||||||
76 | 2 | 21-4 | BE | DM 섹션 저장 API | |||||||||||||||||||||||||||
77 | 22 | 사용자는 DM을 다른 섹션으로 옮길 수 있다. | C | 2 | 22-1 | FE | 드래그 앤 드롭으로 섹션 간 DM 이동이 가능하다. | 단, DM 섹션 내에서만 가능하다 (채널 섹션은 불가) | |||||||||||||||||||||||
78 | 2 | 22-2 | BE | DM 섹션 변경 API | |||||||||||||||||||||||||||
79 | 23 | 사용자는 sidebar 상단의 all DMs 탭으로 이동할 수 있다. | C | 2 | 21-1 | FE | 김서영 | 4 | DONE | Direct messages 섹션 제목을 hover 하면 section options 버튼과 open a direct message 버튼이 나타난다. | |||||||||||||||||||||
80 | 2 | 23-1 | FE | 김서영 | 4 | DONE | open a direct messsage 버튼을 클릭하면 all DMs 탭으로 이동한다. | ||||||||||||||||||||||||
81 | Sidebar - add teammates | 24 | 사용자는 Work space에 유저를 추가할 수 있다. | C | 2 | 24-1 | FE | 박준호 | 2 | DONE | Sidebar 최하단에 "Add teammates" 버튼이 위치한다. | ||||||||||||||||||||
82 | 2 | 24-2 | FE | 박준호, 이한주 | 3 | Add teammates 버튼을 클릭하면 사람 초대 팝업이 뜬다. (Workspace 초대) | 링크 생성 후 복사 해서 초대할 수 있도록 하기 | ||||||||||||||||||||||||
83 | Threads Page | 25 | 사용자는 자신이 작성한 Thread와 message 를 달았던 Thread의 리스트를 볼 수 있다. | C | 3 | 25-1 | FE | 김서영 | 3 | DONE | Threads Page 구현 | ||||||||||||||||||||
84 | 3 | 25-2 | FE | 김서영 | 3 | DONE | 내가 작성한 / 내가 message를 남긴 Threads 리스트 요청 | ||||||||||||||||||||||||
85 | 3 | 25-3 | BE | 김혜지 | 3 | DONE | 한 유저가 작성한 / message를 남긴 모든 Threads 리스트 API | ||||||||||||||||||||||||
86 | 3 | 25-4 | FE | 김서영 | 3 | DONE | ThreadList 컴포넌트구현 | ||||||||||||||||||||||||
87 | 3 | 25-5 | FE | 김서영 | 3 | DONE | DetailThread 컴포넌트 구현 | 한 스레드의 모든 message를 포함한다. | |||||||||||||||||||||||
88 | 26 | 사용자는 Thread 리스트를 가져올 동안 로딩 이미지를 볼 수 있다. | C | 3 | 26-1 | FE | 김서영 | 4 | DONE | 서버에서 응답이 올 때까지 로딩 이미지를 보여준다. | |||||||||||||||||||||
89 | All DMs Page | 27 | 사용자는 사람들의 이름을 입력해 DM room을 만들 수 있다. | C | 1 | 27-1 | FE | 김서영 | 4 | DONE | All DMs Page 구현 | ||||||||||||||||||||
90 | 2 | 27-2 | FE | 박준호 | 4 | DONE | To Input 구현 | 이름 리스트를 입력할 수 있다. | |||||||||||||||||||||||
91 | 2 | 27-3 | FE | 박준호 | 4 | DONE | To Input에 글자를 입력할 때마다 가장 유사한 유저 리스트를 보여준다. | ||||||||||||||||||||||||
92 | 2 | 27-4 | FE | 박준호 | 4 | DONE | To input에서 Enter를 치면 입력한 이름 리스트와 함께 DM Page 이 만들어지고, 이동한다. | ||||||||||||||||||||||||
93 | 2 | 27-5 | BE | 박준호 | 4 | DONE | 해당 글자를 포함하는 한정 숫자의 유저 리스트 API OR 모든 유저 리스트 | ||||||||||||||||||||||||
94 | 2 | 27-6 | BE | 김혜지 | 3 | DONE | DM room 생성 API | Type이 DM인 채널 생성 | |||||||||||||||||||||||
95 | 28 | 사용자는 날짜별로 그룹핑된 모든 DM의 마지막 메시지를 최신순부터 볼 수 있다. | C | 3 | 28-1 | FE | 박준호 | 5 | DONE | LastDMList 컴포넌트 구현 | |||||||||||||||||||||
96 | 3 | 28-2 | FE | 박준호 | 5 | DONE | LastDM 컴포넌트 구현 | DM의 참여자들 프로필 사진, 이름, 마지막 내용, 시간 | |||||||||||||||||||||||
97 | 3 | 28-3 | FE | 박준호 | 5 | DONE | LastDM은 최근 날짜부터 날짜별로 그룹핑되어 있다. | ||||||||||||||||||||||||
98 | 3 | 28-4 | FE | 박준호 | 5 | DONE | LastDM을 클릭하면 해당 DM Page 으로 이동한다. | ||||||||||||||||||||||||
99 | 3 | 28-5 | BE | 박준호 | 5 | DONE | 유저의 모든 DM의 참여자의 이름, 사진과 마지막 메시지, 시간 API | ||||||||||||||||||||||||
100 | People Page | 29 | 사용자는 워크스페이스의 모든 유저를 조회할 수 있다. | C | 3 | 29-1 | FE | 김서영 | 4 | DONE | People Page 구현 | ||||||||||||||||||||