SnapSudoku
SnapSudoku copied to clipboard
Web app using Django and an Android app
Hello @prajwalkr,
Thanks for a great project. I really wanted to see how far I can go with extending this Python app to a mobile application. This PR (inspired by #3) includes a basic Android application which utilizes an API to solve a Sudoku by clicking its picture. I used Django to create the API endpoint sudoku/solve/
. To use your code, I had to refactor a few functions. Rest assured, your code still works for anyone who wants to experiment with just the Python scripts.
I acknowledge that I have made a lot of changes to the fork, but I have tried my best to include informative READMEs to avoid confusion. Please let me know what you think and feel free to recommend any changes or ask any questions you may have.
Thank you! 😄
Hi @ymittal This is a cool idea but tons of file changes. ;-) I could not really find/understand the API that you speak of. Are you solving the sudoku on the Android device or are you connecting to a server that is solving the sudoku remotely. If the former, then what are the hardware / RAM requirements on the Android? If the latter, it might be easier to consume all these changes if you created a separate repo called SnapSudokuAndroid
that just included the mobile app. This repo could then remain focused on the server side of the equation.
Hi @cclauss, definitely understandable! Though most of the new files are for Android. I am solving the sudoku by requesting a server. The main API code can be found in SnapSudoku/sudoku/views.py
. I can move the Android app to a different branch on my repository, but really all of Android code is in the android
folder. What are your thoughts, @prajwalkr?
Hi @ymittal, The neural network used to classify digits is not good enough for real life images. I had implemented this project with a vanilla neural network so that I did not need to include any 3rd party libraries. To implement this project for real life images, we need to move on to Convolutional Neural Network, using Keras (Python library). Further, have you implemented the Django app such that SnapSudoku can just be used as a module that is just imported and called?
Can Keras be run on a mobile phone? Seems doable but difficult/ limited... http://talc1.loria.fr/users/cerisara/posts/tflow/
My sense is that for now the client / server model is the best approach. This means that we have three or four code bases to create / manage:
- SnapSudoku - the image to solved puzzle conversion module running in the server
- The Django server that acccepts images from clients and returns to them solved puzzles
- Android client app
- iOS client app
Hi @prajwalkr,
I have not. It's definitely a good idea though. What else, if anything, would you like changed?
@prajwalkr, done! Please have a look at the latest project structure.
@prajwalkr @cclauss are we moving forward?
@prajwalkr, any update on commits done by @ymittal ?