One of the main struggles that our team, a team of college students, faces very frequently is balancing our studies and remaining focused with all the commotion of everyday life going on simultaneously. Although there a lot of great technologies currently available to keep organized and aid in studying, these technologies often can be detrimental as well, providing more outlets for distraction. For example, when using Google Calendar on the web for organization, an individual might be distracted by YouTube. When opening your phone to set a timer, the temptations of social networking applications like Snapchat and Facebook are a tap away.
We created Mindful to minimize distractions while increasing productivity and enforcing positive study habits. Our initial target audience was for college students like ourselves but we realized how Mindful could be applied to a large audience. Mindful can be used to help individuals with learning disabilities such as ADHD and dyslexia learn faster and better. People also learn best in different ways. Mindful allows provides an outlet for auditory learners and learners who prefer interaction.
What it does
Mindful uses the Amazon Echo to allow for voice activated quiz sessions. Our application allows the user to ask Alexa to prompt for information in a specific topic or be to asked a random question from all possibly topics. Another main feature of our application is timed quizzes. A user can ask Alexa to quiz the user in a certain topic in the future. This bypasses the potential for distractions on the phone or the Web.
Mindful also utilizes Cliq API from Zoho. Using the
/addquiz command in Cliq chat services, a user can add a question and answer tuple in a certain and it will send to our database. By using a common database for a certain Cliq channel, we envision this application to be used in a classroom or group study session as well. Different individuals can add questions to the same common database which all users accessing the database will be quizzed on. To improve user experience, we implemented a Cliq chat bot which will allow individuals to add questions more easily.
How we built it
Mindful was built on Amazon Web Services using a python wrapper and lambda functions. In this way, we were able to import multiple python modules that increased Alexa’s functionality. By extending Alexa’s functionality with the python wrapper, we were able to write more dynamic code. Otherwise, we also used Amazon’s developer console and service simulator.
The service simulator sends a JSON request to our python wrapper which then parses the information and creates an Alexa session. As long as a session is in place, we keep running the application. Once we are ready for Alexa to respond, we use our python wrapper to create an appropriate JSON request to be sent back to Alexa as a voice response.
Finally, for random question generation we used Amazon RDS to house a database of random questions that you could add to. This interface uses Zoho Cliq so you could add your own questions to be quizzed on.
Challenges we ran into
One of the first challenges we ran into with Mindful was integrating Firebase, our original database, with Alexa services. Amazon did not support this connection so we had to change our database.
One of the main challenges that our team ran into was integrating the Cliq API from Zoho with our database. Amazon RDS or other database services were not already a pre-made connection in Cliq, and as a result it was up to us to correctly implement and connect our Cliq commands to the database.
Accomplishments that we're proud of
- Learning two new technologies (Alexa services, Cliq API) within 24 hours
- Integration of databases with different interfaces
- Learning the power of teamwork and friendship
What we learned
- How to connect to an Amazon Alexa
- The bounty of the AWS
- Lambda Functions
- Built in functions of Alexa
What's next for Mindful
Currently, Mindful uses a binary evaluation for answers provided by the user, that is questions are either correct or incorrect. In the future, we plan to integrate machine learning with word vectors to evaluate partial correctness of long response answers.
We also plan to allow the user to ask for quizzes containing a specific amount of questions and provide an overall grade for the entire quiz. We also plan to use spaced repetition to have Alexa ask questions with incorrect responses more frequently than questions with correct answers.