Use it on my server
Preferred usage, always the latest version and support:
If you don't have access to a server or the time/knowledge to install Juryboard, I'm happy to install it for your regatta on http://YOURREGATTA.juryboard.org (you can decide what 'YOURREGATTA' is.)
If you want to use it, send me an email to
it's free and doesn't take long to set up.
2014-November-5: many improvements and slightly more modern looking frontend:
▹ Twitter integration when on juryboard server, on this test service, a script error gets shown when twitter is on, as would when used on any other service, that does ONLY affect the publishing on twitter, not any other functionality,
▹ Language support, when used at national events, you can select the language for the frontend - more languages to come soon (the Jury backend stays english onl for now),
▹ Power of frontend language is with user - you can set a default language in the backend, but the user in the frontend can set his language and override the default
▹ The order for the listig of hearings now can be selected to be newest top or bottom (top for screen and bottom for printing),
▹ For protests you can choose to show only protest times or schedule, so you can print them out seperately,
▹ The Styles are adjusted so the frontend works better on mobile devices,
▹ The Styles are adjusted the printouts are better readable.
▹ several other small improvements in usability and speed
2014-June-4: Major improvements after being used at major events over the southern hemisphere summer with input by several judges:
▹ Event logo and sponsors are now stored in only one shared folder, not several times for back and frontend,
▹ autocomplete on the backend for judges names, not everybody in, and make sure the status (NJ/IJ) is correct, but around 100 ar on the list already,
▹ On the admin page to enter judges, you can now also select how they are displayed on the public pages: full namem initials, ISAF ID or not at all
▹ autocomplete from entry list also for the protest schedule,
▹ when a protest is entered in the schedule, you can print a cover page for filing the protest, it will include Race no etc. already and has useful fields to fill, like time filed, signature fo scorer etc.
▹ the list of possible penalties for rule 42 penalties is greatly reduced and combines some options (like Postponement, General Recall and Abandonment), which should make selecting the right option faster.
2013-November-14: Major improvements, thanks to Doug Elder and Jan Stage for good ideas:
▹ Minor adjustments to the Timezones,
▹ Free text header for the haring schedule, so you can have 'No protests received' or whatever suits.
▹ Classes are now only used for Rule 42 penalties, for protest times, there is a new list of 'fleets', this way you can have just one class but protest times for fleets (yellow, blue...) or also several classes which start together listed with one protest time.
▹ Entering classes and fleets is a lot easier and faster now, there is no 'confirmed' page anymore, it is just saved and you can enter the next one.
▹ Probably the biggest improvement in usability: When entering a new Rule 42 penalty, there is an autocomplete field, if you have the entry list in the system, you can just type part of the sail number and select the boat from the reduced list; the old way of entering is still there, so if the entry list is not in the system it still works like before.
▹ Due to the changed possibilities for the entry list, the entry list now has to be a comma separated list (if you enter the entry list into the system).
▹ On the hearing schedule, the list of judges now always is a dropdown list, so it is easier to add or change judges after a hearing is entered into the system.
▹ The protest times are now just listed under each other (it was a two column list before), while it takes more space, it seems to be a lot easier and faster to find a fleet and the timelimit this way.
▹ The 'Hearing schedule' was changed to 'Protests', the page also holds protest times etc. so just 'hearing schedule' was not appropriate. Also on the jury-backend a lot of wordings were changed and made more consistent, so it should be easier to use by new users.
2013-August-29: changed DNF to RET.
I had overlooked that a retirement for a 2nd penalty was listed as DNF, not RET as it should have been. Fixed now (Thanks Andrus Poksi).
2013-August-25: fixed some bugs.
Beside some smaller issues, there was a problem with one file on servers with strict error handling, this is fixed now (thanks to Böröcz Bence for reporting).
2013-June-6: Working with the latest Rule 42 Interpretations now (R42intMay13-)
also the way the Penalties get computed and listed changed, so that in future additional rules or interpretations only have to be deployed in the interpretations file and get added on each page automatically, but that has no visual effect.
2013-June-2: Minor Bugfix
On iOS the buttons used to change layout when clicked - this is fixed now.
2013-May-30: Some minor improvements, clearer table headings with less abbreviations.
The backend folder 'rrs42' is renamed to 'jury' as it's also for the hearing schedule. But you can actually name it to whatever you like.
2013-Apr-15: Changed the penalty definitions according to the 2013-2016 Rules, changed 'Protest Hearing Schedule' to 'Hearing Schedule' to be more specific (as it will contain redress hearings for example). Some minor improvements.
2012-Jul-13: New feature to add a link to the logo on the top right, so you can link to the event website.
2012-Jul-08: Fixed some bugs, including one were the protest schedule data or classes data was lost if a certain page was opened.
Protest time limits are now shown for each class entered, so multi-classes regattas can properly use the protes time limit feature.
2012-Mar-29: Fixed a potentially serious bug with special characters, especially single quotes and double quotes.
Re-designed the hearing schedule list, you can now filter by panel so that only one panel gets shown, helpful if you want to separate the protests by racing areas or venues.
You can name the Panel any way you want.
The Protest Time Limit only gets displayed now, when you have entered a time for the protest time limit.
A few small improvements and bug fixes.
2012-Mar-21: Fixed some bugs (thanks Ana and some others).
The download now only includes the bare system, ready to install.
2012-Mar-20: I registered http://juryboard.org to host the system for anybody who wants to use it.
2012-Feb-19: On the 42 penaltylist there is now a statistic about the legs where penalties were given, many small improvements.
2011-Oct-10: Major update, added protest schedule listing, many small bug fixes.
2011-Sep-10: Added recording of time, not mandatory but might be useful is some situations.
2011-Sep-02: Many small changes to the source code which prevented the system to run under some standard installations before, notably WAMP on windows.
2011-Aug-15: Fixed a bug where the test if a boat is in the entry list failed in Internet Explorer 9.
2011-Aug-05: Added the possibility to Edit the list of entries the same way as entering Classes, this does not work reliable with very big entry lists (over about 800 entries) but works fine with "normal" amounts of entries.
2011-Jul-24: Fixed warning messages on the penaltylist page. When a Judge is not on the Judges list, but referred to in a penalty, the ID will not be displayed on the list.
Online Rule 42 and Protest Schedule System
Please note: I made several major improvements to the system since the european summer 2014. Some of these, like the Twitter integration, only work on the juryboard server.
For most events it will be easiest to get an install on the juryboard server, normally this can be done within hours of sending me an email with the request.
If you want to use the system on your own server, you can still do that, to get the latest version (newer than the one offered for download here), just send an email to email@example.com
If you don't know what Rule 42 or Appendix P means, you are probably wrong on this page ;-)
This system is a web-based system to enter and keep track of Rule 42 penalties and protest hearings. It allows each judge to enter her/his penalties directly into the system and publish the list on the web for competitors to see.
While the main goal was to make the information available online, so that competitors can check it without having to be at the physical noticeboard at the venue, it also produces printouts to be put on the noticeboard at the venue.
The public online hearing schedule is set up so that the browser reloads the page every 5 minutes, so that a monitor at the notice board stays up to date.
You can also highlight hearings, for example to draw attention to the next one coming up.
You can either ask me (firstname.lastname@example.org) to set it up on juryboard.org, as a lot of other events do, or download it here and install it on your own PHP-capable webserver. There is no database required.
You can also run it locally on your computer with programs like WAMP (for Windows), MAMP (for Mac) or LAMP (for Linux) - all called *AMP, they are all free and very easy to set up.
If you want to run it on a webserver, so that people can see the information on the web, you need FTP access to the server and a FTP program. If you have a website, you will probably know how that works.
Download the latest version and unzip it. You end up with a folder 'juryboard-*date*', where *date* is the versions build date. It contains several folders and two files called 'index.php' and 'index-end.php'. Rename the folder 'juryboard-*date*' to something useful e.g. regatta name and year, the name is up to you and should only help you to keep it organized, you should avoid spaces and special characters though.
Upload the folder to the webserver, or if you run it locally on a *AMP, put the folder into the 'htdocs' folder within *AMP.
That's it and it works now, you only have to set up the details now.
Go with your Browser to WEBADRESS/YOURFOLDERNAME/jury (WEBADRESS is the address of the site you put it on, or the address *AMP is starting up with minus the *AMP part, usually something like 'http://localhost:8888/'; YOURFOLDERNAME is the name you gave the 'juryboard' folder) you should see a page with 'Startpage for Jury Noticeboard' header and a list of links
Go to Global Settings first and set the Regatta details, name, link to event page and time zone are the ones you want to set first.
After you did that, go to 'Jury Admin Home' and then to 'Protests', scroll down to 'Make This List Public' and click on it, then go to 'List Rule 42 Penalties' and click on 'Make this list Public'; now the public side of the system is ready.
If ou go to WEBADRESS/YOURFOLDERNAME now (the public part of the system) you see the links 'Rule 42 Penalties' and 'Protests' and if you click one, you see the still empty lists available to the competitors.
Setup for Regatta
To finish setting it up for a regatta you have to do some small things within the folders (you have to use your FTP program for that).
Logo & sponsors:
In standard install, you have an image on the top right: 'Event Logo' that should be replaced by your regatta or club logo.
In the main folder, here are four folders: jury (the backend), 42penalties (the public penalty list) hearingschedule (the public Protest schedule) and shared (contents needed for all pages). In shared there is a folder 'images' and within this you will find the folders 'logos' and 'sponsors'
Every image you put in logos will be displayed on the top right of the pages, beside each other if you put more than one.
Every image you put in sponsors will be displayed on the bottom of the pages, beside each other if you put more than one.
If you have the system running on a public webserver, I strongly advise to password protect the backend (that is the jury folder). If you run it locally on *AMP and do not publish it on the Web, you do not need to do that.
For that you have to log on to your Webhoster (with your browser), were you can access the basic settings for your web account. In the basic settings (often called Web manager or similar) you have the option to 'password protect directories'.
Click that option and on the next page when asked to select the directory to protect, navigate to the 'jury' folder. Once this folder is selected, select a username and password and protect the folder, from now on when you want to access the backend with going to
WEBADRESS/YOURFOLDERNAME/jury you will be asked for username and password.
You now only have to work with the browser in the system.
Go to WEBADRESS/YOURFOLDERNAME/jury and click on 'Global Settings'
Ideally you enter something for each option on this page, that is:
Logos & Title:
Under Logos & Title there is a text field, enter the Regatta name and Click save, This title is now displayed on top of all pages.
The next field sets the link to the events website, it will be used when you click on the logo.
This only works if the system is hosted on juryboard.org, if it is and Twitter is selected, each change to the public pages (not the backend) will be tweeted.
A good way to push information to sailors if they use Twitter and follow @juryboard.
The backend language is always english, but for local events you can set the default language (im looking for more translations, if you can help, please let me know).
The user on the frontend can also use his preference. Of course that will only change headlines etc. all other text is in the language you enter it.
Enter the Classes at the Event, they have to be Exactly the same you will use for the entry list, otherwise the autocomplete filling of boats will not work.
Fleets for Protest Time Limits:
In case not every class has exactly one protest time limit, e.g. different fleets per class might have different protest time limits, or many classes get started together as a fleet and have one protest time limit.
There is the option to just copy all classes from the classes page, so you don't have to re-type everything. All fleets get listed on the protest page with their protest time limit.
Enter the judges for the event. Many judges who used the system before are already in the system and can be looked up with the autocomplete system.
It is very important to enter the judges ISAF ID (you can go to the ISAF site to look for an official and then go to her/his details to see the ID). If the Judge does not have one, you can make one up from Country Code, Initials and additional letters.
The system uses the ID to identify Judges within the system, so if you do not enter an ID, the judge will not show up on any penalty lists etc.
You can also select how the judges are displayed on the public pages, ISAF ID (good balance of distinct but not obvious to outsiders), initials or full name, also 'none' but it is not advised to hide the person who gave the penalty. Entry list:
You can see and edit the entry list here. You could also enter the entry list here, but that might be painfully slow, further down this page I explain how to prepare the entry list from a file.
The entry list is not mandatory, but both for entering penalties and entering protests, it offers you to check if the Boat is on the entry list, which might be very helpful.
A word of warning, with very big entry lists (somewhere above 500, depending on internet speed) the list sometimes gets cut and shortened when saved. So if you have very large entry lists and you do not run the system locally, better do not use the browser to edit the entry list.
On the top of most pages there is a 'last changed' entry, the time there is set automatically, but to make sense to the users, you should set the timezone to the one of the regatta.
In the pulldown menue most Timezones are listed, but not all Towns (e.g. there is Paris, but not Berlin, Rome etc.). The system (server) will know Daylight savings etc.
The list is by hours west to east from UTC, starting with Niue in the Pacific at the top and ending with Kiritimati in the Pacific at the bottom. So for example all the Americas are further up, while Asia further down.
Preparing the entry list
If you have an entry list (excel or any other form), with some minimal computer skills, you can produce an entry list ready to upload into the system.
The entry list is in /jury/AllEntriesFile.php and this is a text file, so you can safely open it with notepad, TextEdit or any other text editor (NOT a word processor like Word etc.!).
The Entry list is in the form:
<? $AllEntries = array ( 'Finn,NOR,1','Finn,HKG,7','Finn,MAS,7' ); ?>So with search and replace you can reduce the entry list you've got to something like this: Classname, Countrycode and sailnumber, with commas and no spaces between them. Each Entry is in single quotation and they are all again comma-separated - you can have a line break after each comma, that makes it easier to read.
Once you have that list, you can copy and paste it in between the brackets in the AllEntriesFile.php like you see above.
The System might later - depending of you edit the entry list in any way - re-format the list to something like this:
<? $AllEntries = array ( 1 => 'Finn,NOR,1', 2 => 'Finn,HKG,7', 3 => 'Finn,MAS,7' ); ?>Both ways work in the system.
Each time you save a new entry, the system writes a backup into the rss42/data/backup folder, with the original filename and a time when it was saved. So if the system got a major failure (didn't experienced one yet, but you never know), you can always go back one stap 'by hand', that is taking a file out of the backup and replacing the one in rss42/data/ with it.
Using the system
Some fields have light gray information displayed, that is just an example of the data to be entered, not actual data (example: time for Rule 42 penalty).
As more than one person can enter penalties at the same time.
Go to WEBADRESS/YOURFOLDERNAME/jury, log in and click on 'enter new penalty':
Only the basic fields are mandatory - but you should always try to fill out most fields.
- Enter the date - today's date is already pre-filled; enter time - suggested is the actual time when filling.
- Select the two judges from the pulldown menue
- If the entry list is entered, start entering something from the Boat ID, e.g. National Code or Sailnumber, and the system will offer you choices from the entyr list, you can then select one and take that data over into the penalty info.
- If the boat was not in the entry list, select the CLass from the pulldown, enter the country code (either lower or upper case, it will automatically change to upper case) and Sailnumber. If the boat was not in the entry list of the system, you can add it here.
- Enter Race Number, Leg Number and Leg Type
- Select Rule and interpretation, if you hover (mose over, tab on iOS) over a rule or interpretation, the complete wording shows up. Only Interpretations which can be broken are listed.
- Under Remark/Observation, you can write what exactly you saw on the water, e.g. 'rapid upper body movement to flick the leech of the sail'
- Click 'Next step'
- If the boat got no penalty yet, only the just entered penalty will show, if it already got a penalty, there is a warning about that in red and the older penalties are shown as well.
At the bottom af the page you can select the appropriate outcome of the penalty.
- When you selected the penalty, you can either save the penalty or go back to the first page to change the entry.
- When you save it, it is written into the list of penalties. Do not reload this page or use the back button in the Browser on this page, as that would write the same penalty a second time into the system.
- If you use the 'enter another penalty' button, you will get the first page again, but pre-filled with some essential data, e.g. the same judges and class.
- If after entering and saving you go to the penaltylist, you will see the complete penaltylist of the event. If you want to change an entry, you can click on the Blue line with the sailnumber and edit all penalty data for that boat. There is a max of 5 penalties per boat, but I hope that never get's reached.
You can change the order the penalties where given and unccheck the 'penalty given' checkbox if you want to remove the penalty for any reason.
- On the bottom of the penalty list are some statistics, these do not get printed, if you print this page, neither are they on the public list.
- If you want to publish the list on the web by clicking 'Make this list public'.
- Go to 'Protests', this is basically the only page.
- You can enter the time limits - all fleets defined in the GLobal Settings are listed - the ones without a time limit set will not be published or printed
- You can check Boats against the entry list.
- You can set a header for the hearing schedule, for example: 'No protests received by the end of protest time on 14.11.'
- There has to be a protest # (which can be any letter or number, just not empty) - if there is no number the protest does not get saved, or it will be deleted from the list.
- Most fields should be self-explanatory.
- Under Scheduled, there is a field 'Posted' this does not get published or printed and is for 'office' use only, to make sure you can check when a protest was entered into the system, of course it is only as accurate as it is entered.
- The list of judges for the panel does not get published, it is just for organizational purposes.
- At the end of each row there is a checkbox 'Mark' if checked, the online version (both backend and public) will show this row with a yellow background and slightly bigger text. You can use that feature to highlight the next protest coming up (alert parties), or if you change the schedule (because another protest before took longer than expected).
- Also in the last column there is an icon like a book, if you click on that you get a page for printing this protest details as a cover page for filing the protest papers, including tickboxes for the scorer etc.
If you use a web-statistics program (like Piwik, or Google analytics), the code for that would go into the html-end.php file (it gets automatically set into all pages).
A note on Printing
Unfortunately different browsers have different ways of printing webpages and the results are not always satisfactory. If you run into problems (most common: not the whole list gets printed), it sometimes helps to save it as a pdf file first, and print this file.
If you use the system, I would be grateful for feedback and any suggestions to improve it.