Plug-in Evaluations: Work on user interface. See eval_help.html for current status and 'To Do' List.

This commit is contained in:
dennis 2011-05-01 22:33:56 +00:00
parent 97d101d4bb
commit 7fbab3d8e6
14 changed files with 829 additions and 476 deletions

View File

@ -23,363 +23,681 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<p align="center"><strong>Welcome to Evaluations Help</strong></p>
<p><a href="../index.php" title="Return to Evaluations Main page" target="_self">Return to Evaluations</a></p>
<p><a href="#intro" target="_self">Introduction:</a>&nbsp; &nbsp;An overview of Evaluations plug-in for SFIAB</p>
<p><a href="#install">Installation</a>:&nbsp; How to Install Evaluations plug-in</p>
<p><a href="#process" title="Typical sequence of actions when using Evaluations" target="_self">Process:</a>&nbsp; &nbsp; The typical process used in Evaluations plug-in</p>
<p><a href="#setup" title="How to set up your evaluations scheme" target="_self">Setup</a>:&nbsp; &nbsp;How to set up the evaluations schemes for your event.</p>
<p><a href="#actions" title="Details about each of the administrative actions for Evaluations" target="_self">
Step by Step:</a>&nbsp;&nbsp;Details about the administrative actions (steps) in the Evaluations process.</p>
<p><a href="#examples" title="Several examples of Evaluations setup" target="_self">Examples:</a>&nbsp; Examples of setting up Evaluations for different types of project evaluations and scoring.</p>
<p><a href="#tables" title="Details about the database tables supporting Evaluations" target="_self">Tables:</a>&nbsp; &nbsp;Details about the database tables used in Evaluations.</p>
<p><a href="#apperson">Apperson Scanner:</a>&nbsp;&nbsp; How to setup SFIAB to use
the Apperson Education Products Benchmark 3000 Scanner.</p>
<p>&nbsp; </p>
<title>SFIAB Evaluations Help</title>
<style type="text/css">
.style1
{
font-size: large;
}
.style2
{
font-weight: normal;
}
</style>
</head>
<body>
<p align="center"><strong>Welcome to Evaluations Help</strong></p>
<p><a href="../index.php" title="Return to Evaluations Main page" target="_self">
Return to Evaluations</a></p>
<p><a href="#intro" target="_self">Introduction:</a>&nbsp; &nbsp;An overview of
Evaluations plug-in for SFIAB</p>
<p><a href="#install">Installation</a>:&nbsp; How to Install Evaluations plug-in</p>
<p><a href="#process" title="Typical sequence of actions when using Evaluations" target="_self">
Process:</a>&nbsp;&nbsp;&nbsp; The typical process used in Evaluations plug-in</p>
<p><a href="#setup" title="How to set up your evaluations scheme" target="_self">
Setup</a>:&nbsp; &nbsp;How to set up the evaluations schemes for your event.</p>
<p><a href="#actions" title="Details about each of the administrative actions for Evaluations" target="_self">
Step by Step:</a>&nbsp;&nbsp;Details about the administrative actions (steps) in the
Evaluations process.</p>
<p><a href="#examples" title="Several examples of Evaluations setup" target="_self">
Examples:</a>&nbsp; Examples of setting up Evaluations for different types of
project evaluations and scoring.</p>
<p><a href="#tables" title="Details about the database tables supporting Evaluations" target="_self">
Tables:</a>&nbsp; &nbsp;Details about the database tables used in Evaluations.</p>
<p><a href="#apperson">Apperson Scanner:</a>&nbsp;&nbsp; How to setup SFIAB to use
the Apperson Education Products Benchmark 3000 Scanner.</p>
<p>&nbsp; </p>
<p>
NOTE:&nbsp; The Evaluations plugin should be &#39;functional&#39; at this time but not
secured. Until security is incorporated, it should not be used on real data.&nbsp;
I will need James to help implement security.<br />
To Do list:&nbsp; (in order of importance - sort of):</p>
<ul>
<li>Anyone: Add Security so only committe members or perhaps judges can get to this
plugin web pages<br />
&nbsp;&nbsp;&nbsp; This needs some planning and inputs.&nbsp; Should any judge be
allowed to log-in and get to these pages or..<br />
&nbsp;&nbsp;&nbsp;&nbsp; should there be some special password for a judge team (or just
committee members or ...)</li>
<li>Anyone: Add Security. Dennis suggests the following:<br />
&nbsp;&nbsp; -&nbsp; Committe members (the administration staff)&nbsp; have access to
all of the Evaluations package.<br />
&nbsp;&nbsp;&nbsp; - Judges can access the Evalutaion input form (page
eval_webentry.php) but can enter data only if:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; They log in with their password.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; They can only enter data for teams to
which they are assigned.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (optionally perhaps every team would be
required to have a team leader and only the team leader can enter data)<br />&nbsp;&nbsp;&nbsp; This needs some planning and inputs.</li>
<li>Dennis: Fix so only projects in table judges_teams_timeslots_projects_link are
&#39;Linked&#39; into eval_projects and eval_projects_entries. At this time all projects
are linked - will only want the &#39;complete&#39; and assigned to a team projects.</li>
are linked - we will only want the &#39;complete&#39; and assigned to a team projects.</li>
<li>Dennis: Make sure it will work with more than one judging round. For now it is
set up only for one judging round. It is unknow what will happen if there are
more than one round.&nbsp; Perhaps an option during linking to select which
round.</li>
<li>Dennis:&nbsp; Document the details of using the Apperson Scanners - and how to
set up the fair to do so.</li>
<li>Anyone:&nbsp; Add to TRUNK version.&nbsp; Dennis cannot do due to not being able
to get Trunk fully running - needs help.</li>
set up only for one judging round. It is unknow what will happen if there is
more than one round.&nbsp; Perhaps an option during linking to select which round.</li>
<li>Dennis:&nbsp; Add project number and team numbers to the exported files where
usefull.&nbsp; add team_id and project_id to preslug export (for reference)</li>
<li>Anyone:&nbsp; Add to TRUNK version.&nbsp; Dennis cannot do due to not being able to get
Trunk fully running - needs help.</li>
<li>Anyone:&nbsp; Clean up the front end user interface.&nbsp; <ul>
<li>Set up for english or french&nbsp; (routines should be in sfiab_common.inc.php -
if not, add them there if same as in SFIAB.</li>
<li>Set up for English or French&nbsp; (routines should be in sfiab_common.inc.php - if
not, add them there if same as in SFIAB.</li>
<li>Make the menus and tables etc all look like SFIAB.</li>
</ul>
</li>
<li>AAnyone:&nbsp; Test with different schemes - perhaps send to those current users
who are interested in or currently using a scoreing method.</li>
<li>Anyone:&nbsp; Make it a true &#39;plug-in&#39;.&nbsp;&nbsp; Download and add to SFIAB
versus currently &#39;part of&#39; SFIAB - or not</li>
<li>Anyone:&nbsp; Test with different schemes - perhaps we could set up Evaluations
for those current users who
are interested in or currently using a scoring method.</li>
<li>Anyone:&nbsp; Make it a true &#39;plug-in&#39;.&nbsp;&nbsp; Download and add to SFIAB versus currently
&#39;part of&#39; SFIAB - or not</li>
<li>Etc.</li>
</ul>
<p>&nbsp;</p>
<p align="center"><strong><a name="intro" id="intro"></a>Introductiong></p>
<p align="left">Evaluations is a plug-in to SFIAB.&nbsp; That means you can add it to your current version of SFIAB with
minimal changes to your current SFIAB version.&nbsp; No changes will be made to
your current SFIAB data. In other words, no matter where you are in the SFIAB process for your event, you can add and take advantage of Evaluations and not worry about it creating problems.&nbsp; If you decide to not use it in the future you can 'unplug' it without any effect on your current setup or data. <br />
</p>
<p align="left">There are two changes in the configuration of SFIAB that must be implemented
during the installing of Evaluations:<br />
SFIAB must be configured for judging as follows:<br />
&nbsp;- the table config must have an entry with var =&nbsp; 'score_entry_enable' and val = 'yes' <br />
&nbsp;- the table judges_teams_timeslots_projects_link must have a field 'score'&nbsp; Float&nbsp; length 5.2&nbsp; null=yes<br />
Configuring SFIAB in this manner will also enable the necessary links in the admin menu and the judges menu for using Evaluations. This is the SFIAB configuration used my one or more fairs in the past.
</p>
<p align="left">Evaluations provides a very configurable method of capturing 'scores' for your projects.&nbsp; You can configure multiple schemes used for scoring!&nbsp; For each scheme you design the evaluation criteria to use, the weighting for each criteria and the levels (choices) judges can select from for each criteria. With multiple schemes you can design a completely different method of evaluation for each different type of projects (i.e. senior divisions versus junior divisions, team projects, etc.)&nbsp; When your organization changes the way they want you to evaluate projects, just change the Evaluations setup.</p>
<p align="left">Evaluations provides several methods of collecting your judge teams (judges) evaluations.&nbsp; Web pages are built for each scheme for entry on the web.&nbsp; CSV files are created for use with scanners or for creating your own forms to be used by the judge teams (judges)</p>
<p align="left">And, all the calculations are done for you. Evaluations uses the information in your setup to calculate scores from the entries made by the judges. The code works for all combinations of possible schemes - it all driven by the tables. So, once you can set up your scheme(s) Evaluations can do the math. &nbsp; A unique averaging method is used when you collect more than one evaluation for each project so all the valid data is used, even if one judge team leaves out a mark or makes multiple marks on their evaluations forms (i.e. when using scanners)..&nbsp; </p>
<p><br />
</p>
<p align="center"><strong><a name="process" id="process"></a>Process</strong></p>
<p align="left">The process in a nutshell is:</p>
<p align="left">1. Install Evaluations plug-in:</p>
<p align="left">2. Set up your evaluation schemes, criteria and values:</p>
<p align="left">3. After all your projects and judge teams are configured - Link
Evaluations to your SFIAB data. </p>
<p align="left">4. If required, Export the necessary data for use by external
programs or scanners to collect the evaluations:<br />
&nbsp;&nbsp; &nbsp;&nbsp; - CSV files are created for download for your use in programming scanners and pre slug of the scanner forms<br />
&nbsp;&nbsp; &nbsp; -&nbsp; CSF files can be use to create your own evaluation forms.</p>
<p align="left">5. The judge&nbsp;teams (judges) do the evaluations and 'mark' the appropriate level for each of the criteria for the scheme that applies to the project.</p>
<ul>
<li> Web forms for entries are used for teams who log into the
web site. Any committee member can log in, then enter the team number&nbsp; to bring up the projects assigned
to that team.&nbsp;</li>
<li> The team enters the evaluation for each project assigned.</li>
<li> Other methods of collecting evaluations can be
implemented using the exported CSV files.&nbsp;&nbsp;&nbsp; </li>
</ul>
<p align="left">6. The data is collected into a table in Evaluations.&nbsp;</p>
<ul>
<li>If the judges use a web page the data goes directly into the table.&nbsp; </li>
<li>Uploads from a specified CSV file format will also load the table so...&nbsp; no matter what technique you use the data is collected in a standard format for the next steps.</li>
</ul>
<p align="left">7.&nbsp;The data is processed (a button push).&nbsp;</p>
<ul>
<li> A score is created for each judge / project evaluation.&nbsp; &nbsp;</li>
<li>An average evaluation score is created for each project that is the average of all the evaluations done for the project. </li>
</ul>
<p align="left">8. If a caucus of the judge team requires some adjustments to the evaluations scores, that is accomplished by the team leader (chair person) - resulting in the final score for the project.</p>
<p align="left">9. Reports and or CSV files are available for the final&nbsp;results.</p>
<p align="left">10.&nbsp; A tool is provided to facilitate assigning the winners of some of the category awards (1st, 2nd, 3rd prizes and honorable mentions) where those winners simply rely on the ranking results.</p>
<p align="left">&nbsp;</p>
<p align="center"><strong><a name="setup" id="setup"></a>Setup</strong></p>
<p align="left">It is imperative you understand how to correctly setup Evaluations for your event.&nbsp; With that in mind we will try our best to explain how the setup works and the various options that are available.</p>
<p align="left"><strong>Definitions:</strong></p>
<p align="center"><a name="intro" id="intro"></a><b>Introduction</b></p>
<p align="left">Evaluations is a plug-in to SFIAB.&nbsp; That means you can add it
to your current version of SFIAB with minimal changes to your current SFIAB
version.&nbsp; No changes will be made to your current SFIAB data. In other
words, no matter where you are in the SFIAB process for your event, you can add
and take advantage of Evaluations and not worry about it creating problems.&nbsp;
If you decide to not use it in the future you can &#39;unplug&#39; it without any effect
on your current setup or data. <br />
</p>
<p align="left">There are two changes in the configuration of SFIAB that must be
implemented during the installing of Evaluations:<br />
SFIAB must be configured for judging as follows:<br />
&nbsp;- the table config must have an entry with var =&nbsp; &#39;score_entry_enable&#39; and
val = &#39;yes&#39; <br />
&nbsp;- the table judges_teams_timeslots_projects_link must have a field &#39;score&#39;&nbsp;
Float&nbsp; length 5.2&nbsp; null=yes<br />
Configuring SFIAB in this manner will also enable the necessary links in the
admin menu and the judges menu for using Evaluations. This is the SFIAB
configuration used my one or more fairs in the past.
</p>
<p align="left">Evaluations provides a very configurable method of capturing
&#39;scores&#39; for your projects.&nbsp; You can configure multiple schemes used for
scoring!&nbsp; For each scheme you design the evaluation criteria to use, the
weighting for each criteria and the levels (choices) judges can select from for
each criteria. With multiple schemes you can design a completely different
method of evaluation for each different type of projects (i.e. senior divisions
versus junior divisions, team projects, etc.)&nbsp; When your organization
changes the way they want you to evaluate projects, just change the Evaluations
setup.</p>
<p align="left">Evaluations provides several methods of collecting your judge teams
(judges) evaluations.&nbsp; Web pages are built for each scheme for entry on the
web.&nbsp; CSV files are created for use with scanners or for creating your own
forms to be used by the judge teams (judges)</p>
<p align="left">And, all the calculations are done for you. Evaluations uses the
information in your setup to calculate scores from the entries made by the
judges. The code works for all combinations of possible schemes - it all driven
by the tables. So, once you can set up your scheme(s) Evaluations can do the
math.&nbsp;&nbsp; A unique averaging method is used when you collect more than
one evaluation for each project so all the valid data is used, even if one judge
team leaves out a mark or makes multiple marks on their evaluations forms (i.e.
when using scanners)..&nbsp; </p>
<p><br />
</p>
<p align="center"><strong><a name="process" id="process"></a>Process</strong></p>
<p align="left">The process in a nutshell is:</p>
<p align="left">1. Install Evaluations plug-in:</p>
<p align="left">2. Set up your evaluation schemes, criteria and values:</p>
<p align="left">3. After all your projects and judge teams are configured - Link
Evaluations to your SFIAB data. </p>
<p align="left">4. If required, Export the necessary data for use by external
programs or scanners to collect the evaluations:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - CSV files are created for download for your use in
programming scanners and pre slug of the scanner forms<br />
&nbsp;&nbsp;&nbsp;&nbsp; -&nbsp; CSF files can be use to create your own evaluation
forms.</p>
<p align="left">5. The judge&nbsp;teams (judges) do the evaluations and &#39;mark&#39; the
appropriate level for each of the criteria for the scheme that applies to the
project.</p>
<ul>
<li> Web forms for entries are used for teams who log into the web site. Any
committee member can log in, then enter the team number&nbsp; to bring up the
projects assigned to that team.&nbsp;</li>
<li> The team enters the evaluation for each project assigned.</li>
<li> Other methods of collecting evaluations can be implemented using the exported
CSV files.&nbsp;&nbsp;&nbsp; </li>
</ul>
<p align="left">6. The data is collected into a table in Evaluations.&nbsp;</p>
<ul>
<li>If the judges use a web page the data goes directly into the table.&nbsp; </li>
<li>Uploads from a specified CSV file format will also load the table so...&nbsp; no
matter what technique you use the data is collected in a standard format for the
next steps.</li>
</ul>
<p align="left">7.&nbsp;The data is processed (a button push).&nbsp;</p>
<ul>
<li> A score is created for each judge / project assignement with complete
&#39;captured&#39; data.&nbsp; &nbsp;</li>
<li>An average evaluation score is created for each project that is the average of
all the evaluations done for the project.</li>
<li>These scores can be used as desired by the fair officials </li>
</ul>
<p align="left">8. If a caucus of the judge team or the official responsible for a
particular division requires some adjustments to the
evaluations scores, that is accomplished by the team leaders (chair persons or
other officials) -
resulting in the final scores for the projects in each division.</p>
<p align="left">9. Reports and or CSV files are available for the final&nbsp;results.</p>
<p align="left">10.&nbsp; A tool is (TBD) provided to facilitate assigning the winners of
some of the category awards (1st, 2nd, 3rd prizes and honorable mentions) where
those winners simply rely on the divisional ranking results.</p>
<p align="left">&nbsp;</p>
<p align="center"><strong><a name="setup" id="setup"></a>Setup</strong></p>
<p align="left">It is imperative you understand how to correctly setup Evaluations
for your event.&nbsp; With that in mind we will try our best to explain how the
setup works and the various options that are available.</p>
<p align="left"><strong>Definitions:</strong></p>
<p align="left"><strong>Scheme:</strong> A method of evaluating a set of projects -
perhaps differently than other projects.&nbsp; For instance you might have a scheme for team projects and another scheme for non-team projects.&nbsp; Or, you might have different schemes for each division in your event. Each scheme has a specific set of criteria, criteria weights and evaluation levels (choices) used to evaluate a project and then to calculate a score for that project.&nbsp;Each project is assigned a scheme. You can have as many schemes as you like. Each scheme has an id, a&nbsp;name and a selection statement. The selection statement is used to select which scheme is used for each project.&nbsp; The selection statement has three parts. the
&#39;item&#39;, the &#39;condition&#39; and the &#39;value&#39; - like 'div &gt; 1'. &nbsp;Each project that matches the selection statement of one of the schemes is assigned that scheme. Here are a couple of examples of schemes:</p>
<p align="left">scheme id&nbsp; &nbsp;&nbsp; name&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;selection statement &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result<br />
1&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;ISEF scoring&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; team = no&nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; projects with one student are assigned scheme id 1<br />
2&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ISEF (Team)&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; team = yes&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;projects with two or more students are assigned scheme id 2</p>
<p align="left">scheme id&nbsp; &nbsp; name&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; selection statement&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;assumes we have 2 categories setup - Junior = 1,&nbsp;&nbsp; Senior =2<br />
1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Junior Category&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cat = 1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; projects with category id = 1 (junior) are assigned scheme id
1. <br />
2&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Senior Category&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; &nbsp;cat &gt; 1&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; projects with category id = 2 or higher are assigned scheme id
2. (could use cat = 2 also)</p>
<p align="left"><strong><em>'item':</em></strong> The &#39;item&#39; part can have and of the following values:&nbsp; (more can be added it your request but it requires a code change.)<br />
&nbsp;&nbsp; team:&nbsp; If the project has one student then the value of team is 'no'.&nbsp;&nbsp; If the project has more than one student then the value of team is 'yes'&nbsp; <br />
&nbsp;&nbsp; cat:&nbsp; &nbsp; This represents the setting of the category_id assigned to the project.&nbsp;You set up categories in SFIAB and each project gets assigned one of those categories.&nbsp; <br />
&nbsp;&nbsp; div:&nbsp; &nbsp; This represents the setting of the division_id assigned to the project.&nbsp; You set up divisions in SFIAB and each project gets assigned one of those divisions.<br />
&nbsp;&nbsp; grade: This represents the grade of the project's student. For teams, grade is the grade of the team member with the highest grade.<br />
&nbsp;&nbsp;
cwdiv: This represents the Canada wide science fair division id (cwsfdivisionid field in projects).</p>
<p align="left"><em><strong>&#39;condition'</strong></em>:&nbsp; &nbsp;You are allowed to use any one of these
symbols as the &#39;condition&#39; part of the scheme selection criteria:<br />
=&nbsp; &nbsp; &nbsp; &nbsp; Equal<br />
!= &nbsp;&nbsp;&nbsp;&nbsp; Not Equal<br />
&lt;&nbsp; &nbsp;&nbsp; &nbsp; Less Than<br />
&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Greater Than
</p>
<p align="left"><strong><em>'value:'</em></strong>&nbsp; The &#39;value&#39; part represents the value of the Field for each project.&nbsp; For instance team can have a value of 'yes' or 'no'. Cat can have values like 0,1,2... - whatever you used for the Category Ids when you set up Age Categories in SFIAB. cwsfdivisionid has values those in Canada should understand.</p>
<p align="left">So, you can setup criteria like&nbsp; &nbsp;'team = yes'&nbsp; &nbsp;or 'div = 1' or 'div &lt; 3' or 'team != no'&nbsp; &nbsp;etc.&nbsp;Except for team (value = 'yes' or 'no) it is important to use a value that is set up for that field in SFIAB else the scheme_id will not be set correctly in Evaluations projects data.</p>
<p align="left"><strong>Criteria:</strong>&nbsp;&nbsp;Each evaluation scheme will have a set of criteria.&nbsp; These are what the judge team considers when comparing a project with other projects and with a standard. Examples of criteria are:&nbsp; 'Scientific Thought',&nbsp; 'Skill',&nbsp; 'Thoroughness', 'Teamwork', 'Research Skill', Etc.&nbsp; You create the&nbsp;criteria for each scheme used for your event. In fact you can have different criteria and a different number of criteria for each scheme For instance, elementary school projects may require only two criteria - 'Scientific Approach'&nbsp; 'Completeness'&nbsp; where as a senior school projects will require criteria of more relevance to the project advancing to&nbsp;the next level.</p>
<p align="left"><strong>Levels:&nbsp;</strong> Each evaluation scheme will have a set of levels.&nbsp; Levels are like grades.&nbsp; You determine the number of levels your evaluations will have and the value assigned to each level for each scheme. For instance you might have levels of A, B, C, D, F with values of 4,3,2,1,0 for one scheme and levels of Exceptional, Excellent, Very Good , Good, Acceptable with values of 5,4,3,2,1 for another scheme. The values do not have to be a sequence of integers but that works best. There are also optional 'special use' levels you can create that allow you to do error checking on the judges entries and take the appropriate action if the entry has errors.&nbsp; Special use levels are not used in calculating a score. An example is to assign a 'special use'&nbsp; level of 'No Entry' with a value of 0.&nbsp; Then when a scanner or any other process used to collect entries detects that there is no mark for a criteria it can assign the value 0 to the entry and Evaluations knows to 1.) not use that criteria entry in the calculations and 2.) indicate the error in the status for that entry. The short 4 character level_code is then added to the status for that entry.&nbsp; Setting a 'special use' level &quot;MultipleMarks&quot; with a value of 7 would allow the collection process (i.e. a scanner) to set that value when multiple entries are made for a criteria. Evaluations knows to not use that criteria's entry in the calculations and can indicate the error in the status.</p>
<p align="left"><strong>Weighting:</strong>&nbsp; Each criteria will have a weighing assigned&nbsp;in such a way that the sum of the weights for all the criteria to be used is = 100. Lets do an example:&nbsp; Say one of your evaluations schemes has 4 levels -L1, L2, L3 and L4 with values of 1,2,3,4&nbsp; and the scheme as 3 criteria C1, C2 and C3. with weights of 20,30, 50.&nbsp; Note the weights add up to 100. Define level_value as the entry made by the judge for a given criteria.&nbsp; It will be 1,2,3 or 4 in this example.&nbsp; Also define max_level_val as the maximum level value used in calculating a score (i.e. not a 'special use' level) &nbsp;In this example max_level_val = 4. Given all that, a score in this example is calculated as follows:</p>
<p align="left">score = &nbsp;&nbsp;( C1.level_value * C1.weight + C2.level_value * C2.weight + C3.level_value * C3.weight) / ( max_level_val)&nbsp;</p>
<p align="left">If all level_values are = 4 (the perfect project), then:</p>
<p align="left">perfectscore = (4*20 + 4*30 + 4*50) / 4</p>
<p align="left">perfectscore = 80 + 120 + 200) /4</p>
<p align="left">perfectscore = 400&nbsp;/ 4 = 100&nbsp;</p>
<p align="left">the lowest score for this scheme will be:</p>
<p align="left">lowest score = (1*20 + 1* 30 + 1* 50) / 4 = 25</p>
<p align="left">Note:&nbsp; You may enter a criteria with a weight of &#39;0&#39;&nbsp;&nbsp;
This allows keeping the number of criteria the same for each scheme. This
special case is used to provide compatibility with the Exported CSV files used to
pre slug the Apperson Education Products Benchmark 3000 scanners. </p>
<p align="left">Setup:&nbsp; Now that you understand (hopefully) the definitions we can explain how you set up 'Evaluations'<br />
Note: For now all setup is done in the tables.&nbsp; This will be updated as I create the web pages for setup</p>
<p align="left">1.) Decide how many schemes you will need.&nbsp; Most events will use only one scheme, some will want two or more. Enter the schemes in table eval_schemes.&nbsp;enter the item, condition and value in the scheme's selection statement.</p>
<p align="left">2.)&nbsp;For each scheme enter a record in eval_criteria for each criteria to be used for that scheme.</p>
<p align="left">3.) For each scheme enter a record in eval_levels for each level to be used for that scheme.</p>
<p align="left">For an example for ISEF evaluations (2010) see evaluations/db/db.eval.setup.isef.sql.&nbsp;
This setup is compatible with the Apperson Education Products Benchmark 3000
scanners.</p>
<p align="left">&nbsp;</p>
<p align="center"><strong><a name="actions" id="actions"></a>Step By Step Process</strong></p>
<p align="center"><a name="install" id="install"></a><strong>Installation</strong></p>
<p align="left">To install Evaluations plug-in follow these steps:</p>
<ul>
<li>If the folder 'plugins' does not exist in your SFIAB website root (along with admin, data, Rmail and other folders) add the folder 'plugins'.</li>
<li>Place all the folders and files frome the evaluations package under/in the folder 'plugins'.This will be the main folder 'evaluations' and under that folder many files, and some other folders (like 'db', 'uploads', 'docs'...)</li>
<li>Make the evaluations folder 'uploads' writable. How to do that depends on your web server.</li>
<li>When you are done you should have this setup of folders
<p align="left">'root'&nbsp; &nbsp;(the base folder for sfiab)<br />
&nbsp; 'admin'&nbsp; &nbsp; the SFIAB admin folder<br />
&nbsp;&nbsp; ...&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;other SFIAB folders<br />
&nbsp;&nbsp;'plugins'&nbsp; &nbsp;&nbsp; ( a folder for all plugins)<br />
&nbsp;&nbsp; &nbsp; 'evaluations'&nbsp; &nbsp;&nbsp; (the Evaluations plug-in base folder)<br />
&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; 'db' folder&nbsp; &nbsp;&nbsp; (the Evaluations data base creation and update files and the various default evaluation setup files)<br />
&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; 'docs' folder&nbsp;&nbsp;&nbsp; &nbsp;(files for information or download)<br />
&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; 'uploads'&nbsp;folder &nbsp; (uploaded files are placed here while in use - then deleted - folder must be 'writable'.)<br />
&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;files...&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;The various files for Evaluations.<br />
&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; .....<br />
&nbsp;&nbsp; 'Rmail' ... or other SFIAB folders.<br />
</p>
</li>
<li>
<p align="left">There will be no link in SFIAB to get to the main page for evaluations so.. do the following:<br />
- Log into SFIAB as a super user.<br />
- In you web browser go to 'SFIAB/plugins/evaluations/eval_index.php'<br />
&nbsp; &nbsp; (Where 'SFIAB' is you main browser root name for your SFIAB installation)<br />
- If Evaluations is not installed you will be quided through the steps to install and set up Evaluations.</p></li>
</ul>
<p>What the installation does:</p>
<ul>
<li>Adds tables to SFIAB database.&nbsp; Tables eval_config, eval_projects, eval_schemes, eval_criteria, eval_levels, eval_projects_entries.</li>
<li>Processes any database updates based on the Evaluations revision&nbsp;and sql changes.</li>
<li>Proceeds to the set&nbsp;up&nbsp;where:
<ul>
<li>The only two changes to existing SFIAB database are made:
<ul>
<li>An entry is made in the SFIAB table 'config' setting&nbsp; var = 'score_entry_enable'&nbsp;with val = 'yes' (if that entry does not already exist).</li>
<li>If the SFIAB table 'judges_teams_timeslots_projects_link'&nbsp;does not have the field 'score' then that field is added. Score is entered as Float (5,2)&nbsp; (Floating point 5 digits, 2 after the decimal point. I.E. 100.00 or 44 or 66.66).</li>
</ul>
</li>
<li>You may select from one or more pre-configured evaluations schemes or enter your own evaluation scheme, criteria and levels for your event.</li>
</ul>
</li>
</ul>
<p>Link Evaluations to Data base:&nbsp; For Evaluations to function it must be linked to the SFIAB data. This step creates (or updates) all the linkages so that Evaluations has the necessary information from SFIAB (read only) to accomplish the tasks designed into Evaluations.</p>
<p align="left">Assign judge teams (or judges) to the projects they are to evaluate.&nbsp;The default here is to use the judge_team_projects assignments of SFIAB so it is important that these are setup in SFIAB and that you run the 'Link Evaluations' after they are setup to update the Evaluations information.&nbsp;Optionally, you can go thru a completely different assignment of judges to projects.&nbsp; This feature is NOT IMPLEMENTED for revision 100 of Evaluations and will be implemented only if enough requests are generated.</p>
<p align="left">Create the evaluations documents or files required to enter the evaluations.&nbsp; This step can do several options.<br />
&nbsp;1.)&nbsp; &nbsp;A web form for each evaluation scheme is created automatically for each judge teams' assigned projects.&nbsp; The form will have the following:<br />
&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; - an entry for the team&nbsp;(or judge) number doing the evaluation.&nbsp; (one of the judge team members must be logged in.)<br />
&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; -&nbsp; an entry (selection) of one of the assigned project numbers.<br />
&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;- a web form table is presented with bubbles to mark for the project as follows<br />
&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; criteria&nbsp; &nbsp;&nbsp; criteria&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;criteria ....<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
level&nbsp; &nbsp; &nbsp; [ ]&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [ ]&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [ ]<br />
&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; level&nbsp; &nbsp; &nbsp; [ ]&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [ ]&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [ ]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
level &nbsp; &nbsp;&nbsp; [ ]&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;[ ]&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; [ ] <br />
&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; -&nbsp; a button to submit the evaluation entries</p>
<p align="left">&nbsp; 2.)&nbsp; &nbsp;CSV download files to be used by your organization to create your own web pages, or score forms or to pre slug standard forms or to import to scanners.&nbsp; The files should have enough data to accomplish your process.&nbsp; If not, request additional data be added.&nbsp; (coding changes)<br />
&nbsp;
3.)&nbsp;&nbsp; specific CSV files to be used to:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; - Load the 'student' data into the Apperson Education Products Benchmark 3000 scanner (requires a specific scheme setup).<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- Pre slug the Apperson Education Products Benchmark 3000 'Science Fair evaluation'&nbsp;&nbsp; forms. </p>
<p align="left">Evaluate the projects:&nbsp; During this time the judge teams (or judges) either mark the forms for your event, enter the evaluations on the web page or some other process to capture the required information.&nbsp; For each project, each evaluation they need the following:<br />
&nbsp; -&nbsp; project number&nbsp; (this is automatic in web page and Apperson scanner)<br />
&nbsp; -&nbsp; Team or judge number&nbsp; (this is required to verify that that team or judge has been assigned to the project.<br />
&nbsp; -&nbsp;a list of&nbsp; criteria_id, level_id&nbsp; pairs representing the evaluation of the project.&nbsp; (automatic with Apperson scanner and web page)<br />
&nbsp; - other optional items not yet designed.</p>
<p align="left">Enter the evaluations:&nbsp; &nbsp;the data from the evaluations is entered into Evaluations tables.&nbsp; This is done by the web page, or an upload from the Apperson Scanner or by an upload of a CSV file(s) created by you with the correct specifications.&nbsp; &nbsp;Details TBD.<br />
</p>
<p align="left">Calculate the scores:&nbsp; &nbsp;This is simply a button push. It calculates the individual score for each evaluation and... calculated the project's eval_score which is an average all of the evaluations for that project. </p>
<p align="left">Enter the final scores:&nbsp; After a caucus of the judge team(s) some adjustment will sometimes be required to the projects scores.&nbsp;This can be accomplished using a Evaluations web page<br />
</p>
<p align="left">&nbsp;</p>
<p align="center"><strong><a name="examples" id="examples"></a>Examples</strong></p>
<p align="left">examples:&nbsp; TBD</p>
<p align="left">&nbsp;</p>
<p align="center"><strong><a name="tables" id="tables"></a>Tables</strong></p>
<p align="left">Table description&nbsp; TBD&nbsp; &nbsp;for now see the db.eval.full.100.sql file&nbsp;or browse the tables with phpmyadmin.</p>
<p align="left">eval_projects:&nbsp; Caution:&nbsp;&nbsp; contains all projects,
even those not assigned.&nbsp; (may change this later - or not)</p>
<p align="left">eval_projects-entries.&nbsp; A copy of
judges_teams_timeslots_projects_links with additional fields&nbsp;&nbsp;&nbsp;
( a record for each project - judge team assignment with the scheme_id, and an entry for the selected value_id during judging.</p>
<p align="center"><b><a name="apperson"></a>Setup SFIAB to use Apperson Scanner</b></p>
<p align="center" style="text-align: left">If you want to use the Apperson Scanner
to record evaluation the following SFIAB setup rules must apply:</p>
<p align="center" style="text-align: left">The main requirement is that the scanner
(and forms) require project numbers form 1 to 9999 and Judge numbers from 1 to
9999<br />
To accomplish this the following must be true.<br />
&nbsp;&nbsp; If the Category digit(s) are removed from the SFIAB project number the
resulting numbers must be unique.<br />
perhaps differently than other projects.&nbsp; For instance you might have a
scheme for team projects and another scheme for non-team projects.&nbsp; Or, you
might have different schemes for each division in your event. Each scheme has a
specific set of criteria, criteria weights and evaluation levels (choices) used
to evaluate a project and then to calculate a score for that project.&nbsp;Each
project is assigned a scheme. You can have as many schemes as you like. Each
scheme has an id, a&nbsp;name and a selection statement. The selection statement is
used to select which scheme is used for each project.&nbsp; The selection
statement has three parts. the &#39;item&#39;, the &#39;condition&#39; and the &#39;value&#39;.
For example
&#39;div &gt; 1&#39;.&nbsp; Each part must be separated by one space character.&nbsp;Each project that matches the selection statement of one of the
schemes is assigned that scheme. Here are a couple of examples of schemes:</p>
<p align="left">scheme id&nbsp;&nbsp;&nbsp;&nbsp; name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;selection statement&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
result<br />
1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;ISEF scoring&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
team = no&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
projects with one student are assigned scheme id 1<br />
2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ISEF (Team)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
team = yes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;projects with two or
more students are assigned scheme id 2</p>
<p align="left">scheme id&nbsp;&nbsp;&nbsp; name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
selection statement&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
result&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;assumes we
have 2 categories setup - Junior = 1,&nbsp;&nbsp; Senior =2<br />
1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Junior Category&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cat = 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
projects with category id = 1 (junior) are assigned scheme id 1. <br />
2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Senior Category&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cat &gt; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
projects with category id = 2 or higher are assigned scheme id 2. (could use cat
= 2 also)</p>
<p align="left"><strong><em>&#39;item&#39;:</em></strong> The &#39;item&#39; part can have and of
the following values:&nbsp; (more can be added it your request but it requires a
code change.)<br />
&nbsp;&nbsp; team:&nbsp; If the project has one student then the value of team is
&#39;no&#39;.&nbsp;&nbsp; If the project has more than one student then the value of
team is &#39;yes&#39;&nbsp; <br />
&nbsp;&nbsp; cat:&nbsp;&nbsp;&nbsp; This represents the setting of the category_id
assigned to the project.&nbsp;You set up categories in SFIAB and each project gets
assigned one of those categories.&nbsp; <br />
&nbsp;&nbsp; div:&nbsp;&nbsp;&nbsp; This represents the setting of the division_id
assigned to the project.&nbsp; You set up divisions in SFIAB and each project
gets assigned one of those divisions.<br />
&nbsp;&nbsp; grade: This represents the grade of the project&#39;s student. For teams,
grade is the grade of the team member with the highest grade.<br />
&nbsp;&nbsp; cwdiv: This represents the Canada wide science fair division id
(cwsfdivisionid field in projects).</p>
<p align="left"><em><strong>&#39;condition&#39;</strong></em>:&nbsp; &nbsp;You are allowed to use
any one of these symbols as the &#39;condition&#39; part of the scheme selection
criteria:<br />
=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Equal<br />
!=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Not Equal<br />
&lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Less Than<br />
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Greater Than
</p>
<p align="left"><strong><em>&#39;value:&#39;</em></strong>&nbsp; The &#39;value&#39; part represents
the value of the Field for each project.&nbsp; For instance team can have a
value of &#39;yes&#39; or &#39;no&#39;. Cat can have values like 0,1,2... - whatever you used
for the Category Ids when you set up Age Categories in SFIAB. cwsfdivisionid has
values those in Canada should understand.</p>
<p align="left">So, you can setup criteria like&nbsp; &nbsp;&#39;team = yes&#39;&nbsp; &nbsp;or &#39;div =
1&#39; or &#39;div &lt; 3&#39; or &#39;team != no&#39;&nbsp; &nbsp;etc.&nbsp;Except for team (value = &#39;yes&#39; or
&#39;no) it is important to use a value that is set up for that field in SFIAB else
the scheme_id will not be set correctly in Evaluations projects data.</p>
<p align="left"><strong>Criteria:</strong>&nbsp;&nbsp;Each evaluation scheme will have a set
of criteria.&nbsp; These are what the judge team considers when comparing a
project with other projects and with a standard. Examples of criteria are:&nbsp;
&#39;Scientific Thought&#39;,&nbsp; &#39;Skill&#39;,&nbsp; &#39;Thoroughness&#39;, &#39;Teamwork&#39;, &#39;Research
Skill&#39;, Etc.&nbsp; You create the&nbsp;criteria for each scheme used for your event.
In fact you can have different criteria and a different number of criteria for
each scheme For instance, elementary school projects may require only two
criteria - &#39;Scientific Approach&#39;&nbsp; &#39;Completeness&#39;&nbsp; where as a senior
school projects will require criteria of more relevance to the project advancing
to&nbsp;the next level.</p>
<p align="left"><strong>Levels:&nbsp;</strong> Each evaluation scheme will have a set of
levels.&nbsp; Levels are like grades.&nbsp; You determine the number of levels
your evaluations will have and the value assigned to each level for each scheme.
For instance you might have levels of A, B, C, D, F with values of 4,3,2,1,0 for
one scheme and levels of Exceptional, Excellent, Very Good , Good, Acceptable
with values of 5,4,3,2,1 for another scheme. The values do not have to be a
sequence of integers but that works best. There are also optional &#39;special use&#39;
levels you can create that allow you to do error checking on the judges entries
and take the appropriate action if the entry has errors.&nbsp; Special use
levels are not used in calculating a score. An example is to assign a &#39;special
use&#39;&nbsp; level of &#39;No Entry&#39; with a value of 0.&nbsp; Then when a scanner or
any other process used to collect entries detects that there is no mark for a
criteria it can assign the value 0 to the entry and Evaluations knows to 1.) not
use that criteria entry in the calculations and 2.) indicate the error in the
status for that entry. The short 4 character level_code is then added to the
status for that entry.&nbsp; Setting a &#39;special use&#39; level &quot;MultipleMarks&quot; with
a value of 7 would allow the collection process (i.e. a scanner) to set that
value when multiple entries are made for a criteria. Evaluations knows to not
use that criteria&#39;s entry in the calculations and can indicate the error in the
status.</p>
<p align="left"><strong>Weighting:</strong>&nbsp; Each criteria will have a weight
assigned&nbsp;in such a way that the sum of the weights for all the criteria to be
used is = 100. Lets do an example:&nbsp; Say one of your evaluations schemes has
4 levels -L1, L2, L3 and L4 with values of 1,2,3,4&nbsp; and the scheme has 3
criteria C1, C2 and C3. with weights of 20,30, 50.&nbsp; Note the weights add up
to 100. Define level_value as the entry made by the judge for a given criteria.&nbsp;
It will be 1,2,3 or 4 in this example.&nbsp; Also define max_level_val as the
maximum level value used in calculating a score (i.e. not a &#39;special use&#39; level)
&nbsp;In this example max_level_val = 4. Given all that, a score in this example is
calculated as follows:</p>
<p align="left">score = &nbsp;&nbsp;( C1.level_value * C1.weight + C2.level_value * C2.weight
+ C3.level_value * C3.weight) / ( max_level_val)&nbsp;</p>
<p align="left">If all level_values are = 4 (the perfect project), then:</p>
<p align="left">perfectscore = (4*20 + 4*30 + 4*50) / 4</p>
<p align="left">perfectscore = 80 + 120 + 200) /4</p>
<p align="left">perfectscore = 400&nbsp;/ 4 = 100&nbsp;</p>
<p align="left">the lowest score for this scheme will be:</p>
<p align="left">lowest score = (1*20 + 1* 30 + 1* 50) / 4 = 25</p>
<p align="left">Note:&nbsp; You may enter a criteria with a weight of &#39;0&#39;&nbsp;&nbsp;
This allows keeping the number of criteria the same for each scheme. This
special case is used to provide compatibility with the Exported CSV files used
to pre slug the Apperson Education Products Benchmark 3000 scanners. </p>
<p align="left">Setup:&nbsp; Now that you understand (hopefully) the definitions we
can explain how you set up &#39;Evaluations&#39;</p>
<p align="left">1.) Decide how many schemes you will need.&nbsp; Most events will
use only one scheme, some will want two or more. Enter the schemes in the
&#39;Create / Edit Schemes&#39; page. </p>
<p align="left">2.)&nbsp;For each scheme enter the evaluation criteria to be used for that scheme
using the &#39;Create / Edit Criteria&#39; page.</p>
<p align="left">3.) For each scheme enter the evaluatons levels to be used for that scheme
in the &#39;Create / Edit Levels&#39; page.</p>
<p align="left">When Evaluations is first installed, schemes, criteria and levels
are created for the ISEF evaluations (2010) and to use the Apperson Education
Products Benchmark 3000 scanners. You can use these, eliminate the &#39;teams&#39;
scheme or create your own schemes, criteria and levels. </p>
<p align="left">&nbsp;</p>
<p align="center"><strong><a name="actions" id="actions"></a>Step By Step Process</strong></p>
<p align="center"><a name="install" id="install"></a><strong>Installation</strong></p>
<p align="left">To install Evaluations plug-in follow these steps:</p>
<ul>
<li>If the folder &#39;plugins&#39; does not exist in your SFIAB website root (along with
admin, data, Rmail and other folders) add the folder &#39;plugins&#39;.</li>
<li>Place all the folders and files frome the evaluations package under/in the
folder &#39;plugins&#39;.This will be the main folder &#39;evaluations&#39; and under that
folder many files, and some other folders (like &#39;db&#39;, &#39;uploads&#39;, &#39;docs&#39;...)</li>
<li>Make the evaluations folder &#39;uploads&#39; writable. How to do that depends on your
web server.</li>
<li>When you are done you should have this setup of folders
<p align="left">&#39;root&#39;&nbsp; &nbsp;(the base folder for sfiab)<br />
&nbsp; &#39;admin&#39;&nbsp;&nbsp;&nbsp; the SFIAB admin folder<br />
&nbsp;&nbsp; ...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;other SFIAB folders<br />
&nbsp;&nbsp;&#39;plugins&#39;&nbsp;&nbsp;&nbsp;&nbsp; ( a folder for all plugins)<br />
&nbsp;&nbsp;&nbsp;&nbsp; &#39;evaluations&#39;&nbsp;&nbsp;&nbsp;&nbsp; (the Evaluations
plug-in base folder)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39;db&#39; folder&nbsp;&nbsp;&nbsp;&nbsp;
(the Evaluations data base creation and update files and the various default
evaluation setup files)<br />
&nbs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39;docs&#39; folder&nbsp;&nbsp;&nbsp; &nbsp;(files
for information or download)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39;images&#39; folder<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39;uploads&#39;&nbsp;folder&nbsp;&nbsp; (uploaded
files are placed here while in use - then deleted - folder must be &#39;writable&#39;.)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;files...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;The various files for Evaluations.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .....<br />
&nbsp;&nbsp; &#39;Rmail&#39; ... or other SFIAB folders.<br />
</p>
</li>
<li>
<p align="left">There will be no link in SFIAB to get to the main page for
evaluations so.. do the following:/>
- Log into SFIAB as a super user.<br />
- In you web browser go to &#39;SFIAB/plugins/evaluations/eval_index.php&#39;<br />
&nbsp;&nbsp;&nbsp; (Where &#39;SFIAB&#39; is you main browser root name for your SFIAB
installation)<br />
- If Evaluations is not installed you will be quided through the steps to
install and set up Evaluations.</p></li>
</ul>
<p>What the installation does:</p>
<ul>
<li>Adds tables to SFIAB database.&nbsp; Tables eval_config, eval_projects, eval_schemes,
eval_criteria, eval_levels, eval_projects_entries.</li>
<li>Processes any database updates based on the Evaluations revision&nbsp;and sql
changes.</li>
<li>Proceeds to the set&nbsp;up&nbsp;where:
<ul>
<li>The only two changes to existing SFIAB database are made:
<ul>
<li>An entry is made in the SFIAB table &#39;config&#39; setting&nbsp; var =
&#39;score_entry_enable&#39;&nbsp;with val = &#39;yes&#39; (if that entry does not already exist).</li>
<li>If the SFIAB table &#39;judges_teams_timeslots_projects_link&#39;&nbsp;does not have the
field &#39;score&#39; then that field is added. Score is entered as Float (5,2)&nbsp;
(Floating point 5 digits, 2 after the decimal point. I.E. 100.00 or 44 or
66.66).</li>
</ul>
</li>
<li>You You may select from one or more pre-configured evaluations schemes or enter your
own evaluation scheme, criteria and levels for your event. (TBD)&nbsp; For now,
the ISEF schemes, criteria and levels are set up.</li>
</ul>
</li>
</ul>
<p style="text-align: center"><b>Using Evaluations</b></p>
<p>Link Evaluations to Data base:&nbsp; For Evaluations to function it must be
linked to the SFIAB data. This step creates (or updates) all the linkages so
that Evaluations has the necessary information from SFIAB (read only) to
accomplish the tasks designed into Evaluations.</p>
<p align="left">Assign judge teams (or judges) to the projects they are to
evaluate.&nbsp;The default here is to use the judge_team_projects assignments of
SFIAB so it is important that these assignments are setup in SFIAB and that you run the
&#39;Link Evaluations&#39; after they are setup (or if they are changed) to update the Evaluations
information.&nbsp;Optionally, you can go through a completely different assignment of
judges to projects.&nbsp; This feature is NOT IMPLEMENTED for revision 100 of
Evaluations and will be implemented only if enough requests are generated.</p>
<p align="left">Create the evaluations documents or files required to enter the
evaluations.&nbsp; This step can do several options./>
&nbs&nbsp;1.)&nbsp; &nbsp;A web form &#39;Evaluations Web Entry&#39; created automatically for
each judge teams&#39; assigned projects using the Evaluations and SFIAB setup.&nbsp; The form will have the following:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - an entry for the team&nbsp;(or judge)
number doing the evaluation.&nbsp; (one of the judge team members must be logged
in.)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&nbsp; an entry (selection) of one
of the assigned project numbers.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;- a web form table is presented with bubbles to
mark for the project as follows<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
criteria&nbsp;&nbsp;&nbsp;&nbsp; criteria&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;criteria
....<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; level&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
[ ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [ ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
[ ]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; level&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
[ ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [ ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
[ ]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; level&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
[ ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;[ ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
[ ] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&nbsp; a button to submit the evaluation
entries</p>
<p align="left">&nbsp; 2.)&nbsp; &nbsp;CSV download files to be used by your organization
to create your own web pages, or score forms or to pre slug standard forms or to
import to scanners.&nbsp; The files should have enough data to accomplish your
process.&nbsp; If not, request additional data be added.&nbsp; (coding changes)<br />
&nbsp; 3.)&nbsp;&nbsp; specific CSV files to be used to:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Load the
&#39;student&#39; data into the Apperson Education Products Benchmark 3000 scanner
(requires a specific scheme setup).<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Pre slug the
Apperson Education Products Benchmark 3000 &#39;Science Fair evaluation&#39;&nbsp;&nbsp;
forms. </p>
<p align="left">Evaluate the projects:&nbsp; During this time the judge teams (or
judges) either mark the forms for your event, enter the evaluations on the web
page or some other process to capture the required information.&nbsp; For each
project, each evaluation the following will be required:<br />
&nbsp; -&nbsp; project number&nbsp; (this is automatic in web page and Apperson
scanner)<br />
&nbsp; -&nbsp; Team or judge number&nbsp; (this is required to verify that that
team or judge has been assigned to the project.<br />
&nbsp; -&nbsp;a list of&nbsp; criteria_id, level_id&nbsp; pairs representing the
evaluation of the project.&nbsp; (automatic with Apperson scanner and web page)<br />
&nbsp; - other optional items not yet designed.</p>
<p align="left">Enter the evaluations:&nbsp; &nbsp;The data from the evaluations is
entered into Evaluations tables.&nbsp; This is done by the web page &#39;Import
Evaluations Data (Apperson Scanner)&#39; or by an upload of a CSV file(s) created by you
with the correct specifications.&nbsp; &nbsp;Details TBD.<br />
</p>
<p align="left">Calculate the scores:&nbsp; &nbsp;This is simply a button push using
page &quot;Calculate Scores&#39;. It
calculates the individual score for each evaluation and... calculates the
project&#39;s evaluation scorewhich is an average all of the evaluations for that
project. </p>
<p align="left">Enter the final scores:&nbsp; After a caucus of the judge team(s) or
divisional officials and judges,
some adjustment will sometimes be required to the projects scores.&nbsp;This can be
accomplished using a Evaluations web page (TBD)<br />
</p>
<p align="left">&nbsp;</p>
<p align="center"><strong><a name="examples" id="examples"></a>Examplesrong></p>
<p align="left">examples:&nbsp; TBD</p>
<p align="left">&nbsp;</p>
<p align="center"><strong><a name="tables" id="tables"></a>Tables</strong></p>
<p align="left">TablTable descriptions&nbsp; TBD&nbsp; &nbsp;for now see the
db.eval.full.100.sql file&nbsp;or browse the tables with phpmyadmin.</p>
<p align="left">eval_projects:&nbsp; Caution:&nbsp;&nbsp; contains all projects,
even those not assigned.&nbsp; (may change this later - or not)
<p align="left">eval_projects-entries.&nbsp; A copy of
judges_teams_timeslots_projects_links with additional fields&nbsp;&nbsp;&nbsp; (
a record for each project - judge team assignment with the scheme_id, and an
entry for the selected value_id during judging.</p>
<p align="left">&nbsp;</p>
<p align="center"><b><a name="apperson"></a><strong><span class="style1">Setup SFIAB
to use Apperson Scanner</span></strong></b></p>
<p style="text-align: center">
<b>About the Apperson Education Products Benchmark 3000 scanner:</b></p>
<p style="text-align: center">
<a href="http://www.appersonedu.com/default.aspx" target="_blank">
Apperson Education Products</a></p>
<p style="text-align: center">
&nbsp;</p>
<p>
<img alt="The Apperson Benchmark 3000 scanner"
src="images/BenchMark3000.jpg" style="width: 760px; height: 142px" /></p>
<p>
Apperson Education Products worked with a regional science fair in New Mexico to
develop a special &#39;Science Fair&#39; Option on their Benchmark 3000 scanner.&nbsp;
This option is very robust. You download and import your fair&#39;s data into the
scanners student database so that means only perfect forms will be scanned
without rejection. Forms with multiple marks or missing
marks are rejected but the good data is captured. Forms with a judge and exhibit combination not in the student database
are also rejected.&nbsp; The scores collected from the forms are exported - then uploaded to
your fair&#39;s Judges Evaluations for processing on the website.&nbsp; If you are
interested in using Apperson Benchmark scanner contact Apperson Education
Products. Be sure to ask for the &#39;Science Fair&#39; add-on option. <b>
<br />
Here are the requirements to use the Apperson Scanners:<br />
&nbsp;- You will require a PC running Microsoft Windows and must have a license for
MS Word.
<br />
&nbsp;- You may have no more than 99 projects in a given project Division.<br />
&nbsp;- You must setup Evaluations Schemes, Criteria and Levels as described below.</b></p>
<p>
<a href="http://www.appersonedu.com/scanners/benchmarktestscanner.aspx"
target="_blank">
Apperson Education Products - Benchmark 3000</a>&nbsp;</p>
<p>
&nbsp;</p>
<p>
<img alt="Apperson Science Fair Score Form"
src="images/AppersonScoreForm.jpg" style="width: 750px; height: 575px" /><br />
&nbsp;
<br />
&nbsp;&nbsp; Sample of Form A1308 - the &#39;science fair&#39; score form from Apperson
Education Products<br />
&nbsp;&nbsp;&nbsp; </p>
<p align="center" style="text-align: left">Here is how the process works:</p>
<ul>
<li>
<p align="center" style="text-align: left">
Data from your fair is used to &#39;pre-slug&#39; the score forms.&nbsp; A bar code with
the project number and judge number (team number) is printed on the form along
with other information. The bar code is not shown in the image above - it is
printed to the right of the top text box marked &#39;SAMPLE&#39;. A MS Word document is included in
the Evaluations package as well as
the file you can export to use with the MS Word document to accomplish this
task using a &#39;Mail Merge&#39; type process. The boxes with the word &#39;SAMPLE&#39; as well as the box below &#39;Marking
Instruction are available for your text.&nbsp; The supplied MS Word document and
the Export file are designed to meet most needs but you can modify the document
to meet your fair&#39;s needs.</p>
</li>
<li>
<p align="center" style="text-align: left">
Another exported file creates the &#39;student data&#39; that is loaded into the
scanner. That file contains the project numbers and judge number as well as
other project and judge identification information.&nbsp; The file is loaded
into the scanner program (DataLink) and is used to verify barcodes on the forms
with the data in the scanning program.</p>
</li>
<li>
<p align="center" style="text-align: left">
Judges (teams) mark the forms for their assigned projects.&nbsp; The criteria
and levels provided are those used by ISEF (as of this publish date).</p>
</li>
<li>
<p align="center" style="text-align: left">
The forms are scanned and data gathered.&nbsp; Forms not matching the student
data base are rejected and no data is created.&nbsp; Forms matching the student
data base create a data record and are not rejected. Forms with multiple marks
in any criteria or missing marks for any criteria are rejected but the data is
capatured.
<br />
&nbsp; -&nbsp; The marks on the forms create numbers corresponding to the &#39;value_id&#39; as
described below.&nbsp; 0 meaning missing mark, 7 meaning multiple marks</p>
</li>
<li>
<p align="center" style="text-align: left">
The captured data records are &#39;exported&#39; from the scanner <strong>&nbsp;at any
time in the scanning process -</strong>creating a text file.</p>
</li>
<li>
<p align="center" style="text-align: left">
The text files are &#39;imported&#39; to SFIAB Evaluations and the data placed in a
database table for processing.</p>
</li>
<li>
<p align="center" style="text-align: left">
The &#39;Calculate Scores&#39; selection in Evaluations processes the data and creates
judge (team( scores and a project score based on the imported data.&nbsp;
</p>
</li>
</ul>
<p align="center" style="text-align: left">If you want to use the Apperson Scanner
to record evaluations you must setup SFIAB to meet certain conditions - as
follows: &nbsp;</p>
<p align="center" style="text-align: left">The main requirement is that the scanner
(and forms) require project numbers from 1 to 9999 and Judge numbers from 1 to
9999<br />
To accomplish this the following must be true: If the Category digit(s) are
removed from the SFIAB project number the resulting numbers must be unique.<br />
<br />
Here is one way to accomplish the above requirements:<br />
* Set the Configuration variables in SFIAB as follows:<br />
&nbsp;&nbsp; -Allows for the setup of different divisions for each category:&nbsp; =
Yes&nbsp; (not sure, perhaps No will also work???)<br />
&nbsp;&nbsp; -Project Numbering Format = CDN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
(Category, Division, Number)<br />
* Project Age Categories: The Categories&#39; IDs must be an integer from 1 to 9&nbsp;&nbsp;
(usually&nbsp; 1 = Junior,&nbsp;&nbsp; 2 = Senior)<br />
* Divisions:&nbsp;&nbsp; The Divisions&#39; IDs must be integers from 1 to 99&nbsp;&nbsp;
(Usually Junior = 1 to n,&nbsp; Senior = n+1 to ..(99max)<br />
* When creating the Divisions, Create a separate Division ID&nbsp; for each
Category even if the Division name is the same.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ( Do not assign more than one category to a Division)<br />
&nbsp;&nbsp;&nbsp; Example:<br />
&nbsp;&nbsp;&nbsp; Category&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Division<br />
&nbsp;&nbsp;&nbsp; 1 - Junior&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1 - Animal Science&nbsp; (junior)&nbsp;&nbsp;&nbsp;
<br />
&nbsp;&nbsp;&nbsp; 1 - Junior&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
2 - Chemistry&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (junior)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
etc ...<br />
&nbsp;&nbsp;&nbsp; 2 - Senior&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
22- Animal Science (senior)<br />
&nbsp;&nbsp;&nbsp; 2 - Senior&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
23 - Chemistry<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; etc<br />
Thus, project Numbers are never more than 5 digits&nbsp;&nbsp; - i.e. CDDNN
where NN is the exhibit sub number in the specific Division. And, when the &#39;C&#39;
is removed the remaining number is still a unique number. Project numbers used
in the score form barcode and in the &#39;student&#39; data are then the SFIAB project
number stripped of the first digit (the category digit).&nbsp; However...<br />
&nbsp;<b>VERY IMPORTANT - This means there can be no more than 99 projects in a given
category-division.</b><span class="style2"><br />
</span>&nbsp;&nbsp; If that becomes a problem for your fair,&nbsp; a different
SFIAB numbering method could be invented.<br />
&nbsp;&nbsp;
<br />
Other methods may also work.&nbsp; If you have a suggestion, let us know.on, let us know.<br />
<br />
Here is one way to accomplish the above requirements:<br />
Configuration variables:<br />
&nbsp;-Allows for the setup of different divisions for each category:&nbsp; = Yes&nbsp;
(not sure, perhaps No will also work???)<br />
&nbsp;-Project Numbering Format = CDN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
(Category, Division, Number)<br />
Project Age Categories: The Categories' IDs must be an integer from 1 to 9&nbsp;&nbsp;
(usually&nbsp; 1 = Junior,&nbsp;&nbsp; 2 = Senior)<br />
Divisions:&nbsp;&nbsp; The Divisions&#39; IDs must be integers from 1 to 99&nbsp;&nbsp;
(Usually Junior = 1 to n,&nbsp; Senior = n+1 to ..(99max)<br />
When creating the Divisions, Create a separate Division ID&nbsp; for each
Category even if the Division name is the same.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ( do Not assign more than one category to a Division)<br />
&nbsp;&nbsp;&nbsp; Example:<br />
&nbsp;&nbsp;&nbsp; Category&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Division<br />
&nbsp;&nbsp;&nbsp; 1 - Junior&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1 - Animal Science&nbsp; (junior)&nbsp;&nbsp;&nbsp;
<br />
&nbsp;&nbsp;&nbsp; 1 - Junior&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
2 - Chemistry&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (junior)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
etc ...<br />
&nbsp;&nbsp;&nbsp; 2 - Senior&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
22- Animal Science (senior)<br />
&nbsp;&nbsp;&nbsp; 2 - Senior&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
23 - Chemistry<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; etc<br />
Thus, project Numbers are never more than 5 digits&nbsp;&nbsp; - i.e. CDDNN
where NN is the exhibit sub number in the specific Division. And, when the &#39;C&#39;
is removed the remaining number is still a unique number. However...<br />
&nbsp;VERY IMPORTANT - This means there can be no more than 99 projects in a given
category-division.<br />
&nbsp;&nbsp; If that becomes a problem for your fair,&nbsp; a different SFIAB
numbering method must be invented.<br />
&nbsp;&nbsp;
<br />
Other methods may also work.&nbsp; If you have a suggestion, let us know.<br />
<br />
Evaluation Schemes You must have&nbsp; 2 - Non-Team and Team&nbsp;&nbsp; (One
may work&nbsp; not sure yet)<br />
Evaluation Schemes You can have&nbsp; 2 - Non-Team and Team&nbsp;&nbsp; (ISEF
eliminated special scoring for teams in 2011 so you may want just one evaluation
scheme for all projects.)<br />
Evaluation Criteria&nbsp;&nbsp; You must have 6 criteria for each scheme with
Ids from 1 to 6 as follows *you can use ISEF weighting or your own)<br />
id&nbsp;&nbsp;&nbsp; name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
weight non team&nbsp;&nbsp;&nbsp;&nbsp; weight team<br />
1 -Creative Ability&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
25<br />
2 -Scientific Thought&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
25<br />
3 -Thoroughness&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
15&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
12<br />
4 -Skill&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
3 -Thoroughness&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
15&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
12<br />
5 -Clarity&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
4 -Skill&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
15&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
12<br />
5 -Clarity&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
10<br />
6 -Teamwork&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
6 -Teamwork&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
16<br />
<br />
Note: Starting in 2011, ISEF no longer uses the Teamwork criteria - all projects
are evaluated using the non-team weights<br />
<br />
<br />
You must have 7 levels for each criteria with Ids from 0 to 6 as follows: (You
can use your own level_values but for ISEF the value = id<br />
id&nbsp; value name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; spec_use&nbsp;
Spec_use_code<br />
0&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; No mark&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
NoMk<br />
1&nbsp;&nbsp; 1&nbsp;&nbsp; Acceptable&nbsp;&nbsp;&nbsp; no<br />
2&nbsp;&nbsp; 2&nbsp;&nbsp; Good&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
You must have 7 levels for each criteria with Ids from 0 to 7&nbsp; (6 not used)
as follows: (You could own &#39;level_values&#39; but for ISEF the level-values are the
same as the level_id.&nbsp;
</p>
<p align="center" style="text-align: left">id&nbsp; value name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
spec_use&nbsp; Spec_use_code<br />
0&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; No mark&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
yes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NoMk<br />
1&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Acceptable&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
no<br />
3&nbsp;&nbsp; 3&nbsp;&nbsp; Very Good&nbsp;&nbsp; no<br />
4&nbsp;&nbsp; 4&nbsp;&nbsp; Excellent&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; no<br />
5&nbsp;&nbsp; 5&nbsp;&nbsp; Exceptional&nbsp;&nbsp; no<br />
7&nbsp;&nbsp; 7&nbsp; MultipleMark yes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
2&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Good&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
no<br />
3&nbsp;&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Very Good&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
no<br />
4&nbsp;&nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Excellent&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
no<br />
5&nbsp;&nbsp;&nbsp;&nbsp; 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Exceptional&nbsp;&nbsp;&nbsp;&nbsp;
no<br />
7&nbsp;&nbsp;&nbsp;&nbsp; 7&nbsp;&nbsp;&nbsp;&nbsp; MultipleMark yes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
MltM<br />
Note level_id of 6 is not used<br />
Note: level_id of 6 is not used<br />
</p>
<p align="center" style="text-align: left">
IMPORT data from Apperson Scanner:<br />
The file created by the scanner has the following format (the import code is
designed to use this format)<br />
&quot;Apperson_proj_num&quot;,&quot;Judgeteam_num&quot;,&quot;CreativeAbility.level_id&quot;,&quot;ScientificThouth.level_id&quot;,&quot;Thoroughness.level_id&quot;,&quot;Skill.level_id&quot;,&quot;Clarity.level_id&quot;,&quot;Teamwork.level_id&quot;,&quot;seq#&quot;<br />
where level_id are 0,1,2,3,4,5,7&nbsp;&nbsp;&nbsp;&nbsp; 0 = no mark&nbsp;&nbsp;&nbsp;&nbsp;
7 = double mark&nbsp; and seq# is a 6 digit sequence number created by the
scanner.<br />
<br />
<br />
<br />
<br />
wherwhere level_id are 0,1,2,3,4,5,7&nbsp;&nbsp;&nbsp;&nbsp; 0 = no mark&nbsp;&nbsp;&nbsp;&nbsp;
7 = double mark&nbsp; and seq# is a 6 digit sequence identifier created by the
scanner.<br />
<br />
</p>
<p align="center" style="text-align: left">
<br />
</p>
<p align="center" style="text-align: left">
<br />
<br />
<br />
<br />
<br />
<br />
</p>
<p align="center">
Imp</p>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

View File

@ -24,43 +24,54 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
<head><title>SFIAB Evaluations Calculate scores</title>
<head><title>SFIAB Evaluations Calculate Scores</title>
</head>
<body>
<?php
include "sfiab_common.inc.php"; // check SFIAB install and get config etc.
include "eval_common.inc.php"; // check Evaluations setup and get eval_config
include "eval_menu_inc.php";
echo "<br />Note: This updates the score field in 'judges_teams_timeslots_projects_link' for every team/project with a 'complete' evaluation entry<br />";
echo "<h2>Calculate Scores</h2><br /><br />";
echo "<br />";
echo "Click the button to Calculate and enter scores values";
echo "<form method=\"post\" action=\"eval_calc_scores.php\">";
echo "<input type=\"hidden\" name=\"action\" value=\"calc\" />";
echo "<br />";
echo "<input type=\"submit\" value=\"Calculate Scores\">";
echo "</form>";
if(!$_POST['action'] == "calc")
{
echo "</body>";
echo "</html>";
exit;
}
echo "<br />All Scores calculated and saved!<br />";
echo "<br />Development Note: This updates the score field in 'judges_teams_timeslots_projects_link' for every team/project with a 'complete' evaluation entry<br />";
echo " and updates the eval_score (current average) and eval_score_status fields in table eval_projects for every project for which an average score can be calculated.<br />";
echo "For test purposes (to be removed later) it lists just the project number for each project, then lists the scores details for the last project in the list.<br /><br /> ";
// do all projects that qualify for judging (in the judges_teams_timeslots_projects_link table)
$q = mysql_query("SELECT DISTINCT projects_id from judges_teams_timeslots_projects_link");
while($r=mysql_fetch_object($q)) {
if($r->projects_id == 2281){
echo "test";
$ret_array = calc_scores($r->projects_id); // cal_scores is in eval_common.inc.php
if($ret_array == 'error') {
echo " error";
}
else{
echo " ".$ret_array[project_num];
// put scores in 'judges_teams_timeslots_projects_link'
for ($i=0;$i < $ret_array[num_teams]; $i++){
$team_id = $ret_array[team_scores][$i][team_id];
$score = $ret_array[team_scores][$i][team_score];
if (is_null($score)) {$score = "NULL";}
$up = mysql_query("UPDATE judges_teams_timeslots_projects_link SET score = ".$score.
" WHERE judges_teams_id = '".$team_id."' AND projects_id = '".$r->projects_id."' ");
}
// update eval_judges table
$up = mysql_query("UPDATE eval_projects SET eval_score = '".$ret_array[eval_score]."', eval_score_status = '".$ret_array[eval_score_status]."' WHERE project_id = '".$r->projects_id."' ");
}
$ret_array = calc_scores($r->projects_id); // cal_scores is in eval_common.inc.php
if($ret_array == 'error') {
echo " error";
}
else{
echo " ".$ret_array[project_num];
// put scores in 'judges_teams_timeslots_projects_link'
for ($i=0;$i < $ret_array[num_teams]; $i++){
$team_id = $ret_array[team_scores][$i][team_id];
$score = $ret_array[team_scores][$i][team_score];
if (is_null($score)) {$score = "NULL";}
$up = mysql_query("UPDATE judges_teams_timeslots_projects_link SET score = ".$score.
" WHERE judges_teams_id = '".$team_id."' AND projects_id = '".$r->projects_id."' ");
}
// update eval_judges table
$up = mysql_query("UPDATE eval_projects SET eval_score = '".$ret_array[eval_score]."', eval_score_status = '".$ret_array[eval_score_status]."' WHERE project_id = '".$r->projects_id."' ");
}
}
echo "<br /><br />";
// this just prints out the values in the last project
// for debug - this just prints out the values in the last project
if ($ret_array =="error"){
echo $ret_array;
}
@ -70,9 +81,11 @@ else {
$ret_array[team_scores][$i][proj_num] ." score =".$ret_array[team_scores][$i][team_score].
" status = ".$ret_array[team_scores][$i][team_status] ."<br />";
}
echo "Project number ".$ret_array[project_num].": score= ".$ret_array[eval_score]." status = ".$ret_array[eval_score_status]."<br />";
}
echo "Project number ".$ret_array[project_num].": score= ".$ret_array[eval_score]." status = ".$ret_array[eval_score_status]."<br />";
}
echo "</body>";
echo "</html>";
exit;
?>

View File

@ -21,7 +21,9 @@
Boston, MA 02111-1307, USA.
*/
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
<head><title>SFIAB Evaluations Criteria Editor</title>
<script language="javascript">
function confirmClick(msg)
{
@ -32,6 +34,8 @@ function confirmClick(msg)
return false;
}
</script>
</head>
<body>
<?php
include "sfiab_common.inc.php"; // check SFIAB install and get config etc.
include "eval_common.inc.php"; // check Evaluations setup and get eval_config
@ -169,7 +173,8 @@ else
echo "</table>";
echo "</form>";
echo"Scheme ID must exist in Schemes!";
echo "</body>";
echo "</html>";
// send_footer();
?>

View File

@ -26,7 +26,7 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Export Evaluation Forms</title>
<title>SFIAB Evaluations Export</title>
</head>
<body>
@ -36,6 +36,7 @@
include "sfiab_common.inc.php"; // check SFIAB install and get config etc.
include "eval_common.inc.php"; // check Evaluations setup and get eval_config
include "eval_menu_inc.php";
echo "<h2>Export Data</h2><br /><br />";
/* Options
1. Most information for preslugging scoring forms (one record per project - judgeteam assignment) (includes scheme_id and...

View File

@ -25,7 +25,7 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Export Evaluation Forms</title>
<title>SFIAB Evaluations Import</title>
</head>
<body>
@ -33,6 +33,7 @@
include "sfiab_common.inc.php"; // check SFIAB install and get config etc.
include "eval_common.inc.php"; // check Evaluations setup and get eval_config
include "eval_menu_inc.php";
echo "<h2>Import Data</h2><br /><br />";
echo "This will upload the data from an Apperson Benchmark 3000 scanner and enter the good data into the Evaluations Entries table.<br />";
echo "Select a file to upload, then click the 'Upload' button.<br />";
echo "The file must conform to the Apperson scanner output format - see Documentation<br />";

View File

@ -21,7 +21,9 @@
Boston, MA 02111-1307, USA.
*/
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
<head><title>SFIAB Evaluations Levels Editor</title>
<script language="javascript">
function confirmClick(msg)
{
@ -32,6 +34,8 @@ function confirmClick(msg)
return false;
}
</script>
</head>
<body>
<?php
include "sfiab_common.inc.php"; // check SFIAB install and get config etc.
include "eval_common.inc.php"; // check Evaluations setup and get eval_config
@ -151,10 +155,7 @@ if($_GET['action']=="edit" || $_GET['action']=="new")
echo " <td><input type=\"text\" size=\"12\" name=\"level_name\" value=\"$lvlr->level_name\" /></td>";
echo " <td><input type=\"text\" size=\"3\" name=\"spec_use\" value=\"$lvlr->spec_use\" /></td>";
echo " <td><input type=\"text\" size=\"4\" name=\"spec_use_code\" value=\"$lvlr->spec_use_code\" /></td>";
echo "</td>";
echo " <td><input type=\"submit\" value=\"".$buttontext."\" /></td>";
echo "</tr>";
}
@ -182,8 +183,9 @@ else
echo "</table>";
echo "</form>";
echo"Scheme ID Must exist in Schemes!";
// send_footer();
echo "</body>";
echo "</html>";
exit;
?>

View File

@ -23,7 +23,7 @@
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
<head><title>SFIAB Evaluations Linkup</title>
<head><title>SFIAB Evaluations Link</title>
<link rel="stylesheet" href="sfiab.css" type="text/css" />
</head>
<body>
@ -32,20 +32,20 @@
include "sfiab_common.inc.php"; // check SFIAB install and get config etc.
include "eval_common.inc.php"; // check Evaluations setup and get eval_config
include "eval_menu_inc.php";
echo "<h2>Link Evaluations and SFIAB Data</h2><br /><br />";
echo "<br /><br />";
$errors = 0;
echo "Click the button to link SFIAB and Evaluations. (Be patient, may take a while)";
echo "<form method=\"post\" action=\"eval_link_sfiab.php\">";
echo "<input type=\"hidden\" name=\"action\" value=\"link\" />";
echo "<br />";
echo "<input type=\"submit\" value=\"Link Now\">";
echo "</form>";
if(!$_POST['action'] == "link")
{
echo "Click the button to link SFIAB and Evaluations";
echo "<form method=\"post\" action=\"eval_link_sfiab.php\">";
echo "<input type=\"hidden\" name=\"action\" value=\"link\" />";
echo "<br />";
echo "<input type=\"submit\" value=\"Link Now\">";
echo "</form>";
exit;
}
echo "Starting Link Process - status follows:<br /><br />";
echo "Linking Process complete - status follows:<br /><br />";
// get the eval_scheme id and eval_schemes.assignto_project_when fields
$q=mysql_query("SELECT * FROM eval_schemes");
if (!q){

View File

@ -1,6 +1,4 @@
<?php
/* enable or replace this when front end code is added
if ($_SESSION['users_type'] =! 'committee'){
echo "Not Logged In!<br />";
@ -13,18 +11,18 @@ else
*/
echo "<h1>SFIAB Evaluations Plug-in</h1><br />";
echo "<a href=\"../../admin/index.php\">Return to SFIAB Admin </a><br />";
echo "<br />";
echo "<a href=\"index.php\">Evaluations Menu </a><br /><br />";
//echo "<br />";
//echo "<a href=\"index.php\">Evaluations Menu </a><br /><br />";
echo "<b>Process:</b><br />";
echo " * <a href=\"eval_link_sfiab.php\">Link Evaluations to SFIAB</a><br />";
echo " * <a href=\"eval_export.php\">Export Evaluations Data (Apperson Scanners data, etc.)</a><br />";
echo " * <a href=\"eval_webentry.php\">Evaluations Web Entry</a><br />";
echo " * <a href=\"eval_import.php\">Import Evaluation Data (Apperson Scanners)</a><br />";
echo " * <a href=\"eval_link_sfiab.php\">Link Evaluations to SFIAB</a> ";
echo " * <a href=\"eval_export.php\">Export Evaluations Data (Apperson Scanners data, etc.)</a> ";
echo " * <a href=\"eval_webentry.php\">Evaluations Web Entry</a> ";
echo " * <a href=\"eval_import.php\">Import Evaluation Data (Apperson Scanners)</a> ";
echo " * <a href=\"eval_calc_scores.php\">Calculate Scores</a><br />";
echo "<b>Setup and Help:</b><br />";
echo " * <a href=\"eval_schemes.php\">Create / Edit Schemes</a><br />";
echo " * <a href=\"eval_criteria.php\">Create / Edit Criteria</a><br />";
echo " * <a href=\"eval_levels.php\">Create / Edit Levels</a><br />";
echo " * <a href=\"eval_schemes.php\">Create / Edit Schemes</a> ";
echo " * <a href=\"eval_criteria.php\">Create / Edit Criteria</a> ";
echo " * <a href=\"eval_levels.php\">Create / Edit Levels</a> ";
echo " * <a href=\"docs/eval_help.html\">Documentation</a><br /><br />";
?>

View File

@ -21,7 +21,9 @@
Boston, MA 02111-1307, USA.
*/
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
<head><title>SFIAB Evaluations Schemes Editor</title>
<script language="javascript">
function confirmClick(msg)
{
@ -32,6 +34,8 @@ function confirmClick(msg)
return false;
}
</script>
</head>
<body>
<?php
include "sfiab_common.inc.php"; // check SFIAB install and get config etc.
include "eval_common.inc.php"; // check Evaluations setup and get eval_config
@ -161,7 +165,8 @@ echo "<h2>Schemes Editor</h2><br /><br />";
echo "</table>";
echo "</form>";
echo"You should assign the 'Scheme ID's in numerical order, starting with 1.";
echo "</body>";
echo "</html>";
// send_footer();
?>

View File

@ -43,6 +43,7 @@ if (($_FILES["file"]["type"] == "text/plain")
if ($_FILES["file"]["error"] > 0)
{
echo "File Selection / upload Error: Return Code: " . $_FILES["file"]["error"] . "<br />";
echo "<br /><br /><a href=\"eval_import.php\"> Return </a><br />";
exit;
}
else
@ -74,6 +75,7 @@ if (($_FILES["file"]["type"] == "text/plain")
fclose($fh);
// delete the file
unlink($filename);
echo "<br /><br /><a href=\"eval_import.php\"> Return </a><br />";
exit;
}
$row++;
@ -98,6 +100,7 @@ if (($_FILES["file"]["type"] == "text/plain")
fclose($fh);
// delete the file
unlink($filename);
echo "<br />Need to keep trying Ask Dennis to fix <br /><a href=\"eval_import.php\"> Return </a><br />";
exit;
}
if (mysql_num_rows($q) == 6){ // 6 criteria for each judgeteam-project is required to upload Apperson data
@ -138,6 +141,7 @@ if (($_FILES["file"]["type"] == "text/plain")
fclose($fh);
// delete the file
unlink($filename);
echo "<br /><br /><a href=\"eval_import.php\"> Return </a><br />";
exit;
}
}

View File

@ -25,7 +25,7 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Teams Evaluations Forms</title>
<title>SFIAB Evaluations Entry</title>
</head>
<body>
@ -33,6 +33,7 @@
include "sfiab_common.inc.php"; // check SFIAB install and get config etc.
include "eval_common.inc.php"; // check Evaluations setup and get eval_config
include "eval_menu_inc.php";
echo "<h2>Judges' Project Evaluations</h2><br /><br />";
/*
This is an evaluation form(s) for a team. Here the team can evaluate each project assigned to the team.
@ -46,81 +47,54 @@ This is an evaluation form(s) for a team. Here the team can evaluate each projec
* continue untill...
* Exit the page
*/
$newteam = false;
if($_POST['enter']=="evals") { // come here if have an evaluation entry for a given team and project
// get the values saved in the form.
$oktoupdate = true; // RFU
$project_id = $_POST['project_id']; // save in form
$project_num = $_POST['project_num']; // saved in form
$team_num = $_POST['team_num']; // saved in form
$judges_team_name = $_POST['team_name'];
$judges_teams_id = $_POST['team_id'];
/*
* for each possible critera for the project see if it was entered (will not be a POST entry if slection was made for the post)
* the posts have names CR_nnn where nnn is the criteria number. The values are the 'selected' level_id (stored in evals_projects_entries)
* if a selection, save it in the database if not set a flag not complete.
* return to the form
*/
$q = mysql_query("SELECT * FROM eval_projects WHERE project_id = '".$project_id."' ");
if (!$q OR mysql_num_rows($q) == 0){
// what to do here? Should not happen
}
while($r=mysql_fetch_object($q)) {
$scheme_id = $r->scheme_id;
}
$q = mysql_query("SELECT * FROM eval_criteria WHERE scheme_id = '".$scheme_id."' ");
if (!$q OR mysql_num_rows($q) == 0){
// what to do here? Should not happen
}
while($r=mysql_fetch_object($q)) {
// skip those that have criteria weight == 0 (compatibility with Apperson Scanner export/import)
if ($r->criteria_weight > 0){
$criteria_id = $r->criteria_id;
$postname= "CR_".$criteria_id;
if ($_POST[$postname]){
$value_id = $_POST[$postname];
// now save this one in the database
$status = mysql_query("UPDATE eval_projects_entries SET level_id = '".$value_id."' WHERE judges_teams_id = '".$judges_teams_id."' AND project_id = '".$project_id."' AND criteria_id = '".$criteria_id."' " );
// should work but need check if $status == false
}
}
}
}
if($_POST['selection']=="team_num") {
// Get some necessary information: Team_id, All projects (create dropdown list of projects)
$team_num = $_POST['team_num'];
$qstr_prjs = "SELECT judges_teams_timeslots_projects_link.`year`, judges_teams_timeslots_projects_link.judges_teams_id, judges_teams.num, ".
"judges_teams.name, projects.projectnumber, projects.floornumber, projects.title, projects.shorttitle, projects.`language` ".
"FROM judges_teams, judges_teams_timeslots_projects_link, projects ".
"WHERE judges_teams.id = judges_teams_timeslots_projects_link.judges_teams_id ".
"AND judges_teams_timeslots_projects_link.projects_id = projects.id ".
"AND judges_teams.num = '$team_num' ";
$qprjs=mysql_query($qstr_prjs);
if ($qprjs) {
$num_projects = mysql_num_rows($qprjs);
if ($num_projects > 0 ){
$cnt = 0;
while($rprjs=mysql_fetch_object($qprjs)) {
if($cnt == 0 ){
$judges_teams_id = $rprjs->judges_teams_id;
$judges_team_name = $rprjs->name;
$cnt = 1;
}
// create an array / fill in the dropdownbox
echo "<br />project number ".$rprjs->projectnumber." ".$rprjs->title."floor number=".$rprjs->floornumber;
}
if ($oktoupdate){
/*
* for each possible critera for the project see if it was entered (will not be a POST entry if slection was made for the post)
* the posts have names CR_nnn where nnn is the criteria number. The values are the 'selected' level_id (stored in evals_projects_entries)
* if a selection, save it in the database if not set a flag not complete.
* return to the form
*/
$q = mysql_query("SELECT * FROM eval_projects WHERE project_id = '".$project_id."' ");
if (!$q OR mysql_num_rows($q) == 0){
// what to do here? Should not happen
}
while($r=mysql_fetch_object($q)) {
$scheme_id = $r->scheme_id;
}
else{
// no projects assigned or incorrect team number.
}
}
$project_num = "";
echo "<br /> Enter one of the above listed project numbers<br />";
$q = mysql_query("SELECT * FROM eval_criteria WHERE scheme_id = '".$scheme_id."' ");
if (!$q OR mysql_num_rows($q) == 0){
// what to do here? Should not happen
}
while($r=mysql_fetch_object($q)) {
// skip those that have criteria weight == 0 (compatibility with Apperson Scanner export/import)
if ($r->criteria_weight > 0){
$criteria_id = $r->criteria_id;
$postname= "CR_".$criteria_id;
if ($_POST[$postname]){
$value_id = $_POST[$postname];
// now save this one in the database
$status = mysql_query("UPDATE eval_projects_entries SET level_id = '".$value_id."' WHERE judges_teams_id = '".$judges_teams_id."' AND project_id = '".$project_id."' AND criteria_id = '".$criteria_id."' " );
// should work but need check if $status == false
}
}
}
}
}
if($_POST['selection']=="project_num") {
// Create the evaluation form for this project - team combination
$project_num = $_POST['project_num']; // just entered or changed
$team_num = $_POST['team_num']; // saved in form
$judges_team_name = $_POST['team_name'];
$judges_teams_id = $_POST['team_id'];
if($_POST['enter']=="project_team" || $_POST['selection'] == "team_num") {
// Changed the project number and or team number
$team_num = $_POST['team_num'];
if ($_POST['prev_team_num'] != $team_num){
$newteam = true;
}
}
if ($team_num == 0)
{
@ -133,18 +107,63 @@ if ($team_num == 0)
echo "</body></html>";
exit;
}
// have a team number and a list if projects was presented. Get which project to work on.
if($project_num == 0){
echo "<br /> Have team number data: Number: ".$team_num." Id=",$judges_teams_id." name=".$judges_team_name."<br />";
echo "<form method=\"post\" action=\"eval_webentry.php\">";
echo "<input type=\"hidden\" name=\"selection\" value=\"project_num\" />";
// have a team number if get here next gets the selected project from the drop down list
if($_POST['project']){
$project_num = $_POST['project'];
}
if ($newteam) {
$project_num = 0;
}
//echo "<br /> Have team number data: Number: ".$team_num." Id=",$judges_teams_id." name=".$judges_team_name."<br />";
echo "<form id='form1' name='form1' method=\"post\" action=\"eval_webentry.php\">";
echo "<input type=\"hidden\" name=\"enter\" value=\"project_team\" />";
echo "<input type=\"hidden\" name=\"team_id\" value=\"$judges_teams_id\" />";
echo "<input type=\"hidden\" name=\"team_name\" value=\"$judges_team_name\" />";
echo "<input type=\"hidden\" name=\"prev_team_num\" value=\"$team_num\" />";
echo "<input type=\"hidden\" name=\"prev_project_num\" value=\"$project_num\" />";
echo "<table>";
echo "<tr><td>Team Number</td><td><input size=\"5\" type=\"text\" name=\"team_num\" value=\"$team_num\"></td><td> Reload form for new team! </td></tr>";
echo "<tr><td>Project Number</td><td><input size=\"5\" type=\"text\" name=\"project_num\" value=\"$project_num\"></td><td><input type=\"submit\" value=\"Enter Project Number\"></td></tr>";
echo "<tr><td>Team Number</td><td><input size=\"5\" type=\"text\" name=\"team_num\" value=\"$team_num\"></td></tr>";
//echo "<tr><td>Project Number</td><td><input size=\"5\" type=\"text\" name=\"project_num\" value=\"$project_num\"></td><td><input type=\"submit\" value=\"Enter Project Number\"></td></tr>";
echo "</table>";
echo "</form>";
$qstr_prjs = "SELECT judges_teams_timeslots_projects_link.`year`, judges_teams_timeslots_projects_link.judges_teams_id, judges_teams.num, ".
"judges_teams.name, projects.projectnumber, projects.floornumber, projects.title, projects.shorttitle, projects.`language` ".
"FROM judges_teams, judges_teams_timeslots_projects_link, projects ".
"WHERE judges_teams.id = judges_teams_timeslots_projects_link.judges_teams_id ".
"AND judges_teams_timeslots_projects_link.projects_id = projects.id ".
"AND judges_teams.num = '$team_num' ";
$qprjs=mysql_query($qstr_prjs);
if ($qprjs) {
$num_projects = mysql_num_rows($qprjs);
if ($num_projects > 0 ){
$cnt = 0;
//echo "<form>";
echo "<select name=\"project\"><br />";
while($rprjs=mysql_fetch_object($qprjs)) {
if($cnt == 0 ){
$judges_teams_id = $rprjs->judges_teams_id;
$judges_team_name = $rprjs->name;
$cnt = 1;
}
// fill in the dropdownbox
echo "<option value = \"".$rprjs->projectnumber."\" ";
if ($project_num == $rprjs->projectnumber) {
echo "selected=\"yes\"";
}
echo ">".$rprjs->projectnumber.": ".$rprjs->title."</option>";
//echo "<br />project number ".$rprjs->projectnumber." ".$rprjs->title."floor number=".$rprjs->floornumber;
}
echo "</select>";
echo " <input type=\"submit\" value=\"Select Project or Change Team\"><br />";
echo "</form>";
}
else{
// no projects assigned or incorrect team number.
}
}
if ($project_num == 0 ) { // if first selection of team number or if changed the team number.
echo "</body></html>";
exit;
}
@ -178,23 +197,8 @@ if (!$q OR mysql_num_rows($q) == 0){
echo "</body></html>";
exit;
}
echo "<form method=\"post\" action=\"eval_webentry.php\">";
echo "<input type=\"hidden\" name=\"selection\" value=\"project_num\" />";
echo "<input type=\"hidden\" name=\"team_id\" value=\"$judges_teams_id\" />";
echo "<input type=\"hidden\" name=\"team_name\" value=\"$judges_team_name\" />";
echo "<table>";
echo "<tr><td>Team Number</td><td><input size=\"5\" type=\"text\" name=\"team_num\" value=\"$team_num\"></td><td> Reload form for new team! </td></tr>";
echo "<tr><td>Project Number</td><td><input size=\"5\" type=\"text\" name=\"project_num\" value=\"$project_num\"></td><td><input type=\"submit\" value=\"Enter Project Number\">";
echo " (for now, enter -1 to select a different judge team)</td></tr>";
echo "</table>";
echo "</form>";
// At this point we have all the data necessary to create the entry form
// Get project information for display
//$qst = "SELECT projects.projectdivisions_id AS Expr1, projectdivisions.division, projectcategories.category, projects.title AS ptitle, ".
// "projects.shorttitle AS pshorttitle, projectcategories.category_shortform, projectdivisions.division_shortform, projects.language ".
// "FROM projects, projectcategories, projectdivisions ".
// "WHERE projects.projectcategories_id = projectcategories.id AND projects.projectdivisions_id = projectdivisions.id ".
// "AND projects.id = '".$project_id."'";
$qst = "SELECT projects.projectdivisions_id, projectdivisions.division, projectdivisions.division_shortform, projectcategories.category, ".
"projectcategories.category_shortform, projects.projectnumber, projects.floornumber, projects.title, projects.shorttitle, ".
"projects.`language`, eval_projects.scheme_id, eval_projects.team ".
@ -215,22 +219,24 @@ if ($q) {
$team = $r->team;
}
}
echo "<br /><b> Project Title: ".$ptitle."</b>";
echo "<br /> Project Category: ".$category;
echo "<br /><b>Current Evaluation is for:<br />";
echo " Team number: ".$team_num."<br />";
$IsTeam = "";
if ($team == "yes"){ $IsTeam = " (Team Project)";}
echo "<br /> Project Division: ".$division.$IsTeam;
echo "<br /> Language: ".$language;
echo " Project number: ".$project_num ." Title: ".$ptitle.$IsTeam."</b><br />";
echo " Project Category: ".$category."<br />";
echo " Project Division: ".$division."<br />";
echo " Language: ".$language."<br />";
// this is for test only at this time. will be used in the Apperson Scanner export and import.
// to create the file necessary to preslug the score forms.
// Barcode = 1 or 2 for team, 4 digits exn, 4 digits team number, 2 digits checksum?
$tempprnum = substr($project_num , 1);
if ( strlen($tempprnum) < 4 )
{
$tempprnum = "0".$tempprnum;
}
echo "<br /> Scanner Project number: ".$tempprnum;
echo "<break />";
//$tempprnum = substr($project_num , 1);
//if ( strlen($tempprnum) < 4 )
// {
// $tempprnum = "0".$tempprnum;
// }
//echo "<br /> Scanner Project number: ".$tempprnum;
echo "<br />";
$errors = 0;
$criteria_row = 0;
// First find the longest string in criteria and level names so the table will look nice