# drlippman/IMathAS

IMathAS Online Math Assessment
Switch branches/tags
Nothing to show
Latest commit 43b419a Sep 25, 2018
 Failed to load latest commit information. admin Sep 22, 2018 assessment Sep 26, 2018 course Sep 25, 2018 csrfp Aug 14, 2018 diag Aug 15, 2018 docs Jun 8, 2018 filestore Mar 27, 2013 filter Sep 15, 2018 forums Sep 22, 2018 i18n Sep 29, 2017 iconfonts Feb 16, 2018 img Jul 28, 2018 includes Sep 22, 2018 info Jun 8, 2018 javascript Sep 26, 2018 katex Aug 8, 2018 migrations Sep 12, 2018 msgs Sep 22, 2018 tests Jul 23, 2018 themes Aug 4, 2017 tinymce4 Jul 3, 2018 util Sep 22, 2018 vendor May 12, 2017 wikis Jul 4, 2018 .gitignore Jul 18, 2018 .htaccess Jul 5, 2018 DEembedq.php Jul 4, 2018 OEAembedq.php Jul 4, 2018 actions.php Sep 22, 2018 bltilaunch.php Sep 4, 2018 calcqtimes.php Jul 4, 2018 canvas.php Aug 30, 2017 canvasnav.php Jun 11, 2017 changelog.html Nov 3, 2009 checkbrowser.php Jun 8, 2018 codeception.yml Jun 21, 2018 composer.json Jun 21, 2018 composer.lock Jun 21, 2018 config.php.dist Jan 6, 2018 directaccess.php Sep 22, 2018 embedq.php Jul 4, 2018 firebase-messaging-sw.php Jun 11, 2017 footer.php Jul 4, 2018 forms.php Jul 4, 2018 gethomemenu.php Jun 5, 2018 getpostlist.php Jul 4, 2018 handheld.css Oct 20, 2017 header.php Aug 22, 2018 help.html Sep 24, 2018 help.php Jul 3, 2018 imas.css Aug 29, 2007 imascore.css Aug 8, 2018 imathasltiplan.txt Sep 18, 2009 index.php Aug 17, 2018 infoheader.php.dist Apr 5, 2007 infopages.css Dec 28, 2009 init.php Jul 3, 2018 init_without_validate.php Jun 9, 2017 install.php Jun 8, 2018 installexamples.php Jul 4, 2018 license.txt Mar 4, 2014 loginpage.php.dist Jun 4, 2017 ltihome.php Jul 4, 2018 ltisessionsetup.php Sep 29, 2017 migrator.php Sep 11, 2018 multiembedq.php Jul 4, 2018 newinstructor.php.dist Sep 22, 2018 pdochanges.md Sep 13, 2016 phpunit.xml May 12, 2017 plannedchanges.html Aug 30, 2011 readme.html Sep 13, 2016 setupdb.php Jul 4, 2018 upgrade.php Jul 4, 2018 upgrade.txt Nov 3, 2009 validate.php Aug 13, 2018 wamaphome.css Mar 2, 2007

<html>
<title>IMathAS</title>
<style type="text/css">
ul li {
margin-top: .3em;
}
ol li {
margin-top: .3em;
}
h1 {
color: #00f;
}
h2,h3,h4 {
color: #00c;
}
</style>
<body>
<h1>IMathAS</h1>
<p>The most recent version of the code is available on <a href="https://github.com/drlippman/imathas">GitHub</a></p>

<h3>What is IMathAS</h3>
<p>IMathAS is an Internet Mathematics Assessment System. It is primarily a
web-based math assessment tool for delivery and automatic grading of math homework
and tests. Questions are algorithmically generated and numerical and math expression
answers can be computer graded. Beyond that, IMathAS includes learning management tools,
including posting of announcements, text files, and attachments, as well as discussion
forums and a full gradebook. In postings and assessments, IMathAS allows accurate display
of math and graphs, with simple calculator-style math entry and point-and-click graph
creation.   It is most similar to (and inspired by) <a href="http://webwork.math.rochester.edu/">WebWork</a>
and <a href="http://wims.unice.fr/">WIMS</a>, and similar to commercial and publisher-produced systems
like iLrn, MathXL, WebAssign, etc.</p>

<p>IMathAS was written by <a href="http://www.pierce.ctc.edu/dlippman">David Lippman</a> (c) 2006-2014,
with with partial support from the
<a href="http://www.lumenlearning.com">Lumen Learning</a>,
<a href="http://www.sbctc.ctc.edu/College/_g-elchome.aspx">WA State E-Learning Council</a>, the
<a href="http://www.transitionmathproject.org/">Transition Math Project</a>, and
<a href="http://www.pierce.ctc.edu">Pierce College</a>.  It is distributed under
the <a href="http://www.gnu.org/copyleft/gpl.html">GPL</a>.  See the <a href="license.txt">license.txt</a> file distributed with IMathAS for more details
and credits for components attributed to others.</p>

<h3>Features</h3>
<h4>IMathAS was built on three primary philosophies:</h4>
<ul>
<li><b>Math</b>:  The system was designed for Math assessment; no effort was made for the system to be multi-purpose.</li>
<li><b>Sharing</b>:  The system was setup to encourage sharing of questions within a system and outside.  Questions are grouped into
question libraries, and are not tied directly to a specific assessment.  Unless marked Private, questions can be used by
anyone on the system, or used as a template for writing new questions.  Assessments and course setups can be copied
between users with permission.  Export and Import allows the
sharing of question sets between systems.  Also, macro libraries allow for the expansion of IMathAS's question language.
Users with expertise in a field can develop macro extensions, and share them with other users.</li>
<li><b>Ease of Install</b>:  The system uses standard PHP and MySQL.  It requires no special compilation options or installation
of external programs.</li>
</ul>

<h4>Core Features include:</h4>
<ul>
<li>Display:</li>
<ul>
<li>Rich Math and Graph display, using standards-based MathML and SVG, powered
by Peter Jipsen's <a href="http://www1.chapman.edu/~jipsen/svg/asciisvg.html">ASCIIsvg</a> and
<a href="http://www1.chapman.edu/~jipsen/mathml/asciimath.html">ASCIIMathML</a>, or using image fallbacks</li>
<li>Rich Text Editor with built-in Math and Graph support for text items displayed in a course and forum posts</li>
<li>Alternate display options for screenreaders and browsers without needed support</li>
</ul>
<li>Assessment:</li>
<ul>
<li>Question types including:</li>
<ul>
<li>Functions, with answers like "sin(x)"</li>
<li>Numbers, compared to a given tolerance</li>
<li>Calculated Numbers, like 5/3 or 2^5</li>
<li>Multiple-Choice</li>
<li>Matching</li>
<li>String</li>
<li>Essay (not computer graded)</li>
<li>Numerical Matrix</li>
<li>Calculated Matrix</li>
<li>Interval</li>
<li>Calculated Interval</li>
<li>N-tuples</li>
<li>Drawing / Graphing</li>
<li>Multipart</li>
</ul>
<li>Multiple display options and assessment settings, including an option for practice sets, and
due date exceptions for individual students</li>
<li>Algorithmically generated questions, with a relatively simple-to-use question language
(loosely based on PHP) with many built-in randomizers and display macros</li>
<li>Group assessments</li>
<li>Expandable question language, by installing additional macros</li>
</ul>
<li>Other Course Management Features:</li>
<ul>
<li>Post text items, uploaded files, or web links to the classroom</li>
<li>Discussion Forums, optionally gradable </li>
<li>Full gradebook with support for online and offline grades and flexible grading schemes</li>
</ul>
<ul>
<li>Flexible administration:  IMathAS can be centrally administered,
or teachers can be given rights to create their own courses</li>
<li>Teachers can be grouped by school or other division, with one or more group administrators</li>
<li>Courses can have one or more teachers</li>
</ul>
<li>Mash-ups:</li>
<ul>
<li>Support for <a href="http://www.imsglobal.org/toolsinteroperability2.cfm">LTI 1.1</a>, both as a consumer and producer</li>
</ul>
</ul>

<h4>Details</h4>
For details on how the system works, look over the <a href="help.html">Help File</a> or view
<a href="http://www.imathas.com/support.html">training and support</a> resources.

<h3>Why a new system</h3>
<p>You may be wondering why another system, when excellent systems already exist.</p>

<p>For my purposes, WebWork and WIMS were too difficult to install (since I don't have direct
access to my school's webserver).  I didn't want to use commercial or publisher produced systems
because I don't want students with used books to incur additional cost.</p>

<h3>Installation</h3>
<p>
<ol>
<li>Download IMathAS, extract it, and copy the files to your webserver.</li>
<li>Alternatively, if you have shell access to your server, enter the directory you want IMathAS in,
and checkout the code from SVN:  <i>svn checkout http://imathas.googlecode.com/svn/trunk/</i>.
Using SVN greatly simplifies upgrading.</li>
<li>If your web host requires that you create databases through the web panel, create a database
and database user for IMathAS now.  If you have a username/password with database
creation priviledges, you can wait and use it later in the install process.</li>
<li>Open a browser and access install.php.  This script will write the config.php file, change directory
permissions, copy distribution files, and set up the database.  At the end of the install you
will be given the opportunity to install a small set of example questions.  <i>Note</i>:
If you are running on a Windows server, you may need to set directory permissions manually.</li>
<li>Log into IMathAS.  If you didn't change the
initial imathas user settings when running install.php, log in as 'root' with password 'root'.
If you did not change the inital imathas user settings, click the "Change Password"
link now to change the password to something substantial.  Alternatively, you can
go into the Admin page, create a new user with Admin rights, then delete the 'root'
<li>Edit loginpage.php and infoheader.php if desired.  If you plan to use the new instructor account
request page, edit newinstructor.php</li>
</ol>
</p>

<p>
<ol>
<li>If you installed using SVN checkout, then run <i>svn update</i> to update the code files.</li>
<li>If you copied files to your webserver to install, copy the updated files to your server to overwrite the old ones.  It is
recommended that you <i>not</i> delete the original files first, or you will lose your configuration files and
and the database upgrade record file (upgradecounter.txt).</li>
<li><i>Note:</i> Several files (config.php, loginpage.php, newinstructor.php, and infoheader.php) were copied from corresponding
distribution files when you first installed, and will not be overwritten when you update, whether you follow method 1 or 2.</li>
<li>Log into your installation using an Administrator account, and access the /upgrade.php file to make any necessary
</ol>
</p>

<h3>Installation Issues/Troubleshooting</h3>
<p>
<ul>
<li>If you receive an 500 access error trying to access install.php, try deleting the .htaccess file in the
IMathAS root directory.  This file is used to give some advice to the web server about file compression
and file types, but could potentially cause problems depending on the server configuration</li>
<li>If you find graphics not displaying, make sure your PHP installation supports GD2.</li>
</ul>
</p>

<p>If you are upgrading from IMathAS 1.6 or later, access update.php to install any new database changes
and learn about any other changes necessary.  If you are upgrading from a version earlier
than 1.6, you'll need to manually apply changes from the upgrade.txt file.
</p>

<h3>System Requirements</h3>
<h4>Versions</h4>
<p>PHP 5 and MySQL 4+ are recommended, and required from some features.
Most of the system will work with PHP 4.2+
and MySQL 3.23, but future compatibility is not guaranteed.</p>
<p>PHP with GD2 and Freetype are recommended for best image-based graph support</p>
<p>IMathAS will <b>not work</b> with the suhosin extension for PHP, which disables the predictable random number generation IMathAS relies on.</p>

<h4>Server Requirements</h4>
<p>An installation serving 7000+ students
with 300+ concurrent users has operated well on a commercial shared web server.</p>

<h4>Security</h4>
<p>IMathAS uses a standard databased-stored sessions-based system.  If a user does
not log out, the session is cleared from database after 24 hours.</p>

<p>Questions (written by teachers) are passed through an interpreter that only allows
authorized functions to be used.  Student answers are evaluated client-side using
JavaScript, and are never evaled server-side.</p>

<h3>Install Notes</h3>
<p>
The install.php script automatically handles the following install steps.  They're
listed here in case anything goes wrong:
<ul>
<li>Change permissions (chmod) of the following directories to allow the webserver process
to write to the directories:
<ul>
<li>assessment/libs</li>
<li>assessment/qimages</li>
<li>course/files</li>
<li>filter/graph/imgs</li>
<li>filestore (if you're not using S3 for file storeage)</li>
</ul>
<br/>
<i>Note</i>: If you are running on a Windows server, you may need to set directory permissions manually. <br/>
<i>Note</i>: For security, the admin/import directory should not be web-readable.  A .htaccess file is included to
prevent access.  If your server doesn't obey .htaccess files, you may need to do additional tweaking. </li>
<li>Rename (in the main directory):
<ul>
<li>config.php.dist to config.php</li>
<li>newinstructor.php.dist to newinstructor.php</li>
</ul></li>
<li>Edit config.php.  Change these options to your liking:</li>
<ul>
<li>$dbserver: The address of your database server. Probably www.yoursite.edu or localhost</li> <li>$dbname:  The name of the IMathAS database</li>
<li>$dbusername: The username of the IMathAS database user.</li> <li>$dbpassword:  The password for the IMathAS database user.  Choose something really complicated</li>
<li>$installname: The name of your installation, for personalization.</li> <li>$longloginprompt:  How you want to prompt new students for a username</li>
<li>$loginprompt: How you want to prompt students for a username</li> <li>$loginformat:  Enforce a format requirement on the username</li>
<li>$emailconfirmation: If set to true, new users will have to respond to an email sent by the system before being able to enroll in any classes</li> <li>$sendfrom:  An email address to send confirmation and notification emails from.</li>
<li>$imasroot: The web root of the imathas install (ie, http://yoursite.edu$imasroot)</li>
<li>$mathimgurl: An absolute path or full url to a Mimetex CGI installation, for math image fallback</li> <li>$colorshift:  Whether icons should change colors as due date approaches.  I thought this was cute,
but others might find it annoying</li>
<li>$smallheaderlogo: Text or an HTML image tag for a small (120 x 80) logo to display at the top right of course pages</li> <li>$allownongrouplibs:  Whether non-admins should be allowed to create non-group libraries.
On a single-school install, set to true; for larger installs that plan to
use the Groups features, set to false</li>
<li>$allowcourseimport: Whether anyone should be able to import/export questions and libraries from the course page. Intended for easy sharing between systems, but the course page is cleaner if turned off.</li> <li>$allowmacroinstall:  Whether admins should be able to install macro files.  Macros files hold a large
security risk, and should only be installed from trusted sources.  For a single-admin system, it is
recommended that you leave this as false, and change it when you need to install a macro</li>
<li>$sessionpath: change the session file path different than the default. This is usually not necessary unless your site is on a server farm, or you're on a shared server and want more security of session data</li> <li>$enablebasiclti:  Set to true to enable use of IMathAS as a BasicLTI producer.</li>
<li>$AWSkey,$AWSsecret,$AWSbucket: To allow students and teachers to upload files through the text editor, and to enable file upload questions, this specifies an Amazon S3 key, secret, and bucket to use for file storage. Local storage is not yet implemented.</li> </ul> <li>Run the dbsetup.php script (access http://yoursite.edu$imasroot/dbsetup.php), or send it
to your system administrator and ask them to run it, if you don't have creation access
to the database server.  Alternatively, have your system administrator create a database and database user,
and use these names in the config.php file before running dbsetup.php.  This script sets up the necessary database user, database, and tables for IMathAS.</li>

</ul>
</p>
</body>
</html>