douglasdrumond / yagrac

Automatically exported from code.google.com/p/yagrac
0 stars 0 forks source link

Scan a book to a shelf using device camera #7

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Allow the user to take a picture of a book (barcode or possibly even google 
goggles) and present an activity to add that book to a shelf.

Original issue reported on code.google.com by adam.jo...@gmail.com on 3 Sep 2010 at 5:28

GoogleCodeExporter commented 8 years ago
Please bump this up from low!

I'm a pretty avid reader, so I've started use Goodreads to track both what I've 
read and what I'm planning to read.  Upon picking up my Android a couple weeks 
back, I checked out my options for apps for GR.  The #1 thing I wanted from my 
solution is, "Can this app scan books that I have read or want to remember to 
read later?".

Additionally, alternative solutions (Casper) only implement parts of this.   
There is no ability to set "default scan" shelf (or shelves), which could also 
be key.   For example, if I'm out shopping for books or visiting with a friend 
with a decent collection, I may want to quickly scan an array of books to my 
"want to read" pile.   Or if I'm a relatively new user to GR (like I am), I 
might want to set it to my "owned" shelf and scan my whole library.  For larger 
collections, it would be great to be able to select multiple default scan 
shelves, so I can scan all "owned" and "scifi" or "biographies".

Ideally, it would be a configuration setting to either rapidly scan books with 
no opportunity to add additional data (review, rating, etc) or to set it to 
one-by-one mode, with the ability to tag extra shelves, rate and review.

Original comment by jdvy...@gmail.com on 7 Sep 2010 at 10:14

GoogleCodeExporter commented 8 years ago
Escalating...

Those are some pretty compelling use case scenarios.  I marked as low as I 
thought this might be a pretty difficult feature to implement.  Time to face my 
fears and learn some new tech!

Original comment by adam.jo...@gmail.com on 7 Sep 2010 at 10:23

GoogleCodeExporter commented 8 years ago
My wife has 30 boxes to add to GR, at least.  You'd be my hero.

Original comment by jdvy...@gmail.com on 7 Sep 2010 at 10:26

GoogleCodeExporter commented 8 years ago
I would like that function, I was trying out an app caled, MyBookDroid and it 
integrates with ZXing Team's Barcode Scanner to find books. If there was a way 
to use the barcode scanner in this app as well as add them to a shelf that 
would be nice. 

Original comment by jmangin...@gmail.com on 8 Sep 2010 at 1:48

GoogleCodeExporter commented 8 years ago
R14 adds the ability to scan a book by barcode from the Search screen.  This 
doesn't cover the bulk scan use case, but it is a step int he right direction.  
I will publish this as a point release to the market and post the apk in the 
download section.

Original comment by adam.jo...@gmail.com on 8 Sep 2010 at 6:36

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
FYI, I just found out today that ZXing supports Bulk Scan mode, which allows 
multiple scans.  Since it gets saved to the History CSV for ZXing, you may be 
able to just take advantage of that functionality.   When you start a bulk scan 
from YAGRAC, simply ask permission to clear the ZXing history.  Then when the 
user goes back to YAGRAC, ask what shelves they want to bring in all the 
Scanned History as.   Voila, bulk scan via someone else's update?  =) 

Original comment by jdvy...@gmail.com on 26 Sep 2010 at 5:01

GoogleCodeExporter commented 8 years ago
I am wrestling with how best to implement the bulk scan feature, and where it 
fits best in the YAGRAC app.  I am launching the ZXing Barcode Reader using an 
intent, so my ability to interact with the features is pretty minimal.  I can 
do bulk scan mode, but I only get the list of scanned values back at the 
conclusion.  So if one of the scans doesn't match a book it would be very 
difficult to let the user know which scan failed.  It could be frustrating as a 
user to scan in a shelf full of books and then find out that several had 
issues, and then go back and discover which ones failed.

The process I am thinking of would be as follows:

1 - User indicates desire to scan a book
2 - User is prompted to choose one-shot scan or bulk scan
3a - User selects one-shot, current activity takes place (end flow)
3b - User selects bulk scan, is prompted to select shelves
4 - User selects shelves and clicks OK (or cancel to end flow)
5 - Barcode Reader is launched
5a - User successfully scans a barcode
5b - User cancels scan, goto 8.
6 - First/next matching book presented to user for confirmation
7a - User confirms book.  Book is added to shelves. Goto 8.
7b - User rejects book. Goto 6.
7c - No (more) matches found.  Pop toast to indicate no match.  Goto 8.
8 - Prompt user to Scan Next, Change Shelves, or End Bulk Scan
9a - User selects scan next, goto 5.
9b - User selects change shelves, goto 4.
9c - User selects end bulks scan (end flow)

From the user perspective, the success path would be 
1. Scan Books
2. Bulk Scan Books
3. Select Shelves
4. Scan Book
5. Confirm book
6. Confirm Scan next
(Repeat 4-6 as needed)

The user has three actions per book (scan, confirm, next) and avoids the 
additional step of selecting shelves on each scan (which would be a minimum of 
2 clicks and potentially more).

I think this gives a good balance between speed of scanning a lot of books 
while giving immediate feedback when there is a problem.  As someone who will 
be using this feature, what do you think of this flow?

Original comment by adam.jo...@gmail.com on 27 Sep 2010 at 3:35

GoogleCodeExporter commented 8 years ago
That is amazingly good.  Thank you for not only considering these requests, but 
clearly thinking them through so well.

Original comment by jdvy...@gmail.com on 27 Sep 2010 at 2:00

GoogleCodeExporter commented 8 years ago
R26 - completed first implementation of bulk scan.

Original comment by adam.jo...@gmail.com on 7 Oct 2010 at 5:23

GoogleCodeExporter commented 8 years ago
I don't know if you would like bug reports on this thread or as a new defect 
issue.  the first scan works correctly, but after finding the second book, when 
you select the located book, it force crashes the application. I am not sure 
what additional details would be of help, let me know. 

Original comment by jdvy...@gmail.com on 12 Oct 2010 at 10:45

GoogleCodeExporter commented 8 years ago
disregard. I scanned several books successfully after first few failed 
attempts. I'll open a new issue when I can figure out what set of circumstances 
causes any crashing.

Original comment by jdvy...@gmail.com on 12 Oct 2010 at 10:48

GoogleCodeExporter commented 8 years ago
I've seen it crash during scans if the orientation changes.  It isn't very 
repeatable, unfortunately.  Try to keep the device in the same orientation 
(portrait, landscape, landscape w/ keyboard open) to avoid a chance of a crash. 
 If it does crash, the books you've scanned so far are saved to your shelves as 
you go, so you shouldn't have to go back and re-scan.

Original comment by adam.jo...@gmail.com on 13 Oct 2010 at 2:42