Productivity and Efficiency have been 2 of the mostly discussed topics in the recent days with the work from home situation and e-learning.
I've faced many issues like not taking breaks at all or being distracted too much. On somedays I don't achieve all the tasks because I don't have a proper plan, or because I forget the time to begin a task.
There have been many such issues that I've faced. Not just me but many others have faced such issues. Because everything happens online these days, some are starring at a screen from the time they wake up to the time they go back to bed. Yes, there are a many mobile apps and websites that can solve these issues. But mobile apps and websites aren't the best solution after all. Sometimes you get distracted by the phone when you try to open the productivity app, or you've left the phone in another room.
But I knew that an Alexa skill to solve these problems would be much feasible as you always have Alexa in the same place, and it's active all the time. Also using only your voice is more efficient Therefore, I analyzed the best features of few mobile apps, and also added few features that can boost your efficiency into one Alexa Skill, and it was called Uplift Efficiency.
What it does
Uplift Efficiency is a very user-friendly Alexa skill that you can start using by just saying "Alexa, open Uplift Efficiency" to any supported device.
It consists of 4 main features at the moment.
• Day Planner
• Productivity Timer
• Screen Timer
Day Planner Organize your day and keep track of the tasks in your day. Add all the tasks in a typical day including Sleep, Work/School, Sports and Exercises, Leisure and Custom Tasks. You can add the begin time and the end time for all these tasks, then we'll arrange all the tasks in an order and make it your daily routine. Then you can set reminders for the tasks in the day plan. You will be reminded when to begin and end the tasks in your day plan. Also you can edit the day plan or refer to it at anytime...
Productivity Timer Boost your productivity by properly organizing your work-break pattern. You can choose one clock out of the 3 available clocks to begin with. You can choose between Pomodoro timer, 52/17 timer, Ultradian timer. After setting one default clock you can tell you work session. (Eg: "Begin a work session of 3 hours and 30 minutes") Then reminders will be set at every time you need to switch from work to break or break to work. These reminders are just like any other reminder on Alexa, but they'll be set up automatically.
Screen Timer Take care of your eyes; take a break while using devices with screens. Similar to the Productivity Timer you can ask Alexa to begin a screen session and you will be reminded every time you've got to take a break and get back to work. This works according to the 20 20 20 rule, where you take a 20 second break every 20 minutes to look at something which is 20 feet away.
Challenges 5 Day Challenges to boost your efficiency. Just select a 5 day challenge and get started. Currently only 1 challenge is available, it is the sleep challenge. In the sleep challenge you need to do 5 tasks on 5 consecutive days before sleep. More challenges will be added in the future. This feature is only available for premium users.
Premium There is also a premium version. Premium users can use the feature challenges, they can create up to 4 accounts and also there's skill customization.. Non-premium users can use only 1 account. Also more features will be added in the future for premium users.
How I built it
The skill was built using Voiceflow, Google Sheets, Alexa VUI Developer.
How each of the features were built
The users task names, begin times and end times were captured into variables and stored in a Google Sheet. Then they were arranged into order in Google sheets, then all data was retrieved.
The feature to set reminders was easy with the Voiceflow Reminder block.
When editing tasks and updating tasks the data was updated in Google sheets too.
Although the day planner feature didn't use many advanced technologies or much custom tasks it required hundreds of speak blocks, variables etc.
Productivity Timer and Screen Timer The hour and minute was captured into slots within the intent, if the hour and minute is not defined by the user, the user will be prompted to say the session (hours and minutes). Then the data was entered into Google sheets. Then the number or breaks and work sessions were obtained, there was some custom code here too. After this the exact time to take a break and get back to work was calculated and reminders were set accordingly.
Challenges - Sleep Challenge Firstly the date to begin the challenge was asked, after that the time the user goes to sleep was obtained through the day plan. After which the estimated task time would be deducted by the sleep time and a reminder would be set to the time the user should begin the task on the 5 days. Custom code was used to get the user's timezone.
Contact Feature There is a contact feature which users can use to send us a message from the skill. The user's email address will be obtained (The user will have allowed permissions before-hand). Then the message will be captured. A simple zap (Zapier) is used to send a confirmation message to the user's email. Even we'll receive a message saying an user contacted and we can reply.
Premium A one-time in-skill purchase can be purchased by the user. When the purchase is successful, a variable called premium_user will be set to 1. Others will have it 0. So the premium features can be accessed by the user if the user's premium_user variable contains a 1. The feature to create multiple accounts and switch between them is done by altering the user_id. But the real user_id won't be permanently altered.
Visual User Interface
The Alexa Developer Console has a feature to develop VUI's using JSON. I built the VUI for devices with screens using the Alexa Developer Console.
Images of Building the Skill
The Contact Feature
Retrieving Data and deciding the clock type
Challenges I ran into
Day planner: I ran into a problem when trying to create and retrieve data too often within the conversation. Alexa would reply with "The requested skill has an error" It was difficult to solve it so I came up with a temporary solution as I didn't have a lot of time. But I'll come up with a permanent solution later.
Day Planner: The feature to edit tasks was difficult to make. It needed over 100 blocks.
Productivity Timer and Screen Timer: After an user sets a reminder for the first time the data isn't deleted. Then when the user sets a reminder again the same data of the first time is recurred. Deleting data in Google sheets wasn't possible as too much interactions would prompt users to errors. So, I had to develop it so that if the user has set a reminder already the data needs to be updated and not created again.
Productivity Timer: The pomodoro clock has short sessions, 25 minutes or work and 5 minutes of break, so it was difficult to set a lot of reminders if an user's work session is long. Since it required a lot of reminders and even Amazon didn't allow so much I had to limit the work session to a relevant time.
Challenges: There was a issue with scheduled reminders in voiceflow. It wasn't an issue from my side, but a bug in voiceflow. So, I had to calculate the time until the task and set a timer reminder, which was difficult.
Challenges: Then came up an issue with timezones, because now() in google sheets takes the current time in my timezone, but users are located in different timezones. So, I had to add a custom code to take the users current time and record it in google sheets instead of now().
VUI: It was very difficult to design the VUI for echo spot devices, since this was my first time developing VUI's it was difficult to design it.
Accomplishments that I'm proud of
Firstly, I am really proud that I finished developing at least a beta version within the hacking time. Also I am proud about being the first Productivity Voice Skill with this much of features. Simply I am proud about everything in Uplift Efficiency and how much I achieved within a short time.
What I learned
As I've never used the Alexa Developer Consoles VUI editor before I learned to develop VUI's.
A lot in Voiceflow. I used almost all the features in voiceflow and learned so much that I never knew about voiceflow and what could be done with it.
I learned a lot more...
What's next for Uplift Efficiency
Uplift Efficiency has many more features to be added and I need to make few changes too. After that I will submit the skill for certification.
I have also planned to launch the skill on Product Hunt, as it can bring a lot of users to my skill.
The link below can be used to view the voiceflow project
"A Project by Senuka Rathnayake"