forked from codesquad-members-2021/issue-tracker
-
Notifications
You must be signed in to change notification settings - Fork 0
FE_ Story&Task
Dongmin Ahn edited this page Jun 7, 2021
·
1 revision
-
이슈 목록 이슈 작성 버튼: matiral ui 버튼 필터 옆에 filled input : material ui filled 인풋 레이블 컴포넌트 {color , label_name} - 이 데이터는 쌍으로 서버에 저장. (+ 라벨 아이디?)
-
이슈 작성
- 담당자, 레이블, 마일스톤 이렇게 비슷한 것들 - div 만들어두고 styled.(만든div)``
-
이슈 상세
- 담당자 프로필 사진 및 아이디
메뉴 - 필터 팝업에 적용 가능할 듯 체크 박스 각종 버튼류
routing : /
리다이렉트 url = /login
- 로그인은 반드시 깃헙 오오스 지원해야한다.
- 인증후에는 이슈 목록으로 넘어간다.
- 이미 발행한 oauth 토큰이 있는 경우 로그인 화면 생략 (?)
- 로그인 페이지(
/login) 에서 jwt 토큰 받기. - jwt 토큰을 로컬스토리지에 저장 후
/issues리다이렉트. - 첫 페이지(
/) 렌더 되기 전에 저장되어있는 토큰을 서버에 보냄 . 서버에서 유저를 인증후/issues리다이렉트. - 저장이 되어있지 않다면 로그인 페이지 보여주기.
routing : /issues
- 렌더링 전에 api 요청을 보낸다. => 이슈 목록 , 레이블 갯수 , 마일스톤 갯수
- issueList component 만들기 {isOpen: boolean, 이슈 제목:string , 라벨 리스트[] , 이슈 번호 : number , 작성자: {name: string , profileImg: string } , 타임 스탬프 정보 : number , 마일스톤 : string }
https://www.npmjs.com/package/react-time-ago 라이브러리 쓰는게 좋은지 추가로 논의
라벨 리스트[ { color : , title : }]
-
라우팅 처리할 것들-
- 레이블(
/labels) - 마일스톤(
/milestones) - 이슈 상세 화면(
/issues/#이슈번호) - 새 이슈 작성(
/new-issue)
- 레이블(
-
목록에는 오픈상태의 이슈만 보여준다 (기본)
-
목록에서 열린이슈 와 닫힌 이슈의 갯수와 목록이 보여진다.
- 필터바 => Material UI Menu 적용
- input => Material UI Text Field 적용
- is:open => open => 상태값이 open 인 이슈들 filter
- 메뉴 열린 이슈 클릭 => input value , is:open
- 체크 박스 하나라도 눌리면 오른쪽 위 메뉴탭
"상태 수정"으로 바뀜. - 체크 박스 => Material UI Check Box 적용 onChange 함수 사용
routing : /new-issue
일단 담당자에 대한 부분은 제외함.
- 버튼 클릭했을때 서버 api 요청 현재 라벨 리스트, 마일스톤 리스트
- 코멘트를 입력하세요 => 마크다운 (라이브러리) 일단쓰자.
- 파일첨부 오톰이 어렵지 않았다고한다.- 나중에 생각하기
- 완료 버튼 클릭 시
- 서버에 post 요청
- (담당자 일단 제외), 레이블, 마일스톤, 제목, 코멘트 다 상태로 관리해서 post 요청에 넣어 보낸다.
- 라우팅 처리 - 이슈 상세 화면(
/issues/#이슈번호)
- 서버에 post 요청
routing : issues/#이슈번호
-
api 백엔드와 이야기 필요.
-
이슈 닫기를 누르면 ,
- 백엔드 서버에 post 보냄
- 열린이슈 레이블이 닫힌이슈 레이블로 바뀜
- 열림 상태값을 변경하여 이슈 닫기 버튼이 이슈 열림 버튼으로 바뀜
-
이슈 열기를 누르면 ,
- 반대로 동작
-
코멘트 작성을 누르면 ,
- 백엔드 서버에 post 보냄
- 리렌더링
-
파일첨부 - 나중에 생각하기
-
이슈 삭제 - 나중에 생각 (기획서에 없음)
routing : /labels
- 박스 모양 (li)는 이슈 목록과 공통으로
- labelList{ labeltitle:string ,color:string, detail:string}
- Creatinglabel => Label name . description , color 입력
- 편집과 삭제 버튼 - 자세한 건 나중에 생각
routing : /milestones
- 박스 모양 (li)는 이슈 목록과 공통으로
- milestoneList{ milestoneTitle: string, dueDay: number, detail: string, issueCount: {opened: number, closed: number}}
- 나머지 나중에 생각