In making this project, we were inspired by popular touch typing improvement platforms such as TypeRacer and 10FastFingers
What it does
Our Smart Type Assistant allows users to improve their touch typing skills (such as WPM and accuracy) by generating new prompts based on the letters they make the mistakes on. For example, if the user keeps making mistakes with the letters 'T', 'R', and 'Q', new unique prompts will be generated that have words containing these letters, allowing the user to improve on their weaknesses. It also shows the user their accuracy and WPM live while they're typing the new prompt so that they can see how well they're doing and track their progress. The user can also clear the data file once they felt like they improved on a particular letter to find new mistakes to improve on.
How we built it
We built the Smart Type Assistant using Python for the front-end and back-end. We split into two teams, one to design the back-end algorithms with Python and another to develop the front-end using Tkinter, a Python GUI toolkit.
Word Library Used: https://github.com/first20hours/google-10000-english
Challenges we ran into
Our first challenge was finding a platform to share code and track our progress efficiently. We decided to use Github for this and quickly learned Git so that each member has code that is up to date. Since non of us worked with GUIs or had very little experience using Python, as a team we had to push ourselves outside of our comfort zones and quickly learn new syntax and libraries.
What we learned
From this hackathon, our team was able to gain more experience programming back-end with python as well as using Tkinter for the front-end GUI portion of our project. We also learned how to work efficiently as a team and the basics of Git to share our work between each other.
What's next for Smart Type Assistant
We plan on challenging ourselves by publishing the Smart Type Assistant into a web application and host it on a service such as AWS. In the future we also plan on adding the ability for users to compete in competitions and daily challenges.