Objective
The goal of this feature is to prompt the user to report how they are feeling at regular intervals in a quantitative and a qualitative way and then allow the user to download a report highlighting their feelings over a select period of time.
Requirements
- The user should be able to opt into this service. It is not on by default.
- The user should be able to opt out of the service again whenever they want.
- Upon setting up this service, the user should be able to select how frequently they are prompted to report their feelings.
- The user should be able to change the frequency of prompting after setting it initially.
- Each prompt should contain a required quantitative question such as a sliding scale of how the user is feeling and an optional quantitative question of whether or not they want to talk about it.
- The user should be able to download a short report summarizing the quantitative data or a long report giving all data for a select period of time.
- The user should be able to erase their history at any time.
Database schema
Field |
Type |
Key |
created_at |
DATETIME |
-- |
owner |
TEXT |
FK |
rating |
INTEGER |
-- |
description |
TEXT |
-- |
Field |
Type |
Key |
owner |
TEXT |
PK |
frequency |
TEXT |
-- |
time_pref |
TEXT |
-- |
UI Flow
Set initial configuration by using /starttrackingfeelings
command. This should then tell the user that Feeling Tracking has started and ask them how frequently they would like to be prompted and if they prefer a particular time of day (Morning, Afternoon, Evening, No Preference)
When Feeling Tracking is enabled, Executive Function Bot will prompt them at the specified interval saying:
How are you feeling?
This will show an inline keyboard allowing the user to select a number between 1 and 5. After the user selects an option, Executive Function Bot will ask them if they want to share more by saying:
Would you like to tell me about it?
If the user responds with no
or No
, Executive Function Bot will say Not a problem. Have a great day!
. If the user responds with anything else, Executive Function Bot will say Thanks for talking to me about it. Is there anything else you want to say?
which will cycle this step.