Skip to content

Latest commit

ย 

History

History
140 lines (115 loc) ยท 4.62 KB

File metadata and controls

140 lines (115 loc) ยท 4.62 KB

BlockBlock Frontend UI Plan (MVP)

๋ชฉํ‘œ

move/blockblock/sources/blockblock.move ๊ธฐ๋Šฅ์„ ๊ทธ๋Œ€๋กœ ๋ฐ˜์˜ํ•˜๋Š” MVP ํ•ต์‹ฌ ํ๋ฆ„ ์ค‘์‹ฌ UI. ์ง€๊ฐ‘ ์—ฐ๊ฒฐ ํ›„ ๋‹จ์ผ ๋Œ€์‹œ๋ณด๋“œ์—์„œ ์—ญํ•  ๊ธฐ๋ฐ˜ ์„น์…˜๋งŒ ๋…ธ์ถœ.

ํŽ˜์ด์ง€ ๋งต

  1. Landing / Connect
  • ์ง€๊ฐ‘ ์—ฐ๊ฒฐ ์ „ ์•ˆ๋‚ด + ์—ฐ๊ฒฐ CTA
  1. Dashboard (Home)
  • ํ˜„์žฌ ๊ธฐ์ˆ˜/ํด๋Ÿฝ ์š”์•ฝ, ์—ญํ•  ๋ฐฐ์ง€, ๋น ๋ฅธ ์ž‘์—… ์นด๋“œ
  1. Member Registration
  • ๋ฉค๋ฒ„ ๋“ฑ๋ก ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ƒ์„ฑ/์š”์ฒญ/๊ฒ€์ฆ/๋ฐ˜์˜
  1. Attendance
  • ์ถœ์„ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ƒ์„ฑ/๋“ฑ๋ก/๋งˆ๊ฐ/๋ถ„๋ฅ˜/์‹œํŠธ ์ €์žฅ
  1. Term Transition
  • ๋‹ค์Œ ํšŒ์žฅ ์ง€์ •/์ „ํ™˜ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ/ํˆฌํ‘œ/์ „ํ™˜ ์‹คํ–‰

๊ณตํ†ต ๋ ˆ์ด์•„์›ƒ

  • Header: ๋กœ๊ณ /ํ”„๋กœ์ ํŠธ๋ช…, ๋„คํŠธ์›Œํฌ/์ง€๊ฐ‘ ์—ฐ๊ฒฐ ๋ฒ„ํŠผ
  • Main: ์„น์…˜ ์นด๋“œ ๋‚˜์—ด (Dashboard โ†’ Member โ†’ Attendance โ†’ Transition)
  • Toast/Status: ํŠธ๋žœ์žญ์…˜ ์ง„ํ–‰/์„ฑ๊ณต/์‹คํŒจ ์ƒํƒœ ํ‘œ์‹œ

1) Landing / Connect

๋ชฉํ‘œ: ์ง€๊ฐ‘ ๋ฏธ์—ฐ๊ฒฐ ์ƒํƒœ์—์„œ ์ตœ์†Œ ์•ˆ๋‚ด์™€ ์—ฐ๊ฒฐ ์œ ๋„.

๊ตฌ์„ฑ

  • Hero ์ œ๋ชฉ: BlockBlock Club Ops
  • ์„œ๋ธŒํ…์ŠคํŠธ: ๊ธฐ์ˆ˜/๋ฉค๋ฒ„/์ถœ์„/์ „ํ™˜์„ ์˜จ์ฒด์ธ์œผ๋กœ ๊ด€๋ฆฌ
  • ConnectButton
  • ์—ฐ๊ฒฐ ํ›„ ์ž๋™์œผ๋กœ Dashboard ํ‘œ์‹œ

๋นˆ ์ƒํƒœ

  • ์ง€๊ฐ‘ ๋ฏธ์—ฐ๊ฒฐ โ†’ Landing๋งŒ ๋…ธ์ถœ

2) Dashboard (Home)

๋ชฉํ‘œ: ํ˜„์žฌ ๊ธฐ์ˆ˜/ํด๋Ÿฝ ์ƒํƒœ ํ•œ๋ˆˆ์— ํ™•์ธ + ๋น ๋ฅธ ์ž‘์—… ์ง„์ž….

ํ•ต์‹ฌ ๋ฐ์ดํ„ฐ

  • BlockBlockRegistry: current_term, current_club, current_president
  • BlockBlockClub: president/vice/treasurer

๊ตฌ์„ฑ

  • Summary Card
    • ํ˜„์žฌ ๊ธฐ์ˆ˜, ํšŒ์žฅ ์ฃผ์†Œ, ํด๋Ÿฝ ID
  • Role Badge
    • president / vice / treasurer / member
  • Quick Actions
    • ๋ฉค๋ฒ„ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ƒ์„ฑ
    • ์ถœ์„ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ƒ์„ฑ
    • ์ „ํ™˜ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ƒ์„ฑ

๊ถŒํ•œ ๋…ธ์ถœ ๊ทœ์น™

  • ํšŒ์žฅ๋งŒ ๋ณด์ด๋Š” ๋ฒ„ํŠผ: ๋ฉค๋ฒ„ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ƒ์„ฑ, ์ „ํ™˜ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ƒ์„ฑ
  • ํšŒ์žฅ/๋ถ€ํšŒ์žฅ๋งŒ ๋ณด์ด๋Š” ๋ฒ„ํŠผ: ์ถœ์„ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ƒ์„ฑ

3) Member Registration

๋ชฉํ‘œ: ๋ฉค๋ฒ„ ์š”์ฒญ ์ˆ˜์ง‘ โ†’ ํšŒ์žฅ ๊ฒ€์ฆ โ†’ ํด๋Ÿฝ ์ €์žฅ.

๊ด€๋ จ Move ํ•จ์ˆ˜

  • create_and_share_blockblock_member_registry
  • create_member_info
  • register_member_info_to_blockblock_member_registry
  • store_member_addresses_in_member_registry_to_current_blockblockclub

๊ตฌ์„ฑ

  • Registry Status
    • ์กด์žฌ ์—ฌ๋ถ€/์ƒ์„ฑ ์ผ์ž/ํ˜„์žฌ term
  • Member Request Form (๋ฉค๋ฒ„์šฉ)
    • ์ด๋ฆ„, ์ „๊ณต, ์ฃผ๋‹ˆ์–ด ์—ฌ๋ถ€, ์ œ์ถœ ๋ฒ„ํŠผ
  • Pending List (ํšŒ์žฅ์šฉ)
    • ์š”์ฒญ ๋ฆฌ์ŠคํŠธ ์š”์•ฝ + ์ตœ์ข… ๋ฐ˜์˜ ๋ฒ„ํŠผ

๋นˆ ์ƒํƒœ

  • ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์—†์Œ โ†’ ํšŒ์žฅ์—๊ฒŒ ์ƒ์„ฑ CTA ํ‘œ์‹œ

4) Attendance

๋ชฉํ‘œ: ์ถœ์„ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ƒ์„ฑ โ†’ ์ถœ์„ ๋“ฑ๋ก โ†’ ๋งˆ๊ฐ โ†’ ์ง€๊ฐ/๊ฒฐ์„/๋ณ‘๊ฒฐ ๋ถ„๋ฅ˜ โ†’ ์‹œํŠธ ์ €์žฅ.

๊ด€๋ จ Move ํ•จ์ˆ˜

  • create_and_share_attendance_registry
  • register_member_info_to_attendance_registry
  • close_attendance_registry
  • register_member_info_to_late
  • register_member_info_to_absence
  • register_member_info_to_excused
  • convert_attendance_registry_to_attendance_sheet
  • store_attendance_sheet_to_blockblockclub

๊ตฌ์„ฑ

  • Registry Status (open/closed)
  • ์ถœ์„ ๋ฒ„ํŠผ (open์ผ ๋•Œ ๋ฉค๋ฒ„์šฉ)
  • ๋งˆ๊ฐ ๋ฒ„ํŠผ (ํšŒ์žฅ/๋ถ€ํšŒ์žฅ)
  • ๋ถ„๋ฅ˜ ์ž…๋ ฅ(๋งˆ๊ฐ ํ›„)
    • ์ง€๊ฐ/๊ฒฐ์„/๋ณ‘๊ฒฐ ๋ฆฌ์ŠคํŠธ ์ž…๋ ฅ
  • ์‹œํŠธ ๋ณ€ํ™˜ + ์ €์žฅ ๋ฒ„ํŠผ (ํšŒ์žฅ)

๋นˆ ์ƒํƒœ

  • ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์—†์Œ โ†’ ์ƒ์„ฑ CTA

5) Term Transition

๋ชฉํ‘œ: ๋‹ค์Œ ํšŒ์žฅ ์ง€์ • โ†’ ์ „ํ™˜ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ƒ์„ฑ โ†’ ํˆฌํ‘œ โ†’ ๋‹ค์Œ ๊ธฐ์ˆ˜ ์ƒ์„ฑ.

๊ด€๋ จ Move ํ•จ์ˆ˜

  • create_and_share_transition_to_the_next_term_registry
  • vote_to_the_next_term_registry
  • transit_current_term_to_the_next_term_and_share_next_club

๊ตฌ์„ฑ

  • Next President ์ž…๋ ฅ (์ฃผ์†Œ)
  • ์ „ํ™˜ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ƒ์„ฑ ๋ฒ„ํŠผ (ํšŒ์žฅ)
  • ํˆฌํ‘œ ์ƒํƒœ ์นด๋“œ (ํšŒ์žฅ/๋ถ€ํšŒ์žฅ/์ด๋ฌด)
  • ์ „ํ™˜ ์‹คํ–‰ ๋ฒ„ํŠผ (ํšŒ์žฅ)

์ƒํƒœ/๊ถŒํ•œ ๊ทœ์น™

  • ํšŒ์žฅ ํŒ๋‹จ: current_club.president == account.address
  • ๋ถ€ํšŒ์žฅ ํŒ๋‹จ: current_club.vice_president == account.address
  • ์ด๋ฌด ํŒ๋‹จ: current_club.treasurer == account.address
  • ๋ฉค๋ฒ„ ํŒ๋‹จ: senior_members/junior_members ํฌํ•จ ์—ฌ๋ถ€

ํŠธ๋žœ์žญ์…˜ UX ๊ทœ์น™

  • ๋ชจ๋“  ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ: Pending โ†’ Success/Error ํ† ์ŠคํŠธ
  • ์„ฑ๊ณต ์‹œ ๊ด€๋ จ ๊ฐ์ฒด ์žฌ์กฐํšŒ(refetch)
  • ์‹คํŒจ ์‹œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ๋…ธ์ถœ

์ปดํฌ๋„ŒํŠธ ๋ชฉ๋ก (์ดˆ์•ˆ)

  • AppShell
  • RoleBadge
  • SectionCard
  • RegistryStatus
  • MemberForm
  • MemberList
  • AttendancePanel
  • TransitionPanel

ํ…Œ์ŠคํŠธ/๊ฒ€์ฆ ์‹œ๋‚˜๋ฆฌ์˜ค

  1. ์ง€๊ฐ‘ ๋ฏธ์—ฐ๊ฒฐ ์ƒํƒœ์—์„œ Landing๋งŒ ๋…ธ์ถœ
  2. ํšŒ์žฅ ๊ณ„์ • ์ ‘์† ์‹œ ํšŒ์žฅ ์ „์šฉ ๋ฒ„ํŠผ ๋…ธ์ถœ
  3. ๋ฉค๋ฒ„ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ๋ฏธ์ƒ์„ฑ ์ƒํƒœ์—์„œ ์ƒ์„ฑ CTA ๋…ธ์ถœ
  4. ์ถœ์„ ๋งˆ๊ฐ ์ „/ํ›„ ๋ฒ„ํŠผ ์ƒํƒœ ๋ณ€ํ™”
  5. ์ „ํ™˜ ํˆฌํ‘œ ์™„๋ฃŒ/๋ฏธ์™„๋ฃŒ์— ๋”ฐ๋ฅธ ์ „ํ™˜ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”