Project Goals - codestates/Reciper-client GitHub Wiki

๐Ÿ“Œ ํ”„๋กœ์ ํŠธ ์š”๊ตฌ ์‚ฌํ•ญ

Bare minimum, Advanced๋ฅผ ๋ชจ๋‘ ๊ตฌํ˜„ ์™„๋ฃŒํ•˜์˜€๊ณ  Nightmare์—์„œ ์ผ๋ถ€ ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.


๐Ÿ’ก Bare minimum requirements

0. Landing(์„œ๋น„์Šค ์†Œ๊ฐœ)

  • ์„œ๋น„์Šค ์†Œ๊ฐœ(interaction ๊ตฌํ˜„)

1. Login(๋กœ๊ทธ์ธ)

  • OAuth ์ธ์ฆ ๋กœ๊ทธ์ธ(google, github)
  • ์ด๋ฉ”์ผ์„ ์ด์šฉํ•œ passwordless ๋ฐฉ์‹ ๋กœ๊ทธ์ธ (nodemailer)

2. Profile(ํ”„๋กœํ•„)

  • ๋‚ด ํ”„๋กœํ•„ ์ •๋ณด ์กฐํšŒ
  • ํ”„๋กœํ•„ ์ •๋ณด ์ˆ˜์ •

3. Recruit(ํŒ€์›๋ชจ์ง‘)

  • ํŒ€์›๋ชจ์ง‘ ๊ฒŒ์‹œ๊ธ€ ๋ฆฌ์ŠคํŠธ ์กฐํšŒ(infinite scroll ๊ตฌํ˜„)
  • ํŒ€์›๋ชจ์ง‘ ๊ฒŒ์‹œ๊ธ€ ๋‚ด์šฉ ์กฐํšŒ
  • ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ / ์ˆ˜์ • / ์‚ญ์ œ
  • ๊ฒŒ์‹œ๊ธ€ ๋‚ด์—์„œ ๋Œ“๊ธ€ ์ž‘์„ฑ / ์‚ญ์ œ

4. Project(ํ”„๋กœ์ ํŠธ)

  • ๋‚ด๊ฐ€ ์†ํ•ด์žˆ๋Š” ํ”„๋กœ์ ํŠธ ๋ฆฌ์ŠคํŠธ ์กฐํšŒ
  • ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ
  • ์ƒ์„ฑํ•œ ํ”„๋กœ์ ํŠธ์— ํŒ€์› ์ดˆ๋Œ€(nodemailer)
  • ํ”„๋กœ์ ํŠธ ์ˆ˜์ • / ์‚ญ์ œ

5. Workspace(ํ˜‘์—… ํˆด)

  • Chat(์ฑ„ํŒ…)
    • ํŒ€์›๋“ค๊ณผ ์ฑ„ํŒ…(๋Œ€ํ™”)ํ•˜๊ธฐ
  • Tasks(์นธ๋ฐ˜๋ณด๋“œ, ์บ˜๋ฆฐ๋”)
    • task ์ƒ์„ฑ / ์ˆ˜์ • / ์‚ญ์ œ
      • ํ• ์ผ, ์„ธ๋ถ€ ๋‚ด์šฉ ์ž‘์„ฑ
      • ์ผ์ •(์‹œ์ž‘์ผ~์ข…๋ฃŒ์ผ) ์ž‘์„ฑ
      • ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ž‘์„ฑ
      • task์— assignees ์„ค์ •(์ฐธ์—ฌ์ž ๋“ฑ๋ก)
      • task์— ๋Œ“๊ธ€ ์ž‘์„ฑ / ์‚ญ์ œ
    • task๋ฅผ box๋กœ ๊ทธ๋ฃนํ™”
    • drag and drop ๊ฐ€๋Šฅ
    • ๊ธฐ๊ฐ„์ด ์žˆ๋Š” task๋ฅผ ๋‹ฌ๋ ฅ์—์„œ ์กฐํšŒ ๊ฐ€๋Šฅ
  • member
    • ํ”„๋กœ์ ํŠธ์— ์ƒˆ๋กœ์šด ํŒ€์› ์ดˆ๋Œ€

๐Ÿ’ก Advanced

1. Login(๋กœ๊ทธ์ธ)

  • refresh token์„ cookie์— ์ €์žฅ
  • refresh token์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ๋กœ์šด access token ๋ฐœ๊ธ‰

2. Profile(ํ”„๋กœํ•„)

  • ํ”„๋กœํ•„ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ
  • ํ”„๋กœํ•„ ์ •๋ณด ์กฐํšŒ์‹œ, ํ˜„์žฌ ์ž‘์—…์ค‘์ธ ํ”„๋กœ์ ํŠธ ๋ฆฌ์ŠคํŠธ ์กฐํšŒ ๊ฐ€๋Šฅ
  • ๋‹ค๋ฅธ ์œ ์ €์˜ ํ”„๋กœํ•„ ์ •๋ณด ์กฐํšŒ ๊ฐ€๋Šฅ

3. Recruit(ํŒ€์›๋ชจ์ง‘)

  • ํŠน์ • stack์œผ๋กœ ๊ฒŒ์‹œ๊ธ€ ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅ
  • ๊ฒŒ์‹œ๊ธ€ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ

5. Workspace(ํ˜‘์—… ํˆด)

  • Chat(์ฑ„ํŒ…)
    • ์ฑ„ํŒ…๋ฐฉ ์ƒ์„ฑ / ์ˆ˜์ • / ์‚ญ์ œ
    • ์ฑ„ํŒ…๋ฐฉ ์ด๋™ ๊ฐ€๋Šฅ
    • ์ฑ„ํŒ…๋ฐฉ์„ infinite scroll๋กœ ๊ตฌํ˜„
  • Tasks(์นธ๋ฐ˜๋ณด๋“œ, ์บ˜๋ฆฐ๋”)
    • ํŒŒํŠธ ์ƒ์„ฑ / ์ˆ˜์ • / ์‚ญ์ œ
    • ํŒŒํŠธ ์ด๋™ ๊ฐ€๋Šฅ
    • ๋‹ค๋ฅธ ์œ ์ €๊ฐ€ ์ž‘์—…์‹œ ๊ทธ ๋ถ€๋ถ„์€ block ์ฒ˜๋ฆฌ

๐Ÿ’ก Nightmare

3. Recruit(ํŒ€์›๋ชจ์ง‘)

  • ์ฑ…๊ฐˆํ”ผ ๊ธฐ๋Šฅ(๊ฒŒ์‹œ๊ธ€ ์ฆ๊ฒจ์ฐพ๊ธฐ)
  • ๊ธ€ ๋“ฑ๋กํ•  ๋•Œ ์ž‘์„ฑ์ž ์ •๋ณด์ค‘ ํ•ธ๋“œํฐ ๋ฒˆํ˜ธ๋ฅผ ์•ˆ์‹ฌ๋ฒˆํ˜ธ๋กœ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ
  • ํ”„๋กœ์ ํŠธ ์ฐธ์—ฌ๋ฅผ ์œ„ํ•ด ์ž‘์„ฑ์ž์—๊ฒŒ DM์œผ๋กœ ๋Œ€ํ™”ํ•˜๊ธฐ

5. Workspace(ํ˜‘์—… ํˆด)

  • Chat(์ฑ„ํŒ…)
    • ์ฑ„ํŒ…์—์„œ ์ด๋ฏธ์ง€, ํŒŒ์ผ ์ „์†ก ๊ฐ€๋Šฅ
    • mention ๊ธฐ๋Šฅ
    • DM ๊ธฐ๋Šฅ
  • Tasks(์นธ๋ฐ˜๋ณด๋“œ, ์บ˜๋ฆฐ๋”)
    • ๋‹ฌ๋ ฅ์—์„œ๋„ task ์ƒ์„ฑ / ์ˆ˜์ • / ์‚ญ์ œ ๊ฐ€๋Šฅ
  • zoom(webRTC)
    • ํ™”์ƒํšŒ์˜ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

6. ETC

  • ๋„์›€๋ง
    • workspace์„ ์ฒ˜์Œ ์ด์šฉํ•˜๋Š” ์œ ์ €๋ฅผ ์œ„ํ•œ ๋„์›€๋ง ๋„์šฐ๊ธฐ
  • ์•Œ๋žŒ ๊ธฐ๋Šฅ
    • workspace์—์„œ ๋‹ค๋ฅธ ํŒ€์›์˜ action์— ๋Œ€ํ•œ ์•Œ๋žŒ, ์ฑ„ํŒ… ์•Œ๋žŒ ๋“ฑ์„ ๊ตฌํ˜„
  • ๊ฒฐ์ œ ์‹œ์Šคํ…œ
    • ๊ณผ๊ธˆ ์œ ์ €, ๋ฌด๊ณผ๊ธˆ ์œ ์ € ์ฐจ์ด์  ๋‘๊ธฐ
  • ๊ณ ๊ฐ ์„ผํ„ฐ
    • ์„œ๋น„์Šค ํ”ผ๋“œ๋ฐฑ + ๋ฐœ์ „์„ ์œ„ํ•œ ์†Œํ†ต ์ฐฝ๊ตฌ ๋งŒ๋“ค๊ธฐ
โš ๏ธ **GitHub.com Fallback** โš ๏ธ