Beer Scoresheet Utility

Australia & New Zealand Homebrewing Forum

Help Support Australia & New Zealand Homebrewing Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.

moonhead

Well-Known Member
Joined
6/11/14
Messages
231
Reaction score
73
G'Day AHBers

Wasn't sure where best to post this, here or in the "Electronics, Hardware & Software" forum. Given this utility will only be of interest to those of us doing the behind the scenes work running comps, I decided here was better. If wrong, let me know...

So, I've been developing a little utility for me to better manage organising scoresheets after a comp finishes. The current process I, and I'm sure many others, go through is to scan each sheet 1 at a time, then somehow link them back to the scores and entry details you've got on your computer, either by making sure they're scanned in the same order as you captured the scores, or by opening each scanned image and re-naming as appropriate.

This util hopes to make that easier for me, and I thought you all might find a use for it as well, in your own comp workflows.

How it works / benefits.

The first benefit is being able to use large scanners like you find in offices or officeworks or what not. Instead of scanning each sheet one at a time, you can just load them all up, and scan them all in at once. For me, that results in a single file, with a couple of hundred pages of scoresheets.

This is where the util comes in, it takes that file, and splits it into individual files, named as per the number on the scoresheet. That way, you'll have a file that (should) already match up to the scores you've captured during your comp.

The way it does this is by reading a barcode on each scoresheet. Which is where the second half of the utility comes in. It also provides a way to generate any number of pre-barcoded scoresheets, that you can use in your comp, then scan in later to be processed as mentioned before.


If this sounds like something you might have use for, give it a try, download it here - https://github.com/m00nh34d/Beer-Scoresheet-Utility



Just to illustrate my usage scenario for example.

Using a spreadsheet to capture all the scores for each entry as they come in on the day. When I would do here is include the scoresheet number in my spreadsheet as well. Not a huge amount of extra work there. But it does mean the scoresheets are pre-labeled and don't need to be organised once they've been entered. This means I can get 2 people entering scores at once, without worrying about scoresheets getting out of order or mixed up.

After the comp, we've announced the winners, and everyone is banging on the door desperate for their scoresheets, I take them all into work, and scan them at once. That alone saves me a couple of hours.

I grab my file of scoresheets and run it through my util (it will take about 45 mins to an hour to process them all, but that's fine, it can do that while I sit back and have a beer or 3). This give me a couple of hundred image files, all named as per the barcode and number on the scoresheet, I captured earlier.

From there, I do some spreadsheet and mail merge magic and send out everyone's scoresheets all at once.


Anyway, that's just my quick example use case. I'm sure everyone who's already got processes in place would be much better positioned to know if this could work for them.

Let me know if you find this useful, if you've got any constructive feedback, or find any bugs!
 
Nice, I'm not a comp organiser or anything, but I can se a slight improvement that can be made that, while costing an extra couple of $, would save more time.

When organising bottles pre-event, print out the amount of labels that you have judges for, for each bottle/entry.
The label will have the style etc in human readable and the barcode to stick to the top right of a bjcp score sheet.
The stewards would remove the labels from the bottle and take them to the judges with the beer, and they just stick them to the next score sheet.

I will have a better look at what you have there when I am back at work and see if I can see anything more.
 
To be quite direct in saying, BJCP should have a digital platform for judging, using actual paper in a digital world......
 
To be quite direct in saying, BJCP should have a digital platform for judging, using actual paper in a digital world......

I've floated the idea of "digital scoresheets" to a couple of judges in the past, I'm still suffering from the scars and trauma I received from them that day...

Joking aside, I can kinda understand the hesitation in moving to digital only scoresheets, it's hard enough to get good quality feedback on written scoresheets, I can only imagine how difficult it will be to get good feedback when people are face with typing it out on an iPad or something... Scores will be very accurate though!
 
Nice, I'm not a comp organiser or anything, but I can se a slight improvement that can be made that, while costing an extra couple of $, would save more time.

When organising bottles pre-event, print out the amount of labels that you have judges for, for each bottle/entry.
The label will have the style etc in human readable and the barcode to stick to the top right of a bjcp score sheet.
The stewards would remove the labels from the bottle and take them to the judges with the beer, and they just stick them to the next score sheet.

I will have a better look at what you have there when I am back at work and see if I can see anything more.

I like it, that could certainly work. We'd need to have a pre-compiled list of entries and the number of judges/scoresheets for each entry, but I don't imagine that will be an issue for most comps (and if it was, they probably wouldn't be looking to do something like this to begin with!).

Where would the time be saved here? The judges time, not writing out the entry details?
 
I like it, that could certainly work. We'd need to have a pre-compiled list of entries and the number of judges/scoresheets for each entry, but I don't imagine that will be an issue for most comps (and if it was, they probably wouldn't be looking to do something like this to begin with!).

Where would the time be saved here? The judges time, not writing out the entry details?

By reading your first post, you would have pre-printed score sheets with the appropriate entry info and barcode on them. is this correct?
If so, I can see a whole heap of places that they could get mixed up. it would also introduce extra time in making sure that the sheet matched the beer that was brought up... and what happens if a sheet is lost/destroyed/incorrectly filled out?

With the barcode sticker addition, you could send an untrained monkey to maniacally label each bottle (much as most comps do as I am led to believe), then you get your database up and barcode scanner (cheap as chips these days) and start assigning the barcode numbers (stuck on the bottle) to entries (database created by online form).
there is prob even an app that allows you to do this, so you just need an untrained 12y/o to compile the database (much as some comps to ... as I am led to believe).

Also, out of curiosity, what symbology did you use for the barcodes (in the industry)?
 
OK. So reading your Readme, you just create a butload of serialised scoresheets, and have someone assigning those scoresheets to the database after the beer has been scores?

Have you considered creating an auto-email feature? That would save another several man hours... but would put your computer under a little strain for a while
 
By reading your first post, you would have pre-printed score sheets with the appropriate entry info and barcode on them. is this correct?
If so, I can see a whole heap of places that they could get mixed up. it would also introduce extra time in making sure that the sheet matched the beer that was brought up... and what happens if a sheet is lost/destroyed/incorrectly filled out?

Not quite, like your second post, they're just serialised sheets, no relation between entries or judges, until they're filled out. So, doesn't really matter if sheets are lost before filling them out, or if they're mixed up before, and after, filling them out, we can always tie that sheet back to the scores we've captured on the day.

Also, out of curiosity, what symbology did you use for the barcodes (in the industry)?

Code 39 barcodes, using the free3of9 font (included in the installation). Nothing particularly special there, just needed something... Could have used a QR code, but I didn't, yeah.

OK. So reading your Readme, you just create a butload of serialised scoresheets, and have someone assigning those scoresheets to the database after the beer has been scores?

Have you considered creating an auto-email feature? That would save another several man hours... but would put your computer under a little strain for a while

So, yeah, a heap of scoresheets, the files are named as per the scoresheet number/barcode on each individual one. I would imagine the database of scores would actually be created on the day, when the scoresheets come back and someone tallies up the scores. Instead of capturing the entry number and scores, you'd also include the scoresheet number. At least that's how I'd run it...

I didn't include anything like emailing here, as that needs more external information, and it becomes a bit prescriptive in how things are run then. If you've already got something in place to collect your scores and email people, this will just automate a part of the process that might be manual now (for example, using Compmaster). If you're currently running your own scoring system in Excel or Google Sheets or something, then it would be fairly trivial to get a mail merge plugin to handle emailing the scoresheets as attachments to the entrants. (I was thinking of setting up a Spreadsheet to use with this, specifically for that purpose, but it isn't something I'll be using myself, so I didn't bother just yet...)
 
Code 39 barcodes, using the free3of9 font (included in the installation). Nothing particularly special there, just needed something... Could have used a QR code, but I didn't, yeah.

Cool. Code 39 is one of the only symbologies that actually work as fonts. Just make sure that the barcode isnt too squashed (common mistake #1) and that you leave enough 'quiet space' on either side (common mistake #2).
If you were going to incorporate a barcode generator, I would go Code 128 over Code 39, and Datamatrix over QR for 2D. they are more robust and lower density per character.


I guess you have thought about your program referencing the entrant database and naming the files for the entrants and style? eg: 'n_87_13_2.pdf'
 
Cool. Code 39 is one of the only symbologies that actually work as fonts. Just make sure that the barcode isnt too squashed (common mistake #1) and that you leave enough 'quiet space' on either side (common mistake #2).
If you were going to incorporate a barcode generator, I would go Code 128 over Code 39, and Datamatrix over QR for 2D. they are more robust and lower density per character.


I guess you have thought about your program referencing the entrant database and naming the files for the entrants and style? eg: 'n_87_13_2.pdf'

Yeah, barcode works, that had some pretty serious testing... Only reason Code 39 was chosen was the availability of a free font to distribute with the program. Density isn't a problem (in fact the opposite was almost a problem, with only 5 characters in use, the barcodes were incredibly small at first)

Hadn't really thought about naming the files like that, no. What would be the use for that? (it would be pretty easy to do, but would require a reference to an entrant database, which doesn't exist right now)
 
Yeah, barcode works, that had some pretty serious testing... Only reason Code 39 was chosen was the availability of a free font to distribute with the program. Density isn't a problem (in fact the opposite was almost a problem, with only 5 characters in use, the barcodes were incredibly small at first)

Hadn't really thought about naming the files like that, no. What would be the use for that? (it would be pretty easy to do, but would require a reference to an entrant database, which doesn't exist right now)

Simply to make it easier to send them out if you dont have an auto email like system in place. Also easier for the entrant to go through their feedback sheets in order.
 
Simply to make it easier to send them out if you dont have an auto email like system in place. Also easier for the entrant to go through their feedback sheets in order.

Hrmmm, makes perfect sense to me, I think the work required to put that into the program itself, for that alone, would be overkill... I'll add it to the back burner, probably to be included if/when there more connections needed to a proper database of the entries.

In the meantime, if you, or anyone else for that matter, want to achieve this, you could do the same thing very easily with a quick powershell command. Get a CSV file of your scoresheet names, and what you want them to be called, and run this from the folder they're stored in -

Code:
Import-Csv filenames.csv | ForEach-Object {Rename-Item -Path  ("{0}\{1}" -f($PWD).Path,$_.oldname) -NewName $_.newname}

CSV example -

Code:
oldname,newname
00458.jpg,entrant_44_entry_152_sheet1.jpg
00459.jpg,entrant_44_entry_152_sheet2.jpg
00460.jpg,entrant_32_entry_167_sheet1.jpg
00461.jpg,entrant_32_entry_167_sheet2.jpg
00462.jpg,entrant_44_entry_153_sheet1.jpg
 
That's cool, just a suggestion for 2.0
If you put some polish over it, and setup a crude gui, you could pitch it to bjcp as a product, maybe get some monies
 
That's cool, just a suggestion for 2.0
If you put some polish over it, and setup a crude gui, you could pitch it to bjcp as a product, maybe get some monies

Awwwwwww yeeeeeeeaah, make it rain!

Nah, not doing this for any other reason than I needed this for my use, I thought others might find it useful.
 

Latest posts

Back
Top