-
Notifications
You must be signed in to change notification settings - Fork 0
/
todo.txt
115 lines (100 loc) · 5.35 KB
/
todo.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
--misc--
-refactor actions to use a hof/hoc to save changes to firebase https://reactjs.org/docs/higher-order-components.html
-add a start now button to add task form
-add a max time value, cause that makes sense
-move data types to a separate node module that can be shared between frontend and backend,
and move util functions
also could refactor frontend to be more functional
--backend--
-setup push notifications https://codelabs.developers.google.com/codelabs/firebase-cloud-functions/#9
-create a weekly cron job to calculate optimal flow times
-create a new user table to contain flow times (e.g. 2pm-3pm high flow) and tags
-could also suggest time for tasks based on the average for that task. run weekly cron job for average
-
--ui rework--
-redesign the current UI as it has change a lot recently
-use the tags, maybe for the day overview etc
-make recap part of day. daily recap of work and fill in the gaps?
-overview of flow
-refactor to use styled components https://styled-components.com/ or maybe just a style var
-tidy the tasks component with compound components
-display components based on the redux state, build a state machine for this. or maybe use a router
-move time sizing constants to a separate class and maybe generate them on the fly
-maybe change dayRecap into a more timeline style, with a time and flow values and duration.
like taskA for 2hours then nothing for 1 hour. To take up less space and be more concise
-maybe limit to 3 tasks at a given time, 3 slots? to prevent old tasks
--legacy data--
-extract and look at data
-create a basic ml model
--ab testing--
-create an ab component, that takes two components and will record the flow for that component and user to the db
--day stat recap--
-add buttons to recap
-add different days
-group sequential short tasks into one large? solve drift due to min task length? shorter min length? no min?
-refactor into taskController, to prevent taskController from not being rendered? Maybe refactor with redux
-refactor to make use of taskNotViewing
--ab weekly tasks--
-select a daily task for two weeks e.g. drink macha each day
-provides daily reminders for task
-records levels of flow to db
-at the end of the two weeks produce a report to show if flow has increase or decreased and if the task is good for flow
--performance--
-profile components
-improve slowest
-optimise loadTasks firebase func
-check if the firebase date is optimal, may be able to reduce to a string with less overhead
-check out this for dates https://momentjs.com/
-use react memo for components that re render a lot but don't change
-remove child components that re render very little outside of the render method / return statement?
--prelaunch--
- https://firebase.google.com/support/guides/launch-checklist
-check security (https://www.youtube.com/watch?v=PUBnlbjZFAI&t=142s)
-test on different devices and web browsers
-test timings
-host it with a good domain name (https://domains.google.com/m/registrar/search/favorites?)
-add start info for first time users
-improve the notification ux
-secure db access rules and test
-check that saving tasks to firebase can't be optimized by only sending the changed fields
-add backups
----bugs----
-dayStat progress can get overwritten, maybe sync every hour. May be due to sign out logic?
-anti pattern, selecting another task doesn't show flowReport and same with day recap
----non-essential----
-add offline strategy
-test pop out app
(https://medium.com/javascript-in-plain-english/recreating-spotifys-floating-pop-ups-5dd3603aa7f9)
(https://googlechrome.github.io/samples/picture-in-picture/)
(https://w3c.github.io/picture-in-picture/#htmlvideoelement-extensions)
-add an install prompt (for pwa) (https://web.dev/customize-install/)
--personal flow coach--
-increase the amount of flow
-assigns and changes what task you are working on based on how you are feeling.
e.g. if bored maybe change to other task
-add ai to suggest the ordering of tasks - for optimal efficiency and to reduce burnout
-suggest different break based on how you are feeling. e.g. meditation or walk if fatigued
-plans day based on tasks and adds in non-tasks e.g. lunch a walk etc based on previous data and
how it thinks it will affect flow
--ai--
-setup firebase ml using a tensorflow lite model
-experiment with using a monte carlo tree search to order the tasks
-add ai autocomplete for task names and suggested duration
-create different user personality bots to train ai e.g. an organized bot, a procrastinator, a long distance, a sprinter
-create a more data driven application for ai, e.g. allow the ai to change break times, notification durations etc
-add tagging of tasks to enable fair comparison of metrics (e.g. you might compete a programming task quicker than a writing one), store tags on user
- https://firebase.google.com/docs/reference/admin/node/admin.machineLearning?authuser=0
-create an ai to suggest tags as the user types the task name
Flow producing activity are:
app can control:
We are able to concentrate on the activity / Freedom from distractions
The activity has clear goals / Knowing what to do /
The activity has direct feedback / Knowing how well you are doing / Feedback is immediate
We feel that we control the activity
Our worries and concerns disappear
app can't control:
We are up to the activity
Knowing how to do it
High perceived challenges
High perceived skills
A balance exists between opportunity and capacity