Inspiration
We were inspired by the many children who are stuck at home instead of attending school. We wanted to create an app that could help these children learn basic skills like spelling and handwriting.
What it does
Spelling Tutor lets students test their spelling and handwriting by spelling a randomly generated word via a mouse or touchscreen. Each letter that the user draws is sent to the server in individual image files, which are then interpreted by a machine learning model into English text. Once a student has done spelling a word, the server runs a Levenshtein distance algorithm to determine how accurate the student's spelling was.
How we built it
To split up the work, Niels worked on the HTML, js, and CSS (frontend), Satvik worked on the flask backend, and Soham worked on the machine learning model. Since each of us was working on the parts of the application that we were respectively good at, we were able to implement the features that we wanted.
Challenges we ran into
Managing different modules of our code and making them integrate with each other caused some problems. Since we decided to split the work so that each person worked on the part of the project they were best at (frontend, backend, deep learning), our final project had to make sure all the code worked together in one project. Unfortunately, this made testing difficult because we had trouble testing parts of the code that depend on someone else's work as not all parts of the code were written when we wanted to test. In addition, this made debugging harder because it was difficult to tell which part of the code had the error.
The amount of data we had to train the machine learning model was not sufficient for the job. We tried to download a bigger dataset, but the time it took to process the data was more than the time of the hackathon. Using a larger dataset would be much more reasonable to use on a commercial scale.
Accomplishments that we're proud of
This was the first time we have created an app that successfully integrates different parts of code, such as the successful implementation of POST requests from the client to the server, correctly using deep learning models exported from Jupyter Notebook to the server backend, and reliably managing logins through a database.
What we learned
We learned how to send image data from a frontend app and process the data in a flask app. We also learned a lot about machine learning models, and how to call them from server-side applications.
What's next for Spelling Tutor
One of our major goals is to make the machine learning model more accurate. We can do this by training the model with a larger dataset. Another goal is deploying the app, as we could not accomplish this by using free services like Heroku, and we would instead have to create a web server on a cloud-compute virtual machine via AWS or GCP.
Log in or sign up for Devpost to join the conversation.