File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
식별된 ROLE
- 그룹 멤버 = 그룹 관리자 + 그룹 참여자
- 그룹 관리자(Group Manager) : 그룹 관리자로 등록된 사용자
- 그룹 참여자(Group Participant)
- 프로젝트 멤버 = 프로젝트 관리자 + 프로젝트 참여자
- 프로젝트 소유자(Project Owner) : 프로젝트를 생성한 사용자 또는 프로젝트를 이관받은 사용자
- 프로젝트 관리자(Project Manager) : 프로젝트 관리자 권한을 부여 받은 사용자 + 프로젝트 소유자
- 프로젝트 참여자(Project Participant)
- 사용자(User) : Yobi에 접속한 모든 사람
- 로그인 사용자(Guest) : 로그인한 사용자
- 익명 사용자(Anonymous) : 로그인하지 않은 사용자
정의
- 그룹 페이지 : 어떤 그룹에 속한 프로젝트와 멤버를 한 번에 볼 수 있는 페이지
Group
- 그룹 생성
- 로그인한 사용자는 그룹을 만들 수 있다.
- 그룹 삭제
- 그룹 관리자는 자신이 관리자인 그룹을 삭제할 수 있다.
- 그룹이 소유하고 있는 프로젝트가 있다면 삭제할 수 없다.
- 그룹이 소유하고 있는 모든 프로젝트를 이관/삭제하여 그룹이 소유하고 있는 프로젝트가 전혀 없을 때 삭제 가능하다.
- 그룹이 삭제되어도 그룹이 소유한 프로젝트의 멤버 구성에는 변함이 없다.
- 그룹 관리자는 자신이 관리자인 그룹을 삭제할 수 있다.
- 사용자가 할 수 있는 일
- 사용자는 그룹 페이지를 볼 수 있다.
- 사용자는 그룹의 모든 멤버 리스트를 볼 수 있다.
- 사용자는 자신이 멤버로 등록된 그룹의 리스트를 볼 수 있다.
- 그룹 관리자가 할 수 있는 일
- 그룹 관리자는 자신이 관리자인 그룹의 프로젝트를 생성/삭제할 수 있다.
- 그룹 관리자는 자신이 관리자인 그룹의 모든 프로젝트에서 프로젝트 관리자 역할을 수행할 수 있다.
- 프로젝트 멤버는 관리자, 참여자 두 개만 존재하지만 그룹이 소유한 프로젝트에서는 그룹 관리자라는 새로운 롤이 생기고 해당 롤은 해당 프로젝트의 관리자 롤과 동일한 기능을 수행할 수 있다.
- 그룹 참여자는 자신이 참여자인 그룹의 모든 protected 프로젝트에서 프로젝트 참여자 역할을 수행할 수 있다.
- 프로젝트 멤버는 관리자, 참여자 두 개만 존재하지만 그룹이 소유한 protected 프로젝트에서는 그룹 참여자라는 새로운 롤이 생기고 해당 롤은 해당 프로젝트의 참여자 롤과 동일한 기능을 수행할 수 있다.
- 그룹 관리자는 자신이 그룹 관리자인 그룹에 자신 이외의 관리자를 추가할 수 있다.
- 따라서 하나의 그룹은 그룹 관리자가 두 명 이상이 될 수 있다.
- 그룹 관리자는 그룹에 멤버를 추가/삭제를 할 수 있다.
- 멤버들을 특정 그룹으로 묶어서 편하게 보기 위해서.
- 특정 프로젝트는 해당 그룹의 멤버들만 접근 가능 하게 만들기 위해서.
- 그룹 멤버가 할 수 있는 일
- 그룹 멤버는 자신이 속한 그룹에서 탈퇴할 수 있다.
- 검색
- 사용자는 그룹을 찾기 위해 그룹 이름으로 검색할 수 있다.
Project
- 생성
- 로그인 사용자는 프로젝트 생성 시에 프로젝트를 자신이 그룹 관리자인 그룹에 추가할 수 있다.
- 로그인 사용자는 프로젝트 생성 시에 프로젝트를 자신에게 추가할 수 있다.
- 공개 설정
- 프로젝트 관리자는 프로젝트의 공개 설정을 private, protected, public 중 하나로 설정 할 수 있다.
- 각 설명은 Rule 참조.
- 프로젝트 관리자는 프로젝트의 공개 설정을 private, protected, public 중 하나로 설정 할 수 있다.
- 개인이 소유한 프로젝트 이관
- 프로젝트 소유자는 자신이 소유하고 있는 프로젝트를 다른 사용자에게 이관할 수 있다.
- 프로젝트 소유자는 자신이 소유하고 있는 프로젝트를 어떤 그룹으로 이관할 수 있다.
- 프로젝트 소유자는 자신이 소유하고 있는 프로젝트를 이관시킨 후 그 프로젝트의 관리자가 된다.
- 그룹이 소유한 프로젝트 이관
- 그룹 관리자는 자신이 그룹 관리자인 그룹의 프로젝트를 사용자에게 이관할 수 있다.
- 그룹 관리자는 자신이 그룹 관리자인 그룹의 프로젝트를 다른 그룹으로 이관할 수 있다.
- 그룹 관리자는 자신이 그룹 관리자인 그룹의 프로젝트를 이관시킨 후 그 프로젝트의 관리자가 된다.
Rule
- 사용자가 그룹 멤버일 경우 그룹 페이지에서 볼 수 있는 프로젝트
Private Project | Protected Project | Public Project | |
---|---|---|---|
Project Member | O | O | O |
Group Manager | O | O | O |
Group Participant | X | O | O |
- 사용자가 그룹 멤버가 아닐 경우 그룹 페이지에서 볼 수 있는 프로젝트
Private Project | Protected Project | Public Project | |
---|---|---|---|
Project Member | O | O | O |
Guest | X | X | O |
Anonymous | X | X | O |
- 프로젝트 목록을 볼 수 있는 프로젝트
Private Project | Protected Project | Public Project | |
---|---|---|---|
Project Member | O | O | O |
Group Manager | O | O | O |
Group Participant | X | O | O |
Guest | X | X | O |
Anonymous | X | X | O |
- 각 프로젝트에서 할 수 있는 일
- 그룹 멤버 여부와 상관없이 프로젝트에 어떤 권한을 가지고 있는지에 따라 할 수 있는 일이 결정된다.
- 그룹 관리자는 그룹에 속한 프로젝트의 관리자로 등록되기 때문에 프로젝트 관리자 역할을 할 수 있다.
- 그룹 참여자는 protected 프로젝트의 참여자와 동등한 권한을 갖기 때문에 프로젝트 참여자 역할을 할 수 있다.
추가됐으면 하는 기능
- 그룹 아바타
- Mention
- 그룹 이름으로 멘션 가능?
- 그룹 멤버가 아닌 사용자에게도 그룹 이름으로 멘션 가능?
- 프로젝트 이름으로 멘션 가능?
- 그룹 이름으로 멘션 가능?
- 멤버추가
- 프로젝트 관리자는 그룹을 프로젝트 멤버로 추가 할 수 있다.
- 이때 그룹 관리자를 추가할지, 그룹 멤버를 추가할지 선택 가능하다.
- 프로젝트 관리자는 그룹을 프로젝트 멤버로 추가 할 수 있다.
- 그룹 페이지
- 그룹 멤버는 하위 프로젝트에 대한 이슈 목록을 모아 볼 수 있다.
- 그룹 멤버는 하위 프로젝트에 대한 마일스톤 목록을 모아 볼 수 있다.
- 그룹 멤버는 하위 프로젝트에 대한 코드 주고받기 목록을 볼 수 있다.
- 그룹 멤버는 하위 프로젝트에 대한 대쉬보드를 볼 수 있다.
- 일별로 추가된 이슈와 해결된 이슈를 표현하는 그래프.
- 사람 별 이슈를 얼마나 처리했는지 알 수 있는 그래프.
- 일별 LOC 그래프.
- 일별로 얼마나 커밋 됐는지 알 수 있는 그래프.