mldsqc / alicerun

How to mix TODO lists, tracking work sessions, habit and mood tracking, computer and smartphone tracking, CBT techniques, analyze them and build recommendation system for task prioritization and balanced life

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool


Logo

ALICERUN

Analize your digital activity's, mood, habits and predict what
to do next is best for your work-life balance

OR

How to mix TODO lists, tracking work sessions,
habit and mood tracking, computer and smartphone tracking,
CBT techniques, analyze them and build
recommendation system for task prioritization and balanced life

MIT License LinkedIn

About The Project

Product Name Screen Shot

πŸ”° Motivation

This year is total mess, a lot of frustration. So i decided to make a tool for quantitative self-assessment to track the emotional background and the progress of life goals, habits, and mood. Engineer, huh.

  • So I wanted to find (or return) the source of motivation, to concentrate on my emotional condition.
  • If it turns out to be useful for someone else (open source) - cool.
  • Also to draw attention to myself as a programmer, to find a good job.

Contact me on LinkedIn

The idea came from the logic of how digital products work.

The product must have metric(s) and a tracking process to adjust performance.

What is a great work-life balance? People feel it as a normal state of health, a balanced emotional state, etc. We do not measure this state - the metrics are not digitized. It turns out that today I feel good, but I don’t remember how it was a week ago. What about a monthly period? Is there any progress? It's not clear.

Questions running through my head

* How can I objectively measure the quality of my work?
* How to understand that work-life balance is good?
* How to understand what is missing for life drive?
* In what areas do I fade, and on which should I focus my efforts in the first place?
* What patterns of behavior prevail?
* Which of them should have been worked out yesterday? (addition to therapy)

There was interest, and excitement in front of an incomprehensible task.

  • The task was to develop a system of metrics, analytics for tracking them, and prediction.
  • As a result, I wanted to analyze progress every day and predict (with the help of machine learning) the most suitable tasks (for work and life), and habits for the best balance between life goals.

πŸ”§ Briefly about the sources of inspiration.

Here are some self-digitalization pet projects that inspired my R&D process.

Formula of Motivation

πŸ”§ Screenshots of dashboard and ready to use features

Final cut, β„–1 Final cut, β„–2 Final cut, β„–3

ecosystem in blocks And step by step:

    * Data collection, synchronization, and archiving
    * Personal storage server
    * Data analysis
    * Predicting the best task schedule
    * Visualization in the calendar
    * Dashboard with metrics and graphs

Metrics system

Metrics system:

  • register habits and emotions several times a day.
  • we attribute them to each of the vital areas: FINANCIAL, CAREER, EMOTIONAL, PHYSICAL, FUN_RECREATION, INTELLECTUAL, PARTNER, SOCIAL
  • enter the value of the assessment\contribution for each action. And counting the total value of personal growth. This is optional. As a result, I settled on a radial chart (upper-left from the very first picture) as the main graph to look at first.

⚑ What data/where is it collected from?

Integration

We collect the data from these sources: * Emotions and habits via Telegram bot, 4 times a day, reminders via Google calendar pushes * Actions on the computer from ActivityWatch * Android Activity from ActivityWatch, ActionDash. With root - we immediately take SQL files * Date from smartwatch(Miband4) from GadgetBridge * To-do lists and tasks from the Microsoft ToDo application (via the API - it's easier to immediately SQL-files) * Work sessions are tracked in Toggl (using the API)

πŸ”Œ Installation

What will you need:

  • Hosting of your choise(i've used Google cloud)
  • Telegram keys, Microsoft Graph API keys, Toggl API key
  • Registration of personal Google cloud app (to get access to drive, calendar, etc.)

⚑ What is a technological stack

stack: pandas, PostgreSQL, time-series forecasting, KNN clusterisation, plotly, dash, streamlit, toggl API, Microsoft graph API, google cloud, telegram-bot

⚑ Disclaimer, after which the project could not even start.

  • There are problems with registering emotions and habits in real-time. We all have instruments to register a pulse, stress level, and EEG in everyday life. I wish somebody will come up with small and easily accessible sensors for reading emotions instantly (if there are recommendations, write *), yeap, I know about reading emotions by face with CV, and i think it's not ideal yet).
  • Therefore, in the project it works like this: in the period from 11 to 14, I experienced this list of emotions, and made these habits. And not: 11-01 - emotion No. 11, 11-49 - habit No. 2 .... That means, we are registering cumulatively. This point then limits the forecasting methods.

Oh no

And here's the most important:

  • The fact that I experienced this emotion and/or performed this habit does not guarantee that it will affect the progress of a particular task. That is, there is no evidence of a causal relationship (and how can this be verified in principle?).
  • Therefore, I am a simple Buddhist monk - watching the storm and spinning data in pandas.

πŸ“¦ What hard skills i learned

  • It was very interesting to face the problems of data format organization. Questions from the series: what storage structure to take to build such a graph after processing-analysis

  • The toughest thing I remember was 2 days spent on 15 lines of code processing data in a specific type of storage. Frustration over the edge - but - this is how steel was tempered)))

  • I started tracking data to analytics, but it still turned out to be a small amount of data to learn on. Partly because sometimes I did not break tasks into small subtasks. For example, I did 1 big task for 3 weeks and did not register subtasks inside it. Lost data. So I had to run on simple ranking at the beginning for the cold-start problem, lol.

  • Due to the small amount of data collected (on completed tasks), the choice of prediction algorithms was limited. I took KNN clustering(with accuracy as the metric) to predict the execution time of tasks (I don’t use other metrics yet). Played with ARIMA for time series of emotions, without any hope.

Description of metrics from the task dataset

πŸ“¦ How much did i spend?

project track

Spent 240 hours. Lines of code ~ 8200, of which 3500 (experiments) did not enter production, from the rest ~ 15% of someone else's code (smartwatch block)

⚑ Open track of future features

* Introduce mechanics from CBT. Questionnaires - to encourage writing 5-minute journals. You can then pick up the answers using NLP (natural language processing)
* Analysis of spending budget. automatic micro-investment (or charity) in crypto for unfulfilled goals as a punishment
* Analysis of behavior on the phone and desktop is not screwed yet, but the data is integrated. And think about what features can be built on this data.
* Integrate Anki cards

🌟 Don't forget to write about the name

alicerun is a reference to Lewis Carroll. *My dear, here we must run as fast as we can, just to stay in place. And if you wish to go anywhere you must run twice as fast as that.

other options were: Munchausen (a reference to pulling himself by the hair from the mud), moospace (like mootivation), well, quite a punkish JORK... maybe mr. Jork Munhausen can be fine? I dunno

🌟 How does the system helps me?

I will not say that I open the dashboard every day. But I use the entire tracking workflow every day and this creates the effect of self-discipline. I began to notice behavioral patterns more often.

The best thing that has been achieved is a cozy feeling of control over the situation.

(back to top)

About

How to mix TODO lists, tracking work sessions, habit and mood tracking, computer and smartphone tracking, CBT techniques, analyze them and build recommendation system for task prioritization and balanced life

License:Apache License 2.0


Languages

Language:Python 52.9%Language:Jupyter Notebook 46.9%Language:Dockerfile 0.1%Language:Makefile 0.0%Language:Shell 0.0%