Chess Club Ratings Manager v1.1

released March 18, 2007

please read the open source license agreement before downloading

DOWNLOAD ZIP (.zip file)
DOWNLOAD RAR (.rar file)

you can see what it looks like by viewing the one I set up for my club

Overview

For club administrators, keeping track of your club ladder can be a daunting task, but I have created a free (open source) ratings manager that does all the calculations for you. It is completely web-based so you can access it off your browser. Administrators may submit results by entering them into a form and everything else is done for you. If you make an error, you may view a list of all games and make corrections. Then all the ratings of each subsequent game will then be recomputed. Anyone can then view the club ladder or a list of all members sorted by their ratings. The software is completely free and if you are a programmer, feel free to dive into the code and customize it to your needs. And be sure to read the license agreement.

Useful Information

This is a java servlet that requires an apache tomcat server to run it on. If you plan to host your web site, make sure you get support for jsp or else the servlet will not work. I developed this project with NetBeans that has an integrated tomcat server that gets launched automatically any time you run the project. When you finish customizing it and you are ready to publish your club ratings, simply copy the entire WEB-INF directory to the public area of your webserver. You will have to manually create a mysql database and link to it from the DB.java file. Here is a link to a template for what the database file should look like. To password protect the password file, you must create a plain text file in this format. UtilityFunctions class defines the global variable that stores the path to your password file. The servlet itself uses basic authentication and the password file is not encrypted so security is not bulletproof, but will keep most people out of your admin area. There are several lines of code that you must configure before running ClubRatings so go through the lines that have CHANGEME comments next to them and make sure they are correctly set up for your server. Also note that RatingChart.java is completely empty and that's because I did not have enough time to actually implement a rating performance draw tool. Maybe someday I'll get around to implementing it...

I wish we had a more streamlined way of setting up this servlet, but unfortunately web development is usually accompanied with problems and confusion. I do not have a full support team, but I am willing to answer questions to the best of my ability so feel free to contact my email ztoly@hotmail.com. I currently have the servlet running successfully on my lunarpages host so if you are having trouble setting it up, at least you know it's possible :)

License Agreement

By downloading and using the software, you agree to be bound by all the terms and conditions of this license agreement. This agreement is a license agreement between you and the "Author" for the use of the computer software you have downloaded (the "Software").

Site license This license entitles an unlimited number of developers in your organization to write software which accesses this component.

Our components can be distributed with your application on a royalty-free basis. However, if you are considering marketing the sofware, I may be willing to negotiate a deal.

Our components may be used on any server.

Our components may be installed on any third party hosting server.

You are not allowed to sell our components or your license key to other people unless the author has agreed to receive royalties based on profits.

This license is not a sale. Title and copyrights to the Software, accompanying Documentation and any copy made by you remain with the Author. Unauthorized copying of the Software or the accompanying Documentation or failure to comply with the above restrictions, will result in automatic termination of this license.

The Software may be embedded in any application or system developed by you or your organization and distributed without restriction.

The software may also be distributed alongside your application. No royalties are payable for redistribution of the software.

You may not remove, or alter the copyright notice at the bottom of every page without the consent of the Author. Style changes are allowed to fit the theme and color scheme of your page.

You may not rent, lease, sub-license or transfer your rights under this license without the prior written consent of the Author.

THE AUTHOR DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED OR ERROR-FREE.

IN NO EVENT WILL THE AUTHOR BE LIABLE FOR ANY DAMAGES, INCLUDING LOSS OF DATA, LOST PROFITS, COST OF COVER OR OTHER SPECIAL, INCIDENTAL, CONSEQUENTIAL OR INDIRECT DAMAGES ARISING FROM THE USE OF THE SOFTWARE OR ACCOMPANYING DOCUMENTATION, HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY. THIS LIMITATION WILL APPLY EVEN IF COMPANY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. YOU ACKNOWLEDGE THAT THE LICENSE FEE REFLECTS THIS ALLOCATION OF RISK.

This agreement is the entire agreement between you and the Author, and supersedes any other communication or advertising with respect to the Software. If any provision of this Agreement is held invalid, the remainder of this Agreement shall continue in full force and effect.



Here is an outline of the functionality:

1. title page
• gives the user the option to view rating rankings
• view ladder rankings
• allow admin to add/edit/delete players
• allow admin to enter game results and update rankings after a game is played
• allow admin to correct erroneous game results

2. view rating rankings
• displays all players with their respective rating, sorted in rating order descending
• all player names are links to their profile
• # of games the person has played
• active player or inactive (played within the last month or not)

3. player profile
• display rank #, rating, total record of W/L, total # of games played
• show highest/lowest non-provisional rating ever achieved and the date
• a history of all games played including before/after rating, opponent name, opponent rating

4. view ladder rankings
• displays all players with their respective rating, sorted according to ladder rank
• all player names are links to their profile
• # of games the person has played
• active player or inactive (played within the last month or not)

5. add/edit/delete players
• user prompted for admin password and the password is remembered so that the admin doesn't have to log in again for the duration of the session
• displays all player names sorted alphabetically
• check boxes next to the name to delete players
• delete player button that deactivates all checked players
• deleted players can be re-activated
• form for player name, email, and existing rating if player already has a uscf rating
• add player submit button

6. user profile
• displays first, last name, rating, and email address
• history of all games played

7. enter game results
• admissible by an admin only
• form that displays pull down menus of both player names and game result
• submit button that executes the changes and updates database
• after submitting, the uscf algorithm is used to change player ratings
• after submitting, the code checks to see if the game is eligible to change player ladder rankings
• if the player is within two spaces of his/her opponent, then that player gets inserted just ahead of the opponent that lost
• the history log of all games is updated

8. correcting results
• the game log is displayed in a radio button list in chronological order
• the user selects a game result that needs to be changed and pushes the submit button
• the button takes the user to the change game result page
• both players and game result are displayed in pull down menus
• after the user hits submit, the results of that game are changed and the ratings of the players of all subsequent games played will be updated if their rating would be altered because of the correction made
• player's highest/lowest rating will be updated if needed