Quantified Self

build status

Requirements Status

Codecov

Code Style

Codacy

Quantified Self 란 개인의 일상활동에서 신체적·정신적 상태를 센싱 및 트래킹하여 이를 수치화함으로써 자신의 상태를 분석하고 삶의 질을 개선하기 위한 방법을 연구하여 실생활에 적용하는 활동을 의미합니다. Gary Wolf와 Tom Kelly에 의해 소개되었으며, 2010년 Ted Talk에서 주목을 받아, 그 이후 하나의 운동형태로 커뮤니티가 형성되어 QS 웹사이트를 통해 전개되어 왔다고 합니다. 그들의 미션은 다음과 같습니다.

To improve quality of life by generating and sharing knowledge on Quantified Self (QS)

이 저장소에서는 저 자신에 대한 다양한 데이터들을 수집하고, 분석에 사용했던 코드들과 인사이트를 공유합니다.

Blog

Article - Title English Korean
Personal Assistant Kino Part 1 — Overview. Medium Github page
Personal Assistant Kino Part 2 - Skill & Scheduler. Medium Github page
Personal Assistant Kino Part 3 - T3. Medium Github page
Personal Assistant Kino Part 4 - Smart Feed. Medium Github page

Data Source

현재 수집하는 데이터의 종류와 사용되는 App과 웨어러블 기기의 리스트입니다.

Record

Record는 제 자신에 대한 각종 데이터를 수집하고 분석하기 위한 용도입니다.

Data Value Description Integration Note
Happy 1점 :rage:, 2점 :pensive:, 3점 :slightly_smiling_face:, 4점 :laughing:, 5점 :heart_eyes: 질문을 받은 당시의 행복도 지수
Attention 1점 :weary:, 2점 :disappointed:, 3점 :neutral_face:, 4점 :thinking:, 5점 :thumbsup: 하나의 작업을 끝냈을 때의 집중도 지수
Sleep 시작시간, 끝시간 수면시간 데이터 Fitbit python-fitbit
Productivity RescueTime, Github, Toggl, Todoist 종합 생산성 종합 점수 아래 참고
- Task Toggl ID, 시작시간, 끝시간, 카테고리, 작업내용, 집중도 하나의 작업에 대한 데이터 Toggl, Todoist, Trello TogglPy, todoist-python, py-trello
- RescueTime 생산성 점수 Website, App 등의 Time-Tracking Tool RescueTime
- Github 주간커밋 Github의 커밋 수 Github PyGithub
Repeat Task Exercise, BAT, Diary 매일 반복하는 활동들
(운동, 공부정리, 일기)
Total Score 종합점수 Attention, Productive, Happy, Sleep, Repeat Task 를 모두 고려한 종합 점수

Log

Log는 ML 학습을 통해서 자동화를 시키기 위한 데이터 목록입니다.

Data Value Description Note
Message 시간, 명령어 텍스트 kino (Chatbot) 에게 시킨 명령어 텍스트
RSS Feed Category, Title, Pocket 저장여부 다양한 Article 에 대한 데이터
자세히 보고 싶은 글의 경우 Pocket에 저장
feedparser, pocket, python-twitter

Components

크게 다음과 같은 4가지 컴포넌트로 구성이 되어있습니다.

Chatbot (kino-bot)

Register Skills

현재는 총 27 개의 Skill이 구현되어 있습니다.

Scheduler

Webhook

Dashboard

Daily Schedule

image

Daily Habit

image

Daily Summary

image

Weekly Task Report

image


Prerequisites

Quick Start

먼저 requirements를 설치해줍니다.

pip install -r requirements.txt

다음으로 최소한의 설정이 필요합니다. (config.yml)

bot:
  MASTER_NAME: <name>
  BOT_NAME: Kino
  LANG_CODE: en
  TRIGGER:
    - hey kino
    - 키노야
  ONLY_DIRECT: false   // text startswith Trigger or @kino, or Direct Message
  GIPHY_THRESHOLD: 85  // all responses are random pick number (1~100) to use giphy

slack:
  TOKEN: <token>
  channel:
    DEFAULT: "#general"

다음으로 아래 커맨드를 실행하면, Bot이 실행됩니다.

python main.py

Integration with ML/DL

추후에 ML/DL 을 기반으로 하는 기능들을 더 붙여서 더 똑똑하게 자동화를 시켜줄 수 있도록 만들고 싶습니다.

License

See the LICENSE file for license rights and limitations (MIT).