FE_ Story&Task - kyupid/issue-tracker GitHub Wiki
๊ณตํต ์ปดํฌ๋ํธ ์ฐพ๊ธฐ!!
-
์ด์ ๋ชฉ๋ก ์ด์ ์์ฑ ๋ฒํผ: matiral ui ๋ฒํผ ํํฐ ์์ filled input : material ui filled ์ธํ ๋ ์ด๋ธ ์ปดํฌ๋ํธ {color , label_name} - ์ด ๋ฐ์ดํฐ๋ ์์ผ๋ก ์๋ฒ์ ์ ์ฅ. (+ ๋ผ๋ฒจ ์์ด๋?)
-
์ด์ ์์ฑ
- ๋ด๋น์, ๋ ์ด๋ธ, ๋ง์ผ์คํค ์ด๋ ๊ฒ ๋น์ทํ ๊ฒ๋ค - div ๋ง๋ค์ด๋๊ณ styled.(๋ง๋ div)``
-
์ด์ ์์ธ
- ๋ด๋น์ ํ๋กํ ์ฌ์ง ๋ฐ ์์ด๋
Material UI ์์ ์ธ๋งํ ๊ฒ๋ค
๋ฉ๋ด - ํํฐ ํ์ ์ ์ ์ฉ ๊ฐ๋ฅํ ๋ฏ ์ฒดํฌ ๋ฐ์ค ๊ฐ์ข ๋ฒํผ๋ฅ
๋ก๊ทธ์ธ
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}}
- ๋๋จธ์ง ๋์ค์ ์๊ฐ