Open wolfram77 opened 1 year ago
I think the activities thing is beyond the scope of this project.
We should rather focus on collecting user data about various modes and times spent on those modes. After collecting these data we can give points and gamify it. Compare and rate their performance with other users.
times spent on those modes
This is what i mean by activity, but a bit more general. You can use it to keep track of time spent in towards a given sub-goal/gloat.
I implemented activities in code, but not exposed in UI. I don't plan to expose it in the current phase of the project. Focus you must on the point-based system currently. Items not being tracked this "sprint" will be marked as complete.
The following features have now been shipped (packed on a ship and left port 🚢):
#include
)Currently a fixed duration cannot be set, and all modes behave like legendary
, i.e., blocklist tabs are closed immediately. Duration limiting and mode-specific behavior need to be added.
Timer is working currently. Behavior or mode selection is pending.
The following happens with modes now:
This is a work in progress (WIP). The goal is to create a system that can be used to manage attention, train focus, track time, and increase productivity. The system can be used to manage tasks, track time spent on tasks, and reward users for completing tasks. The system can also be used to track time spent on distractions, and provide feedback to users.
Track time spent on a hierarchy of activities
An activity can be something specific, or something more general like a project or goal. Activities can be nested in a hierarchy. For example, a project can be broken down into tasks, and a goal can be broken down into projects. The hierarchy can be visualized as a tree. Each activity can have a unique name, description, color, and associated tags (sub-activities).
The record format to store activities in an SQL database can be as follows:
To track the time associated with each activity, a separate table can be used:
Track time spent on distractions
A distraction is an activity that is not productive. This can include things like social media, video games, etc. The goal is to minimize the time spent on distractions. However, it is important to note that distractions are not necessarily bad. They can be used as a reward for completing a task, or as a way to relax.
Distractions are also activities (with one tag as distraction), and can be tracked as such. Note, a distraction can be broken down into sub-distractions as well. For example, social media can be broken down into Facebook, Twitter, Instagram, etc.
Functionality of the timer
We can use a timer to track the time spent on activities. The timer can be used to track the time spent on a single activity, or multiple activities.
Reporting time spent on activities
We can generate a report to display the time spent on activities. The report can be displayed as a pie chart or bar chart. The report can be generated for a day, week, month, or year. The report can also be generated for a specific time period (e.g. 2020-01-01 to 2020-01-31).
Rewards for completing tasks
We can use a reward system to incentivize completing tasks. The reward system can be used to track points and rewards. The points can be used to unlock rewards. The rewards can be virtual (e.g. a badge) or physical (e.g. a gift card). The rewards can be immediate/delayed, or can be choice-based (e.g. choose from a list of rewards) or randomized (e.g. randomly choose a reward from a list of rewards).
References