개요
- todoList를 쓰는 이유: 해야할 일을 할 때 "해야될 일들을 떠올리는 과정"과 그 일을 실제로 하면서 "할일을 체크하는 과정"을 분리하기 위해서
- ex: 청소를 할 때 (바닥쓸기) - (다음 업무 떠올리기) - (이불털기) - (다음 업무 떠올리기)의 과정이 번거로움
- 어플의 사용목적: 어플리케이션을 통해 투두리스트를 생성하면 이후에는 그 투두리스트를 해치우는데만 신경쓰면 되도록 투두리스트 큐레이션
- 과업내용을 청소로 한정한다면? -> 청소가 귀찮은 사람들도 청소를 잘 할 수 있는 투두리스트 생성기! 😎
- 핵심기능: 청소와 관련된 "질문"을 받아서 잘 짜여진 투두리스트를 만드는 것
- -> 사용자는 새로운 청소를 시작할 때마다 "질문"에 대답하는 과정을 거쳐야 한다(대신 저장한 청소루틴이 있다면 불러올 것이냐는 질문 통해서 불러오기)
어플리케이션의 구성요소
- "도면" - 전체 집의 조감도, "구역"의 조합으로 이루어져 있다. 시각적 피드백을 확인하는 화면
- "구역" - 각 청소해야 하는 구역(거실 | 욕실 | 침실 | 베란다), 자주 사용하는 "구역"을 저장할 수 있다.
- "남은기간" - "청소리스트"의 "시작, 종료기한"에서 계산된 "남은기간"에 따라서 시각적 피드백이 "도면" 화면에 반영된다.
- "팁"
- "청소리스트" - "구역"에 설정된 청소들의 투두리스트. "청소"들의 순서이면서 "구역"을 구성하는 요소들이다.
"구역" 내의 "청소리스트"는 1개이상일 수 있다.
- "청소"<카드> - "청소 리스트"를 구성하는 각 태스크(ex: 먼지털기)
- "체크여부" - 해당 태스크를 수행하였는지 여부. "청소리스트"에 있는 모든 "청소"를 완료하면 초기화된다.
- "난이도" - ("매우 귀찮음" | "귀찮음" | "간단함")
- "우선순위" - 우선순위를 기준으로 "청소리스트"에서 순서 결정
- "디폴트?" - 해당 구역에서 제외하지 않으면 기본적으로 포함되는지 여부
- "청소도구"
- "필수적?": ("required" | "optional")
- 설명: description
- "내용" - description
- "격려": 격려메세지 + 구역별 "팁"메시지
- flow
- (도면 생성 화면에서) "구역" 생성 : 구역의 종류(거실 | 욕실 | 침실 | 베란다)를 결정한다
- (생성한 구역의 종류에 따른) 질문에 답하면서 여러가지 "청소" 생성 => <47번째 줄 참고>
- "청소도구", "팁"은 "청소"에 포함되어 있는 정보
- "청소리스트"(="청소"의 순서가 있는 리스트)는 "청소"들을 생성하는 과정에서 자동으로 결정("우선순위" 참고)
질문의 내용을 어떻게 구성할 것인가(가장 중요)
- 각 "청소"는 고유의 "우선순위"와 "디폴트여부" 값을 가지고 있다
- 사용자가 특정 "구역"을 생성하면 해당 구역에 맞는 "디폴트" 청소들을 "우선순위"에 맞게 배치한다
- 질문을 받아서 "청소리스트"를 불러오거나, 청소"를 추가/제거/순서변경 등의 처리를 해서 최종적 "청소리스트"를 생성한다!
각 질문이 ui에 어떻게 반영되는지 고려(비즈니스 로직)
- "청소리스트"에서 "청소"의 순서를 결정하는 데 도움이 되는 질문
- 일반적인 청소의 순서를 기반으로 몇개의 질문에 따라 조금씩 커스텀되는 식으로 구현
- 디폴트: 기본적으로 삽입되어있는 "청소"들
- 질문을 받아서 질문리스트를 수정한다
- 질문의 유형
- 분기점을 가르는 질문
- 특정 "청소"를 리스트에 삽입하는 질문
- 특정 디폴트 "청소"를 리스트에서 제외하는 질문
- "우선순위"가 동일한 청소들의 순서를 결정하는 질문(3개 이상의 경우는 고려 x)
- 질문의 순서: 큰질문 -> 작은질문
주별/월별 루틴
- backend 필요한 부분
- 각 구역별 언제 마지막으로 청소했는지 기록
- 집 전체의 간략한 "도면"을 그릴 수 있는 단계 추가
- 이후 각 구역을 선택해서 청소를 실시할 수 있다
- 각 투두리스트의 항목은 ("시작기한", 주별/월별에 따라 계산된 "만료기간", 시작기한, 만료기간에서 계산된 "남은기간") 정보를 가지고 있다
- 각 구역의 "남은기간"들에서 공간 전체의 "청소 진척도"를 계산해서 "도면"을 보여주는 화면에서 시각적인 피드백(ex: 진척도에 따라 빨->초 배경색) 표출
팁(취소)
팁을 줌으로써 청소의 방향을 유도할수도(거실의 먼지털기, 침실의 먼지털기... -> 거실의 바닥닦기, 침실의 바닥닦기)
그러려면 팁은 그 팁의 내용에 따라 적절한 곳에서 표출되어야 한다
일반적인 내용보다는 지금 수행하고 있는 청소에 도움이 되는 팁이었으면 좋겠다
팁의 종류들(카테고리: [마음가짐], [공통], [침실/주방/욕실/베란다])
언제 표출할 것인지?
1. 각 투두리스트를 완료했을 때 피드백으로 활용? -> 쓰기 번거롭지 않을까?
2. 하나의 구역은 완료했을 때 -> "다음 구역으로 넘어가시겠습니까" 팝업창 + 팁메시지
- 다른 곳은 없을까? -> 일단 플로우차트를 그린 후에 다시 생각해보자
대기질 open api(취소)
청소를 실시하기 직전에 체크
미세먼지 체크 -> 미세먼지가 일정 수치 이상이라면.. -> (필요한 작업들 소개)
필요한 작업들: 창문틀 청소하기, 청소기보다 물청소
커뮤니티 기능(취소)