Description as a Tweet:

Tired of getting stuck solving sudoku? Our bot makes it easy to get solutions to partial or fully empty puzzles. All you need to do is text a good, valid picture of the puzzle to our number and you will get a solution in response.

Inspiration:

Sudoku is something that we all share an interest in and we found it tedious checking our puzzles by going over each individual number. We wanted a simpler, more efficient way of checking our puzzles.

What it does:

We receive an image as a text message, which we handle using the Twilio API and then break down the data in the picture using Amazon's Textract which converts the picture into what they call Blocks and Cells. We then had to parse through this data pulling out numbers and empty cells along with their coordinates and put them into a 2d array. We then run the 2d array through our checking and solution algorithm which then returns a completed sudoku puzzle. Finally, we convert this 2d array into a nice looking jpeg and text it back to the user.

How we built it:

We used node.js to deploy Twilio's messaging API to handle a SMS based UI, then fed image data provided by the user into AWS's Textract API in order to extract text from the sudoku grid. Afterwards, we ran a sudoku solving algorithm on the extracted data to generate a possible solution. We then used the Canvas API to create a jpeg image that visualizes the sudoku solution in a user-friendly format, and then send the Canvas generated image back to the user using Twilio.

Technologies we used:

  • HTML/CSS
  • Javascript
  • Node.js
  • Express
  • Python
  • AI/Machine Learning

Challenges we ran into:

So many challenges, so many. First things off we are pretty young in our CS journey with three of us being sophomores and one of us being a freshman. A couple members in our group had experience with some of the technologies we used, but for two of us, everything was completely new. Learning while we were trying to implement our ideas was one of the hardest things that we had to do. Even though we didn’t do any of the super intense coding such as the machine learning that AWS took care of for us, we had to connect the pieces of different software together which as one of the grad panel students said, is the hardest part of software design. Also piecing together different parts of our code that were sometimes in different languages was tough to do.

Accomplishments we're proud of:

We are very proud of being able to use multiple API’s and apply them in real time and real world applications. We used skills that we learned in class and elsewhere to produce real original software.

What we've learned:

We learned about the process of software design and how difficult it is to get moving pieces of different software and tools to work with each other in order to make a proper working product. We also learned how to use and implement existing tools like API’s and avoid making things from scratch and the importance of focusing on the interaction between existing software tools.

What's next:

Next up is implementing it as an IOS or android app, and handling all the user interface on there instead of on text. We also want to add some additional features such as adding a possibility of automatically detecting a completed puzzle or not and then verifying the solution.

Built with:

VS Code, github, Twilio, AWS, Canvas, NodeJS

Prizes we're going for:

  • Best Software Hack
  • Best AI/ML Hack
  • Best Use of AWS
  • Best Beginner Software Hack
  • Best Mobile Hack
  • Best Use of Twilio

Prizes Won

Best Use of AWS

Team Members

Stav Kinreich
Laurent Man
Aaron Bergfeld
Abhi Motupalli

Table Number

Table 40 (TBL)