요구사항정의 - 기능
구체적인 요구사항 중 기능을 중점으로 정의해 보도록 한다. 나는 이 토이프로젝트의 이름을 '나혼자챌린지'로 명명 했지만, 나혼자만의 도전(챌린지)으로 끝나는게 아니라 함께 참여하며 공유하는 기능을 전제로 하고 있다. 일단 기본이 될 만한 기능이나 규칙 등을 비교적 구체적으로 정의 해 봤다. 기능적 요구에 따라 카테고리를 나누었다.
목표(챌린지)설정 및 등록
- 회원은 챌린지의 목표를 설정하고 등록 할 수 있다.
- 목표를 설정 할 때 회원이 선택하는 값은 시작일, 종료일(목표일), 구체적인 목표 내용, 한다 / 안한다 의 값을 선택 한다.
- 목표 중 시작일과 종료일의 기간에 따라 단기, 중기, 장기의 세가지 기간 구분을 갖는다.
- 단기 목표는 7일 미만, 중기는 7일 이상 3주 미만, 장기는 3주이상 한달 이하의 값을 갖는다.
- 목표의 시작일과 종료일은 일자만 설정 한다.(시간은 설정하지 않는다)
- 목표 설정에서의 구체적인 목표는 사용자가 직접 입력하는 값이다.
- 한다, 안한다의 경우 사용자가 직접 선택 하는 항목이나, 앞의 구체적인 목표에 따라 표현을 직접 입력 할 수 있다. (먹겠습니다. 안먹겠습니다…)
- 목표 등록 시 회원의 목표 내용은 모두에게 공개 되는 것을 원칙으로 한다.
- 목표 등록 시 회원의 목표 내용 중 이름은 닉네임이나 회원명을 선택 해서 공개 한다.
개인 메인 페이지(프로필) 기능
- 회원은 자신의 대표 프로필 이미지와 간단한 자기소개나 문구 등으로 메인 페이지를 꾸밀 수 있다.
- 자신이 성공 / 실패 한 챌린지에 대한 정보와 통계 등이 공개 된다.
- 자신이 등록한 챌린지의 등록 시간을 기준으로 가장 최근에 등록한 챌린지의 글 순서대로 상대방에게 보여진다.
- 회원은 기본적으로 메인페이지 접속 시, 자신이 팔로우 하고 있는 사람의 챌린지를 우선으로 해서 다른 회원이 등록한 챌린지를 최근 등록한 글 순서대로 볼 수 있다.
- 팔로우하고 있는 회원이 없는 경우, 가장 좋아요, 댓글 등이 많아서 주목 받고 있는 챌린지, 자신과 비슷한 카테고리에 도전 중인 회원 등, 화제성이나 유사성이 높은 회원의 챌린지 글을 최근 등록한 글 순서대로 볼 수 있다.
- 회원은 메인 페이지에서 탭을 이용해서 자신이 등록한 챌린지만 모아서 따로 보거나, 챌린지를 추가로 등록 / 수정 할 수 있다.
목표(챌린지) 성공 / 실패 기능
- 챌린지는 종료 시간이 되면 등록한 회원의 이메일로 성공 여부를 체크 하라는 메일을 발송한다.
- 챌린지 성공 여부를 체크 해 달라는 이메일은 회원이 원하는 경우에 받지 않도록 설정 할 수 있다.
- 챌린지 성공 여부 체크는 회원이 로그인 했을 경우, 별도의 알림으로 정보를 알린다.
- 챌린지 성공 여부의 체크는 챌린지 도전자 본인이 직접 성공 / 실패를 확정한다.
- 챌린지 성공 / 실패를 확정 할 때, 추가적인 인증 사진 등을 남길 수 있다.
- 챌린지를 성공 했을 경우, 챌린지 등록 시 사용했던 폼에 완료 / 잘했어요 등의 인증 도장이 찍힌다.
- 챌린지를 실패 했을 경우, 챌린지 등록 시 사용했던 폼에 실패 / 다음 기회에… 등의 인증 도장이 찍힌다.
- 챌린지 성공 / 실패의 체크 여부를 챌린지 종료일 기준 7일 이내에 하지 않으면 자동으로 실패로 간주 한다.
회원 상호 작용
- 회원은 다른 회원을 팔로우 하면 팔로우 한 회원의 글을 피드로서, 자신의 메인 페이지 접속 시 팔로우 한 회원의 챌린지를 볼 수 있다.
- 팔로우 한 회원이 글을 올리면 해당 글은 알림으로도 받는다.
- 팔로우 한 회원들의 글 중 가장 화제성이 높은 글이나 회원이 관심 있을 만한 정보는 이메일로 해당 정보를 보낸다.
- 이메일로 추천되거나 요약되는 챌린지 정보는 회원이 원하면 수신 거부도 가능하다.
- 회원은 다른 회원의 챌린지에 같이 참여하기를 할 수 있다.
- 같이 참여하기에 도전하는 경우, 기존 회원이 등록한 챌린지 폼에서 이름/닉네임 값을 자신의 정보로 하고, 시작일은 같이하기를 등록하는 날짜로 하여, 나머지 정보는 동일하게 챌린지를 함께 참여 한다.
- 챌린지 같이 참여하기에 동참하는 사람들은 해당 챌린지에 참여 ~ 종료까지의 참여자 정보나 진행 상태 등을 알림으로 제공 받는다.
- 챌린지 같이 참여하기가 진행되는 경우 (2명 이상이 참여) 참여자 전체는 자동으로 실시간 그룹 채팅에 참여 된다.
- 이 실시간 그룹채팅은 챌린지 종료 후 일주일이 지나면 자동으로 삭제되며, 내용도 남지 않게 된다.
관리
- 관리자는 챌린지 도전 내용 중에서 음란성, 광고성, 개인정보 유출, 기타 사회적으로 논란이 될만한 글, 주제와 맞지 않는 글 등을 인지하고, 삭제할 필요가 있는 경우 해당 챌린지를 비공개 상태로 바로 만들 수 있다.
- 비공개가 된 글에 대해서 해당 챌린지를 등록한 회원은 비공개 상태가 된 날을 기준으로 3일 이내 기간에 이의 신청을 제기 할 수 있다.
- 별다른 이의 신청이 없거나, 이의 신청이 다시 관리자에 의해서 기각되는 경우 해당 챌린지는 완전히 삭제 된다.
- 해당 문제 제기로 비공개가 된 챌린지의 같이 참여하기에 참여한 대상자도 동일하게 비공개 혹은 삭제 처리가 된다.
- 관리자의 수동 비공개 처리 외에도, 회원들은 자율적으로 챌린지 글을 신고 할 수 있다.
- 챌린지의 글을 본 회원의 일정 수 이상 (30%)이 일정한 기간 내에 (ex: 10분) 신고를 한 경우 자동으로 비공개 처리가 된다. (관련 알고리즘은 추후에 자세히 설정하고 조정 한다)
- 자동으로 비공개 처리된 챌린지에 대해서 관리자는 해당 글에 대한 알람을 받고, 직접 수동으로 글을 읽고 판단하여 해당 글에 대한 삭제 여부를 판단한다.