SFIAB User Manual
James
Grant
james@lightbox.org
Sci-Tech Ontario
February 1, 2006
1.0.0
Introduction
The "Science Fair in a Box" (SFIAB) project aims to provide regions hosting a science fair with a complete and comprehensive package that can be used to assist in the implementation and running of the fair. The SFIAB's goals are to provide a web based application to facilitate all areas of running a science fair such as online registration for the participants, sponsor management, judges and special award management.
The SFIAB is implemented using open-source tools wherever possible, creating a truly open and customizable product that regions can modify to suit their needs. However, the project will contain enough configuration options to allow regions to use the system without any modifications to the underlying codebase. PHP will be the preferred language of development, with MySQL as the backend database. Other database backends could be supported in the future. Some reports will be created in PDF format to ensure cross-platform compatibility where applicable.
All text on the site will be internationalized to allow the use of the site in any language. 'Language Packs' will be available in other language once translations are complete.
Requirements
The following are the minimum requirements required to host a SFIAB system on your own server(s).
Web Server
Apache 1.3.x or 2.0.x
PHP 4.x
PDFlib Lite 6.0.x (for PDF report generation)
Database Server
MySQL 4.x or 5.x
Recommended Server OS
Linux (developed under, and fully tested)
Unix variant (BSD, Solaris, etc) should work but has never been tested
Windows should work but has never been tested
Installation
In order to install SFIAB, there is one very important pre-condition to satisify..
A database and database user must already exist, and that database user must have full permissions to the database. If you've just created the user, don't forget to 'FLUSH PRIVILEGES'
This installation procedure contains examples of how each step is performed in a Linux/Unix environment. The steps will be the same for other Operating Systems, however the actual commands may/probably will differ.
Installation Procedure
Unpack the SFIAB tar.bz2/zip file into the web server's document root.
tar -jvxf sfiab-0.9.6.tar.bz2
Create a 'symlink' or rename the sfiab folder.
ln -s sfiab-0.9.6 sfiab
or mv sfiab-0.9.6 sfiab
Make the data/ directory writeable by your web server. You can either chown it to your apache user, or chmod it to be group/world writable. In this example, we will chown it to the apache user/group. You might need to check what userid/groupid your web server is running as, common values are: apache, www-data, httpd, etc.
chown apache:apache sfiab/data
In your web browser, type in the installation location into the address bar
http://www.yourwebsite.com/sfiab
You should see the following, if you don't see the following, review the previous steps and make sure everything is correct
Start of installation procedure
Click on the 'Proceed with installation' link, and you'll see the following. Enter in your database host (leave as localhost if database is on same machine as web server), database user and password (that you have already created), and the database name (that you have already created). Finally, click on 'Connecet to database'.
Installation step 1
If the database connection fails, you'll receive an error message and it will prompt you again to enter the database information. If the database connection succeeds, you will see the following.
Installation step 1 - Success
Click on 'Proceed to installation step 2' to continue the installation'
This page will show you some information about what its doing, but nothing is required to be entered.
Installation step 2
Click on 'Proceed to installation step 3' to continue the installation'
You will need to fill out some very basic fair information in order to complete the installation, as well as create your first 'superuser' account. This account can be used afterwards to login and create other accounts.
Installation step 2
Click on 'Complete Installation' once you have filled out all of the fields.
The installation details will be completed at this point.
Installation complete
Click on the link for 'Your SFIAB main page' to begin using SFIAB
Configuration
To begin configuring SFIAB, you must first login to your SFIAB site via the 'Committee Login'. You should use the superuser account that you created in the final step of installation. Once you login, click on the 'SFIAB Configuration' link on the left hand side. The Configuration section should be fully completed before any judges or participants begin using the system. Once the system has started to be used for the current fairyear, you should not change any of the configuration options.
Configuration Variables
The Configuration Variables section allows you to set many configuration parameters for your fair. You should confirm / update every configuration option in this section to suit your fairs needs
Important Dates
The Important Dates section allows you to specify the dates relating to certain aspects of your fair, such as when registration opens, when it closes, when the actual fair is, etc. These dates should should be set as accuratly as possible since they will affect how your SFIAB operates and what is available when.
Project Age Categories
Project Age Categories lets you specify the age categories for your fair. The Category ID that you choose for each category must be unique and it would be good practice to start numbering from 1. You can specify a minimum and maximum grade as well. Should you allow kindergarden students at the fair, use 0 for a minimum grade.
Project Divisions
Project Divisions lets you specify the divisions that will be used at your fair. The Division ID that you choose for each division must be unique and it would be good practice to start numbering from 1.
Project Sub-Divisions
Project Sub-Divisions lets you specify more sub-divisions of the main divisions. Judges are able to choose the sub-divisions that best apply to them when they register to help matching with projects.
Page Texts
Page Texts allows you to update the text that is displayed on various pages of your SFIAB website. For example, the index page text can be updated which is what the people accessing SFIAB first see.
Project Safety Questions
Project Safety Questions allows you to specify the questions that will be asked to all participants as they register. There are two types of questions that you can setup. A 'check' question means that the participant must check the box in order to continue. A 'yes/no' question means that the participant must choose an answer, either yes or no in order to continue.
Images (Fair Logo)
The Images section allows you to upload your fair logo. The logo when uploaded will be converted to gif format (if it isnt already a gif), and sampled at several different sizes for various purposes, such as the header on all PDF reports.
Rollover Fair Year
The Rollover Fair Year page should only need to be used once per year. After your fair is complete and you're ready to prepare the SFIAB to handle the next year's fair. When you rollover to the next year, all configuration parameters, awards, prizes and many other pieces of information are brought into the new year. You can safely change things such as awards, age categories, divisions, configuration parameters, etc without harming any of the data from the previous year.
Administration
After you've fully configured SFIAB, you are ready to start 'administering' the system. Login as a committee member, and click on the "Fair Administration" button on the left side. All of the information in this section is intended to be used to 'run the fair'.
Participant Registration
The Participant Registration section allows you to enter the forms that you have received from the participants into the fair. This is the final step of the registraiton process and marks their registration as 'comlete'. You can also view the current registration list, and some helpful statistics. The list can be filtered on the various statuses, such as 'new', 'complete', 'paymentpending', etc.
Print / Export Reports
This section allows you to download and print reports on many different aspects of the fair. Many of the reports can be downloaded as either a CSV (Comma Separated Values) file, or as a PDF. If you would like to work on the data in a spread sheet application (such as MS Excel) you should download as a CSV file. If your intent is to print the report 'as is', you should use the PDF option. Several examples of reports in this section are nametags for students, table labels, judging team project assignments and the awards ceremony script.
Committee Management
The committee management system serves two purposes. First it allows anyone viewing the website to see a list of the committee members as well as contact info should anyone need to be contacted. Second, the committee list acts as the user database providing people access to the SFIAB system. When you create a new committee member (when logged in as a superuser) it allows you to specify the access controls that the new user will have. The options are 'Administration', 'Configuration' and 'Superuser'. For most cases, committee members will only need 'Administration' access. Configuration/Superuser should be reserved for the person in charge of the fair, or the person in charge of the SFIAB system for the fair.
Awards Management
The awards manaagement section allows you to create all of the awards that you will give out to the participants for the fair. You can create divisional awards, special awards, grand awards, etc. All awards must have a sponsor. In most cases, the 'Divisional Awards' are sponsored by the science fair committee itself. So the first thing you should do in this section is add a sponsor for the committee.
You can add awards individually through the 'Awards' link, however, there is an automated way to add all of the divisional awards (eg, "Junior - Life Sciences"). In order to use the "Create divisional awards for all divisions & categories' link, you will first need to setup the 'default prize template'. This specifies which prizes will be added to every divisional award that is auto-created. For example, prizes are commonly "Gold", "Silver", "Bronze" and "Honourable Mention". Once you specify these defaults, you can create the divisional awards for all divisions & categories. You will need to select the sponsor, as well as confirm the prizes that will be created.
School Management
The schools management interface allows you to manage all of the schools in your area that will be participating in the fair. All schools should also be assigned an 'Access Code' so the science teachers at the school can login to update/confirm their information. It is also possible in this section to configure the participant registration limits on a per-school basis, should that option be configured in the Configuration section.
Judging Management
The Judging management system is one of the most complex sections of SFIAB. It is intended to be used only by the chief judge.
Manage Judging Teams
This section allows you to manage the judging teams. Each team will be given a name and number and assigned to one or more awards in which they will be responsible for judging.
Manage Judging Team Members
The judging team members section allows you to add judges to each of the judging teams. A team can be as small as one judge, or any other size you choose. Each team can have a different number of judges, and each team can have one judge chosen as the 'team captain'.
Manage Judging Timeslots
The timeslots manager allows you to setup which timeslots are available for judges to use. Some fairs use very broad timeslots, such as "9AM-12AM" and assign many projects to be judges by a team in the same timeslot. Other fairs like having more control over their judges, and create very fine-grained timeslots, such as "9:00AM - 9:15AM, 9:15AM-9:30AM, etc". Using this system you can ensure that only one team is assigned to judge each project during each timeslot, avoiding conflicts with multiple judges trying to judge the same project at the same time.
Assign Timeslots to Judging Teams
Once the timeslots are created, they need to be assigned to the judging teams. Assigning a timeslot to a team allows you to (in the next section) add projects to those timeslots. Many fairs have different times available for divisional judging vs special awards judging. For example if special awards are only judged in the afternoon, then only those timeslots in the afternoon should be assigned to the team.
Assign Projects to Teams
Projects are assigned to teams during specific timeslots. You can add more than one project to a given timeslot, however remember that if you have very short timeslots, you should only add one project per timeslot to avoid conflicts. If your timeslots are very long, adding several projects to a team in one timeslot shouldnt be a problem.
Judging automatic scheduler
The judging automatic scheduler will allow the chief judge to automatically create the divisional awards judging structure based on several configurable options, such as the min/max team size, the maximum number of projects a team can judge, the total times each project must be judged, etc. The scheduler is actually split into two sections. The first section selects the best team members for each team based on the judges information, and the required teams. The second part assigns those teams to projects, ensuring each project is judged the required number of times, and avoiding scheduling conflicts.
Several pre-conditions are expected before the scheduler will run. On the scheduler configuration page (near the bottom) you will see feedback on all of the requirements. If a requirement fails (in red) there will be a link immediately below the failed requirement to take you to the section which requires changes to satisfy the conditions. For example, awards must already exist for all of the divisional teams, and no judging teams can currently be assigned to judge divisional awards. It also makes sure that there are sufficient timeslots available to schedule the judges. Once all of the pre-conditions are met, you will find a link at the bottom of the page to begin the scheduler. Running the scheduler may take 15-20 seconds, depending on the number of judges, number of participants and your scheduler configuration settings. Please be patient while it runs. Once it is complete you will see a great deal of information on the screen, mostly all just informational, letting you know what it has done. When the scheduler is done running (when the page loads) you can safely go back to the Judging Team Members, or Judging Teams, or Assign Projects to teams, to see what the schduler has done. You can also at this point make any changes to the teams or schedule that you want.
If you want/need to run the scheduler again (more judges signed up, change scheduler options, etc) you will need to re-satisfy all of the pre-conditions. The biggest part of this is removing all of the teams that were created. On the 'Manage Judging Teams' page, there is a link to 'Delete all teams assigned to divisional awards'. This will remove all of the auto-generated teams, as well as their timeslot & project assignments.
Translation Management
The Translation management system allows you to manage the translations of your text into different lanaguages. By default, french is the only other language. Many translations have already been done, however you will find that any new text that you have added, such as divisions, will need to be translated by you.
Enter Winning Projects
The enter winning projects section is intended to be used on the day of the fair, as the judging results are coming in. When the judges pick the winners for the awards, they should immediately be entered into this page. The winners for each prize for an award can be selected from a list of possible winners. For divisional awards, this list is restricted to projects in the appropriate age category/division. Also as projects are assigned, they are removed from the list, making it easier to find the next prize's winners.
All of the information on this page must be completed before the awards ceremony takes place, since this is the information that is used to create the awards ceremony script (in the Reports section).
Communication (Send Emails)
The communication section allows you to communicate with various groups of people, such as 'all judges', or 'all participants'. This will send an email with your text to whatever group you specify. You can create as many emails as you want. Several of the 'system' emails are also available to be edited in here, such as the email that a participant first receives when they register.