Changsung.Kim 2014-01-17
add the doc about yobi organization planning.
@4e50765de483de8e5aaa3481af46ec1f8d49a693
 
docs/spec/yobi-organization-plan.md (added)
+++ docs/spec/yobi-organization-plan.md
@@ -0,0 +1,95 @@
+식별된 ROLE
+----------
+
+* 그룹멤버 = 그룹관리자 + 그룹참여자
+    * 그룹관리자 : 그룹 하위의 프로젝트 생성 및 그룹의 멤버 추가/삭제 가능.
+    * 그룹참여자 : 그룹의 읽기 권한을 가진 멤버를 의미.
+* 프로젝트멤버 = 프로젝트관리자 + 프로젝트참여자
+* 사용자 : Yobi에 접속한 모든 사람.
+* 로그인사용자 : 로그인한 사용자
+
+
+정의
+----
+
+* 그룹 페이지 : 어떤 그룹에 속한 프로젝트와 멤버를 한 번에 볼 수 있는 페이지
+
+
+Group
+-----
+
+* 그룹 생성
+    * 로그인한 사용자는 그룹을 만들 수 있다.
+    * 로그인한 사용자는 그룹 생성시에 복수의 그룹관리자를 지정 할 수 있다.
+* 그룹관리자가 할 수 있는 일
+    * 그룹관리자는 자신이 관리자인 그룹의 프로젝트를 생성/삭제 할 수 있다.
+    * 그룹관리자는 자신이 관리자인 그룹의 모든 프로젝트에서 프로젝트 관리자 역할을 수행할 수 있다.
+        * 프로젝트는 현재는 관리자, 참여자 두 개만 존재하지만 그룹프로젝트에서는 그룹관리자라는 새로운 롤이 생기고 해당 롤은 해당 프로젝트의 관리자 롤과 동일한 기능을 수행 할 수 있다.
+    * 그룹관리자는 자신이 그룹관리자인 그룹에 자신 이외의 관리자를 추가할 수 있다.
+        * 따라서 하나의 그룹은 그룹관리자가 두 명 이상이 될 수 있다.
+    * 그룹관리자는 그룹에 멤버를 추가/삭제를 할 수 있다.
+        * 멤버들을 특정 그룹으로 묶어서 편하게 보기 위해서
+        * 특정 프로젝트는 해당 그룹의 멤버들만 접근가능하게 만들기 위해서
+* 그룹멤버가 할 수 있는 일
+    * 그룹멤버는 그룹페이지를 볼 수 있다.
+        * 그룹 멤버가 아니면 그룹 페이지가 보이지 않음
+    * 그룹멤버는 자신이 속한 그룹에서 탈퇴할 수 있다.
+    * 그룹멤버는 그룹멤버 목록을 볼 수 있다.
+    * 그룹멤버는 그룹에 속한 프로젝트 목록을 볼 수 있다.
+* 검색
+    * 사용자는 그룹을 찾기 위해 그룹 이름으로 검색 할 수 있다.
+
+
+Project
+-------
+
+* 생성
+    * 로그인사용자는 프로젝트 생성시에 프로젝트를 그룹 또는 개인에게 추가 할 수 있다.
+        * 자신이 그룹관리자인 그룹에만 프로젝트를 추가 할 수 있다.
+* 공개설정
+    * 프로젝트관리자는 프로젝트의 공개설정을 private, public, site wide public 중 하나로 설정 할 수 있다.
+        * 각 설명은 Rule 참조
+
+
+Rule
+----
+
+1. 프로젝트 공개설정 별로 프로젝트 열람이 가능한 사용자
+    * Group에 속한 프로젝트일 경우
+
+|             | Private Project | Public Project | Site Wide Public Project |
+| ----------- | --------------- | -------------- | ------------------------ |
+| 프로젝트멤버 | O               | O              | O                        |
+| 그룹관리자   | O                | O             | O                        |
+| 그룹참여자   | X                | O             | O                        |
+| 사용자       | X               | X              | O                       |
+
+    * 개인에게 속한 프로젝트일 경우
+
+|            | Private Project | Public Project | Site Wide Public Project |
+| ---------- | --------------- | -------------- | ------------------------ |
+| 프로젝트멤버 | O               | O              | O                        |
+| 사용자      | X               | O              | O                        |
+
+
+추가됐으면 하는 기능
+------------------
+
+* Mention
+    * 그룹 이름으로 멘션 가능?
+        * 그룹멤버가 아닌 사용자에게도 그룹 이름으로 멘션 가능?
+* 프로젝트 넘겨주기
+    * 프로젝트관리자는 자신이 관리자인 프로젝트를 그룹 또는 사용자에게 이관 할 수 있다.
+        * 조직 이동 또는 퇴사 등의 이유로 프로젝트 이관을 하기 위해서.
+* 멤버추가
+    * 프로젝트관리자는 그룹을 프로젝트멤버로 추가 할 수 있다.
+        * 이때 그룹관리자를 추가할지, 그룹멤버를 추가할지 선택 가능하다.
+* 그룹 페이지
+    * 그룹멤버는 하위 프로젝트에 대한 이슈 목록을 모아 볼 수 있다.
+    * 그룹멤버는 하위 프로젝트에 대한 마일스톤 목록을 모아 볼 수 있다.
+    * 그룹멤버는 하위 프로젝트에 대한 코드주고받기 목록을 볼 수 있다.
+    * 그룹멤버는 하위 프로젝트에 대한 대쉬보드를 볼 수 있다.
+        * 일별로 추가된 이슈와 해결된 이슈를 표현하는 그래프
+        * 사람별 이슈를 얼마나 처리했는지 알 수 있는 그래프
+        * 일별 LOC 그래프
+        * 일별로 얼마나 커밋 됐는지 알 수 있는 그래프
Add a comment
List