Ironically, our motivation for a product for better self-motivation came about from a lack of thereof. It took us back to the last skills challenge, where we persevered, but ultimately were not able to pass certification due to procrastination. We realized that the only thing keeping one moving forward is usually oneself, with minor pushes from one’s family; however, we realized that this can change, and that change must come from self action. This inspired us to create a skill that would help users to motivate and improve themselves as a whole simply by using the Amazon Alexa.
What it does
Production Focus is a new paradigm for time management systems; it allows users to quickly and efficiently add tasks to Alexa and then let it know how many of those tasks were completed at the end of the day. From this, Production Focus uses an algebraic, statistically significant formula to determine the user’s “divergence meter,” or how much of their tasks they are not doing. This metric represents how far they diverge from their ideal self, and is inspired by a popular show called Steins;Gate. Then, Production Focus will automatically remind the user through SMS to do an activity if their divergence for a specific activity is over 25%, and may suggest ways to lower this, such as either, lowering certain commitments to make time for others, or ridding of an activity altogether. Further, there is also a “happiness,” or completeness, level, which provides motivation for users which normally does not exist with other to do lists, increasing with completed tasks and decreasing with divergence, and providing coins that may be used, after implemented, extra features or hopefully items from our sponsors. Essentially, Production Focus allows for simple, gamified self-improvement using Amazon Alexa by allowing the user to retrospectively examine what activities they need in their life and what things they could do without.
How We built it
Production Focus is built using the Alexa API to interface with a mainly Python-based back-end, using Flask and the fantastic Flask-Ask library. We tested with the Alexa Developer Console to simulate a normal Echo; however, we also created cards for the Amazon Echo Show using auto generated imagery of one’s divergence meter and happiness to provide the user with a visual representation of their productivity. Moreover, we used Twilio as our SMS API to provide the real-time mobile notifications. Using multithreading, we were able to both processes simultaneously. We wrote a Python interface to store user tasks in DynamoDB, and our entire backend runs on AWS Lambda. Using Python over other languages, such as Java, allowed us to both challenge ourselves as we do not have as much experience with this language, as well as gave us access to the dynamic mathematical library and data analysis library that Python extensively contains.
Challenges we ran into
The biggest obstacle that we overcame was a late start on the project, since we began it in late April, when we were told that this challenge existed, as opposed to the months that other groups have had to work. Yet we didn’t let this stop us, as we truly wanted to complete something that we would be proud of. Another smaller roadblock while going through with implementation was structuring how to keep track of completions and trials for each task and how to ensure that multiple missed trials were still all counted in the database. We were ultimately able to understand the structure and implement. An additional interesting challenge was generating imagery on the fly with Flask, as we wanted a way to keep a visual divergence meter for users with Echo Show.
Accomplishments that we're proud of
One member of our team was completely unfamiliar with the Python language that we used to write the function of our product, and in general most of us had used it very infrequently before. Additionally, being high-schoolers, we naturally have had less time to learn what many others could have spent years on, so we started off at a disadvantage. Finally, due to our late start on the project, finishing on time with many features was a feat that we did not expect.
What we learned
As aforementioned, many of us learned better application of Python than we previously knew. Further, we also improved our own time management, not through our program, but through effective communication which allowed us to reach daily deadlines until everything was finished. Perhaps most importantly, we learned from a previous skill we had slightly fleshed out how to make our ideas reality and that results are not necessarily visible from only one person’s contributions.
What's next for Production Focus
In the future, we plan to add a weighting system to tasks, which will allow the user to quantify better what does or does not matter to them more effectively. Further, we are looking into a way to expand Production Focus to business, allowing corporations to better assign tasks and examine their own company.
To serve as an example to others, we’ve released Production Focus as free software under the Affero General Public License v3.0.