Skip to content

✨ Feature - Implement project sharing collaboration features #20

@parksomii

Description

@parksomii

πŸ› οΈ Issue Description

ν”„λ‘œμ νŠΈλ₯Ό 외뢀에 μ•ˆμ „ν•˜κ²Œ κ³΅μœ ν•  수 μžˆλŠ” 토큰 기반 곡유 μ‹œμŠ€ν…œμ„ κ΅¬ν˜„ν•©λ‹ˆλ‹€. ν”„λ‘œμ νŠΈ 멀버가 토큰을 μƒμ„±ν•˜κ³ , ν•΄λ‹Ή 토큰을 κ°€μ§„ μ‚¬μš©μžλ§Œ ν”„λ‘œμ νŠΈ 정보와 블둝 μ•„ν‚€ν…μ²˜λ₯Ό μ‘°νšŒν•  수 μžˆλ„λ‘ ν•©λ‹ˆλ‹€.

πŸ’­ Functional role

  • 토큰 기반 곡유 (/api/projects/{projectId}/share-token): ν”„λ‘œμ νŠΈ 멀버가 곡유 토큰 생성/쑰회
  • 곡개 ν”„λ‘œμ νŠΈ 쑰회 (/view/{projectId}?token={token}): 토큰을 ν†΅ν•œ ν”„λ‘œμ νŠΈ 정보 및 μ•„ν‚€ν…μ²˜ 쑰회
  • λ³΄μ•ˆμ„±: 토큰을 λͺ¨λ₯΄λŠ” μ‚¬μš©μžλŠ” ν”„λ‘œμ νŠΈμ— μ ‘κ·Όν•  수 μ—†μŒ
  • μ œν•œμ  곡유: νŠΉμ • μ‚¬λžŒμ—κ²Œλ§Œ ν”„λ‘œμ νŠΈ 정보λ₯Ό 곡유 κ°€λŠ₯
  • μžλ™ 만료: 30일 ν›„ 토큰 μžλ™ 만료둜 λ³΄μ•ˆμ„± μœ μ§€
  • ν˜‘μ—… 지원: νŒ€ μ™ΈλΆ€ 인원과도 μ•ˆμ „ν•˜κ²Œ ν”„λ‘œμ νŠΈ 곡유 κ°€λŠ₯

πŸ“ check-lists

  • ProjectShareToken μ—”ν‹°ν‹° 생성: 토큰 정보, 만료일, ν™œμ„±ν™” μƒνƒœ 관리
  • ProjectShareTokenRepository μΈν„°νŽ˜μ΄μŠ€: 토큰 쑰회 및 μœ νš¨μ„± 검증 λ©”μ„œλ“œ
  • ProjectShareTokenService μ„œλΉ„μŠ€: 토큰 생성 및 관리 λΉ„μ¦ˆλ‹ˆμŠ€ 둜직
  • ProjectShareTokenController: 토큰 생성/쑰회 API μ—”λ“œν¬μΈνŠΈ
  • ProjectViewService μ„œλΉ„μŠ€: 곡개 쑰회 μ„œλΉ„μŠ€ 둜직
  • ProjectViewController: 곡개 쑰회 API μ—”λ“œν¬μΈνŠΈ
  • ProjectShareTokenResponseDto: 토큰 응닡 DTO
  • ProjectViewResponseDto: 곡개 쑰회 응닡 DTO
  • 토큰 μœ νš¨μ„± 검증 둜직: 만료일 및 ν™œμ„±ν™” μƒνƒœ 확인
  • 곡유 URL 생성 둜직: ν”„λ‘œμ νŠΈλ³„ 고유 곡유 링크 생성
  • SecurityConfig μˆ˜μ •: /view/ 경둜 permitAll μ„€μ •
  • Project μ—”ν‹°ν‹° μˆ˜μ •: ProjectShareToken과의 관계 λ§€ν•‘ μΆ”κ°€

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions