SnapSudoku icon indicating copy to clipboard operation
SnapSudoku copied to clipboard

Web app using Django and an Android app

Open ymittal opened this issue 8 years ago • 8 comments

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! 😄

ymittal avatar Jan 25 '17 22:01 ymittal

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.

cclauss avatar Feb 03 '17 13:02 cclauss

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?

ymittal avatar Feb 04 '17 00:02 ymittal

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?

prajwalkr avatar Feb 06 '17 06:02 prajwalkr

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:

  1. SnapSudoku - the image to solved puzzle conversion module running in the server
  2. The Django server that acccepts images from clients and returns to them solved puzzles
  3. Android client app
  4. iOS client app

cclauss avatar Feb 06 '17 07:02 cclauss

Hi @prajwalkr,

I have not. It's definitely a good idea though. What else, if anything, would you like changed?

ymittal avatar Feb 07 '17 23:02 ymittal

@prajwalkr, done! Please have a look at the latest project structure.

ymittal avatar Feb 09 '17 16:02 ymittal

@prajwalkr @cclauss are we moving forward?

ymittal avatar Apr 01 '17 21:04 ymittal

@prajwalkr, any update on commits done by @ymittal ?

Siddhant-K-code avatar Jun 10 '20 07:06 Siddhant-K-code