Operations and Administration - Bible Quiz Fellowship

newshumansvilleData Management

Dec 16, 2012 (4 years and 8 months ago)

134 views

jSKone
Operations and Administration
Duncan Macklin
December 2006
V2.0 October 2007
Licensing and rights
jSKone was written by Duncan Macklin in March 2006. jSKone may be used free of charge for any

Bible quizzing activity. jSKone is made available on an as-is basis. No warranties are expressed

or implied. Duncan Macklin can not be held liable for any consequences occurring from the use of

this software. Duncan Macklin retains all other rights not expressly granted above.
Acknowledgments
Many thanks to Andrew Johnson, Jim Lumpkin, Joel Marks and Drew Williams for their knowledge

and input of Bible Quiz Fellowship quizzing and scoring. Also to God's Mountain and Midland

Ministries for beta testing during 2006 summer camps.
Overview
jSKone is a score keeper program for Bible Quizzing. jSKone can be used to keep

score for a tournament, regular season, summer camp or even a coach's personal

record keeping. jSKone has two main components: jSKone Admin and jSKone

Client. jSKone Admin and jSKone client depend on a Postgres database which

can be installed on the same machine as jSKone for single user processing or on

a separate database server for tournaments and league processing.
jSKone Requirements
Java Runtime Environment 5.0 (1.5) available at
www.java.com/getjava.
PostgreSQL 8.2 available at
www.postgresql.org
Installing Postgres
Postgres has very good documentation for installation available at

http://pginstaller.projects.postgresql.org/. Postgres should be installed on a

computer dedicated solely as the “database server”. The database server should

have a fixed IP address, or jSKone clients should connect to the database using

the database server's hostname. Generally, follow the installation defaults except

as noted below. Be sure to leave the 'Superuser name' as 'postgres' and make

note of the password you assign. The password will be needed when creating a

jSKone database.
On the 'Initialise database cluster' page of the installer, check the 'Accept

connections on all addresses...' option.
Postgres must be configured to allow jSKone clients to access the database.

Postgres security is established in two parts. Part one is client authentication.

Clients are verified by their IP address specified in the pg_hba.conf file. Part two

is the database user and password.
Client authentication is described in the Postgres documentation at

http://www.postgresql.org/docs/8.2/static/client-authentication.html
. Postgres

configuration can be accessed through Start->PostgreSQL 8.2->pgAdminIII.
Under the File menu select 'open pg_hba.conf...' option. The default file location

is “C:\Program Files\PostgreSQL\8.2\data\pg_hba.conf”. Double click the blank

line at the bottom of the list to open the 'Client Access Configuration' dialog. The

following example allows any IP address to connect to the database server:
Creating a jSKone database
Execute pgsql_database.bat from the explorer window. This .bat file will run psql

from the default install location and execute the pgsql_database.sql script from

the same path as pgsql_database.bat file. The script is configured to create the

default jSKone database – jskdb1. Enter the password for the default postgres

administrator when the password prompt appears. The script also creates two

default userids for the database [db name]adm to do jSKone administration and

[db name]usr to do jSKone Client. The default password for these two users is

'password'.
To create additional databases for alternate leagues or championship quizzes, edit

the pgsql_database.sql script and change 'jskdb1' on the first line of the script file

to the new database name. Save the file and execute pgsql_database.bat from

the explorer window.
Additional database users can be setup and must be given access to the

appropriate database tables. A single database user account can be used by

more than one jSKone clients at the same time. It is not necessary to establish a

separate database user account for each user. It is advisable to have separate

user accounts for separate databases to reduce chances of accidentally logging

into the wrong database.
Use pgAdmin III (Start->PostgreSQL 8.2->pgAdmin III) to create database users

(Login Role in Postgres). Double-click the database server under the Servers icon

in the Object Browser pane. Enter the 'postgres' user's password when

prompted. Right-click on 'Login Roles' and select 'New Login Role...' Enter the

name for the new user. Select the 'Inherits rights from parent roles' option. The

user id designated for jSKone administration must be a member of the [database

name]admins (eg: jskdb1admins). User ids designated for score keepers must

be members of the [database name]scorekeepers role (eg: jskdb1scorekeepers).

It is critical in multiple database environments that the users are assigned roles

for the appropriate database.
Installing jSKone Admin
jSKone admin can be installed on the database server, or on another machine

with network connectivity to the database server. jSKone admin is used to enter

quizzers, quiz sites, quiz masters and for general reporting.
Copy the 'skAdmin' directory to the computer where it will be installed.
Using jSKone Admin
Run jSKone Admin by double clicking on the “jSK Admin.jar” found in the

directory where it was installed. Enter the appropriate values in the 'jSkone

Settings' dialog:
jSkone Admin Dialog
Installing jSKone Client
jSKone Client can be installed on the database server, or on another machine

with network connectivity to the database server. JSKone Client is used to keep

score during a quiz.
Copy the 'skClient' directory to the computer where it will be installed.
Using jSKone Client
Run jSKone Client by double clicking on the “jSK Client.jar” found in the directory

where it was installed. Enter the appropriate values in the 'jSkone Settings'

dialog:
The 'New Quiz' dialog:
Fill in the values, select teams and click 'Start Quiz' to start a new quiz. Click the

'Open' button to open a previously scheduled quiz. Quiz name is not case

sensitive (i.e. 'Cat' is the same as 'cAT'). The 'Open Quiz' dialog appears when

the 'Open' button is clicked.
JSKone Client Dialog
Backing up a Postgres database
An appropriate backup schedule should be established to ensure safe keeping of

the data. Chapter 23 in the PgAdmin III utility describes the available methods of

backup and restore.
Version 2.0 Summary
This is a summary of jSKone 2.0 enhancements:

Quiz names are no longer case sensitive

jSKone now uses the settings stored in the database 'config' table if it has

been created using the jSKone admin. If the 'config' table has not been

created or if the DB User doesn't have privilege to the 'config' table, jSKone

Admin and jSKone Client use BQF standards as defaults, (5 active seats per

team, 5 questions for quizout, 3 errors for error out, 5
th
person answering

bonus).

The 'settings' menu option in jSKone Admin allows administration of the

scoring parameters. If the database was created from a version 1.0 script and

the 'config' table doesn't exist, then jSKone Admin will offer to create a 'config'

table on the fly. The following prompt asks permission to create the new

'config' table. (note: if different userids are used to connect jSKone Client and

jSKone Admin, then 'table access' privileges to the 'config' table must be

granted to each of the additional users.)

The settings menu allows changes to scoring parameters for league variations.

jSKone Client defaults to 'Load configuration from database' when connecting

to the database. If the 'Load configuration from database' option is manually

unchecked, the scoring configuration from this dialog is in effect until the

jSKone Client is restarted.

Reporting features have been extended and may be sorted by any combination

of columns. Double click any column header to select major sort key, single

click any additional column headers as secondary sort sequences.

Column positions may be altered by dragging column headings left or right.

Reporting may be done by date range. Date Range reports have a comment in

the bottom status line stating, “This report is date filtered”.

Team reporting has been extended.

The Quizzes tab displays a list of quizzes and the status of each quiz

Double-clicking a quiz shows the following dialog at the time the quiz was

clicked. This dialog shows each team in the quiz with current score and

current overtime score (if applicable).


Coaches sign-off feature. When setting the status to Complete, there is an

additional option for signoff. In the signoff mode, the timeout button for each

team becomes a red octagon to indicate that a coach needs to review the

score. After each coach reviews the score, the red octagon may be clicked and

changed into a green checkmark. The green checkmark indicates that a coach

has agreed to the ending score. A quiz with all three coaches signed off is set

to a “signed off” status. If all three coaches fail to signoff, the quiz is simply

set to a “Complete” status. A quiz in the signoff status can not be altered. If

adjustments need to be made, the status of the quiz must be changed to an

active period.
Technical Jargon
jSKone is a Java based client application which uses JDBC to communicate to a

Postgres database. Postgres is a BSD licensed RDBMS available at

www.postgresql.org
and distributed on the jSKone media under the BSD license.

jSKone requires Java Runtime 5.0 which may already be installed on the

computer or may be downloaded and installed from
www.java.com/getjava.
Postgres may be configured for performance or reliability. It is always

recommended to configure Postgres for reliability even with UPS and other

hardware fail over solutions. Postgres default implementation is for

reliability.(See Write-Ahead-Logging (WAL) and fsync topics in Postgres

documentation).
One of its many features is the displaying of seats in a quiz instead of quizzers,

which keeps a better view of quizzers. It's designed to be user friendly by keeping

commonly used items (new quiz, toss question, quiz status) in the toolbar. The

scores are saved to the database in real-time; so that if a score keeper forgets to

set the status to complete, they are still in the database.
Another feature is the fact that jSKONE is written in Java, so it can run on many

different platforms. The scores are saved to the database in real-time, so that

score keepers don't forget to save the quiz and also allows stats to be accessed

immediatly.
The best feature is probably the fact that jSKONE is free for any Bible quizzing

organization, coach or team. It was decided to make it free so that anyone in

Bible quizzing can afford to keep score the same way as everyone else.