About ScoreKeeper

General Info

ScoreKeeper is a web-based system for updating and displaying results and rankings for billiard, darts and other sports. It was created in June 2010 by Hermund Årdalen and is constantly updated with new features.

The system is available free of charge. Send me an e-mail at webmaster@snooker.org if you'd like a copy.

Admin interface:

API

Please see api.snooker.org for the API. If you plan to collect data automatically please contact us so we can agree on what you should put in the header. E.g. "X-Requested-By": "PetersAndroidApp".

Help

For help with the administration interface see the help page.

Solutions

Version history

Jump to version 1.0.400

1.0.000 - 30.06.2010
- Initial

1.0.101 - 04.04.2013
- Added chat

1.0.102 - 03.06.2013
- Finalized money lists

1.0.103 - 05.06.2013
- British flags in World Games

1.0.104 - 11.06.2013
- Added Details URL box to Matches form

1.0.105 - 25.06.2013
- New Advance option: Continuous (first available)

1.0.106 - 02.07.2013
- Possible to add scheduled dates with day only

1.0.107 - 11.07.2013
- Added Round Info to Matches form

1.0.108 - 21.07.2013
- Changed order of column in Matches form

1.0.109 - 26.07.2013
- Moved bronze match below final and added num matches to Round info

1.0.110 - 01.08.2013
- Moving round info and advance boxes to the bottom after values are registered

1.0.111 - 03.08.2013
- Reintroduced event URLs in the right box

1.0.112 - 11.08.2013
- Displaying points and money for each round

1.0.113 - 14.08.2013
- Used distance in admin of matches (max values and javascript goodies)

1.0.114 - 17.08.2013
- Fixed sorting bugs in ranking lists and introduced version history

1.0.115 - 19.08.2013
- Lots of fixes to allow for easier upgrading of other sites

1.0.116 - 26.08.2013
- Introduced gobjMergeQualMatches, reintroduced bracket link from events and bugfixes

1.0.117 - 29.08.2013
- Displaying Asian Order of Merit in player pages

1.0.118 - 31.08.2013
- Get the new value in the event and player forms selected directly after submit

1.0.119 - 01.09.2013
- Set default season in an event form to current season.
- Rearranged elements in event form
- Added number of matches to results, live scores and upcoming
- Introduced AllRoundsAdded to reduce size of dropdown menu for rounds in the Matches form
- Matches form: Automatic fetch when an event is selected that uses only one round

1.0.120 - 03.09.2013
- Set match to completed (in handleMatches) when distance has been reached but unfinished box is checked

1.0.121 - 05.09.2013
- Added USE_FIRST_TO

1.0.122 - 08.09.2013
- Using AllRoundsAdded to reduce size of dropdown menu for rounds in the Advance box in the Matches form
- Added displayTrackingCode()
- Let an empty score count as zero if the other score is there
- Ignore scores if there's a walkover

1.0.123 - 09.09.2013
- Introduced gobjEventsWithFramesAsPoints, gobjEventsThatUseFrameDifference and gobjEventsUsingMainForTable

1.0.124 - 11.09.2013
- Introduced gobjMergeInDiary

1.0.125 - 13.09.2013
- Fixed link from event to matches when round 1 is not in use

1.0.126 - 14.09.2013
- Added ORDER_UPCOMING_BY_DATEONLY (when day comes before day and time)

1.0.127 - 15.09.2013
- Hide distance after first matches have finished
- Handle single and double quotes in roundinfo note
- Hide match rows when no event and round is selected

1.0.128 - 20.09.2013
- Highlight newcomers in provisional season-end money list
- Hide lots more on minimize
- The "Update rankings" box is automatically checked when a score is set to the distance or a walkover box is checked.

1.0.129 - 23.09.2013
- Fixed a bug in the updating of Live Scores.
- Only updating ranking lists affected by event (only update Order of Merit when event is PTC)

1.0.200 - 26.09.2013
- New Head2Head table replaces gobjHead2Heads
- getSeeding: Dropped gobjSeeding in favour of direct database lookup

1.0.201 - 28.09.2013
- Optimized updateValueNominations and now runs it only once

1.0.202 - 03.10.2013
- Limiting tweets to cases when match scores were changed
- Optimized getPlayerEventPoints to reduce time to generate the ranking lists in the presentation

1.0.203 - 07.10.2013
- Fixed a bug in getCutOffRestriction() that caused no points to be awarded in qualifying events

1.0.204 - 10.10.2013
- Changes time zone to CET after 27 Oct 2013
- New method: flush()

1.0.205 - 23.10.2013
- Better support for team events

1.0.206 - 10.11.2013
- Added "Players" and "Head 2 Head" to front menu
- Added player homepages
- Adjusted HTML and CSS on a number of pages in the presentation

1.0.207 - 30.11.2013
- Admin/Matches: Highlighting "init" link for overdue matches
- Admin/Matches: Design tweaks

1.0.208 - 01.12.2013
- Upcoming: Info when matches in a round are awaiting scheduling

1.0.209 - 12.12.2013
- Player: Display age

1.0.210 - 14.12.2013
- Display "Today"
- Drop modified date for matches that haven't started

1.0.211 - 15.12.2013
- Added page "Main Tour players"
- Introduced gobjDistanceExceptions

1.0.212 - 16.12.2013
- Added win percentage column to "Main Tour players"

1.0.213 - 01.01.2014
- Handling lookups for non-existent events
- Fixed age calculation (getAge)

1.0.214 - 02.01.2014
- Fixed bug in genLeagueTable (occurred when all matches just had the TBD player)

1.0.215 - 03.01.2014
- Used getAge() also in player profiles

1.0.216 - 12.01.2014
- Removed group events from Finals page
- gobjEventsThatUseDraws
- Added flags to round-robin tables
- Fixed fetchCurrentEvents() to exclude completed round-robin events

1.0.217 - 27.01.2014
- Added main events to event menus (genmenu())

1.0.218 - 22.02.2014
- Added gobjPlayerNames

1.0.219 - 25.02.2014
- Fixed sorting bug in match stats

1.0.220 - 26.02.2014
- Added gobjMainEvents and gobjEventSeedings

1.0.230 - 28.02.2014
- Major optimizations in a number of SQL queries in the presentation

1.0.240 - 01.03.2014
- Added genMatchData(), with gobjNumHead2Heads and general multi-dimensional gobjEventSeedings
- Dropped calls in fetchPlayer from ranking lists
- gobjEventWSIDs

1.0.241 - 02.03.2014
- Added getFinishedEvents()

1.0.242 - 15.03.2014
- Added customized searches (gobjCustomizedSearches)
- Added number of hits on searches

1.0.243 - 26.03.2014
- Added USE_WORLDSNOOKER

1.0.244 - 30.03.2014
- Replacing CURRENT_TIMEZONE with getTimeZone()

1.0.245 - 31.03.2014
- Fixed error in getCandidates() and improved performance

1.0.246 - 04.04.2014
- Added "[etq]" and "[atq]" to the qualified players in the prov end-of-season money list

1.0.247 - 06.04.2014
- Improved displayResults()
- Adjusting highlighting in ranking lists

1.0.248 - 02.05.2014
- Displaying sessions when match has started

1.0.300 - 03.05.2014
- Multi Admin

1.0.301 - 13.05.2014
- TEMPLATE_CUSTOMIZED
- Display last page when you request a page too far

1.0.302 - 17.05.2014
- More dimensions in gobjNewcomers
- Added average age to Main Tour players page

1.0.303 - 18.05.2014
- Bugfix etc while preparing for a new season

1.0.304 - 22.05.2014
- Season for teams

1.0.305 - 27.05.2014
- Fixed DateOnly

1.0.306 - 31.05.2014
- Various changes to the multi function

1.0.310 - 04.06.2014
- Rolldown menu on team members

1.0.311 - 07.06.2014
- Collapsable singles matches (admin and presentation)
- Bug fixes in use of Candidate table and more
- Defaults in Round Info
- Provisional end-of-season seedings and World Grand Prix rankings

1.0.312 - 09.06.2014
- Adjustments to collapsable team matches

1.0.313 - 11.06.2014
- gobjIncludeFlushed

1.0.314 - 19.06.2014
- Added table numbers and keyword replacement
- Bug fixes in various ranking lists

1.0.315 - 29.06.2014
- Fixed bug in calculation of gintNumUpdatedMatches

1.0.316 - 27.07.2014
- Context-based player suggestions in the Matches form

1.0.317 - 29.07.2014
- Constants for player statuses
- Initial work for Amateur Order of Merit

1.0.318 - 07.08.2014
- Support for handicaps

1.0.319 - 16.08.2014
- "About" page

1.0.320 - 09.09.2014
- Edited and launched page for historic seedings

1.0.321 - 24.09.2014
- Displaying group number in match lists

1.0.322 - 01.11.2014
- Admin log

1.0.323 - 09.11.2014
- Adjusting the minimized view for latter stages of events

1.0.324 - 11.11.2014
- Moved the admin log to separate page

1.0.325 - 20.11.2014
- Added Host and Active to admin log

1.0.330 - 22.11.2014
- Put in blocker for overwriting scores

1.0.331 - 18.12.2014
- Bulk insert of Scheduled date

1.0.332 - 23.12.2014
- Video links from matches

1.0.340 - 31.12.2014
- Optimized candidate calculation (updateMatchAdvancement)
- Prevent advancement to same round
- Display which rankings are being updated

1.0.341 - 12.01.2015
- Changed to icons in matches for "Live" and "Details"

1.0.342 - 14.01.2015
- Player photos
- Different video icons

1.0.343 - 22.01.2015
- Automatic checking of TV box for certain events

1.0.344 - 27.01.2015
- Finalized customized player suggestions in Matches form
- Automatically add player status of new players

1.0.350 - 01.02.2015
- Added dictionary objects for special handling of specific events and players
- Restructured settings (constants, variables and objects)

1.0.351 - 18.02.2015
- Added columns for updated, new and concluded in admin log

1.0.352 - 22.02.2015
- Bug fixes and adjustments to cater for new implementations of the solution

1.0.353 - 07.03.2015
- Introduced gobjEventsDisplayedInRankings (event columns in the various ranking lists)

1.0.354 - 11.03.2015
- More than one event can be shown in "Next" on front page

1.0.355 - 11.04.2015
- Introducing Application(APP_CLOSE_SITE) to close site during admin operations

1.0.360 - 20.04.2015
- Added fields for num competitors, plus upcoming, active and finished matches

1.0.370 - 29.04.2015
- Lots of options for handling high load, e.g. disabling pages of specific templates

1.0.371 - 01.05.2015
- Option to display highest seed first on pages for event, results and upcoming (&hf=on)

1.0.372 - 06.05.2015
- Caching player pages

1.0.373 - 06.05.2015
- Recalculating match counter in Event table when it doesn't match the actual number of matches

1.0.374 - 07.05.2015
- Option for updating candidates
- First draft of Competitors template

1.0.375 - 02.07.2015
- Introducing Order of Play page

1.0.376 - 08.07.2015
- Adding weekday name and timezone modifier to Order of Play page

1.0.377 - 17.07.2015
- First (internal) version of automatic adding of group matches

1.0.378 - 18.07.2015
- Many adaptions to support amateur events
- Other fixes and improvements

1.0.400 - 22.07.2015
- Improving and fixing candidates feature
- Init link on match number
- Other fixes and improvements

1.0.401 - 24.07.2015
- Restrict player suggestions in selected events to competitors in the qualifying events
- Automated function to insert group matches

1.0.402 - 25.07.2015
- Restrict player suggestions in men's/women's events to men/women

1.0.410 - 06.08.2015
- First version of API with three methods, for events, players and matches: api.snooker.org

1.0.411 - 07.08.2015
- Four more API methods and a menu of their profiles
- Extended the support for summer time dates in getTimeZone() until 2020

1.0.412 - 08.08.2015
- Added feature that prevents duplicate messages in the admin chat

1.0.413 - 11.08.2015
- Added feature that prevents duplicate players in the same round

1.0.414 - 27.08.2015
- Added AdminUser table to database

1.0.420 - 28.08.2015
- Using AdminUser for logging in

1.0.421 - 29.08.2015
- Introduced favicon and app icons with printIcons()
- Added current mode on admin page and reshuffled the menu a bit
- Introduced "On duty" feature

1.0.430 - 03.09.2015
- Introduced account management
- Using AdminUser table to decide who gets chat mails

1.0.431 - 09.09.2015
- gobjLimitedCoverage (WS doesn't provide live scoring and frame scores for all events)

1.0.432 - 13.09.2015
- Modal window for extended info on matches

1.0.433 - 18.09.2015
- Adapt to iPhone

1.0.434 - 19.09.2015
- Added defending champion and previous edition to the events

1.0.500 - 08.11.2015
- Using static HTML for the most visited pages

1.0.600 - 29.11.2015
- Using info from the admin log to generate static HTML pages as seldom as possible

1.0.601 - 30.03.2016
- Added an API to the development version

1.0.602 - 19.04.2016
- Stats links from matches

1.0.603 - 10.05.2016
- The API interface now supports ranking lists

1.0.604 - 12.05.2016
- Moved signing on/off up to the main menu

1.0.605 - 21.05.2016
- API: Added status argument to Players method

1.0.606 - 22.05.2016
- Introducing variables for frontend, backend and maintenance domains, and used them in cross-linking

1.0.607 - 29.05.2016
- Including overdue matches in "Minimized" mode
- Option in admin profile page for receiving e-mails about sign-ons and sign-offs.
- A number of fixes and modifications since last version

1.0.608 - 01.06.2016
- Rearranged boxes in the Matches form and hid a few too

1.0.609 - 04.06.2016
- Introducing the dynamic argument to be able to avoid caching

1.0.610 - 08.10.2016
- Added start number to Events form
- Added "Held over" box to Matches form
- Now showing error message if a match is started without an ID

1.0.611 - 15.03.2017
- Added link to update static pages from Event and Matches form

1.0.612 - 25.04.2017
- Better support for match sessions with specific table and new format in Sessions box

1.0.613 - 22.07.2017
- Added special player for unknown wildcards