/README.md

https://github.com/xiongchiamiov/IMathAS · Markdown · 354 lines · 228 code · 126 blank · 0 comment · 0 complexity · b57a3f30c28a64197eca79634a743fa7 MD5 · raw file

  1. # IMathAS
  2. Version: 1.8. Released November 9, 2009
  3. See [Change Log][1] for detailed change history. The
  4. most recent version of the code is available via SVN at [Google Code][2]
  5. [1]: changelog.md
  6. [2]: http://code.google.com/p/imathas/
  7. ### What is IMathAS
  8. IMathAS is an Internet Mathematics Assessment System. It is primarily a web-
  9. based math assessment tool for delivery and automatic grading of math homework
  10. and tests. Questions are algorithmically generated and numerical and math
  11. expression answers can be computer graded. Beyond that, IMathAS includes
  12. learning management tools, including posting of announcements, text files, and
  13. attachments, as well as discussion forums and a full gradebook. In postings
  14. and assessments, IMathAS allows accurate display of math and graphs, with
  15. simple calculator-style math entry and point-and-click graph creation. It is
  16. most similar to (and inspired by) [WebWork][2] and [WIMS][3], and similar to
  17. commercial and publisher-produced systems like iLrn, MathXL, WebAssign, etc.
  18. [2]: http://webwork.math.rochester.edu/
  19. [3]: http://wims.unice.fr/
  20. IMathAS was written by [David Lippman][4] (c) 2006-2009, with with partial
  21. support from the [WA State E-Learning Council][5], the [Transition Math
  22. Project][6], and [Pierce College][7]. It is distributed under the [GPL][8].
  23. See the [license.txt][9] file distributed with IMathAS for more details and
  24. credits for components attributed to others.
  25. [4]: http://www.pierce.ctc.edu/dlippman
  26. [5]: http://www.sbctc.ctc.edu/College/_g-elchome.aspx
  27. [6]: http://www.transitionmathproject.org/
  28. [7]: http://www.pierce.ctc.edu
  29. [8]: http://www.gnu.org/copyleft/gpl.html
  30. [9]: license.txt
  31. ### Features
  32. #### IMathAS was built on three primary philosophies:
  33. * **Math**: The system was designed for Math assessment; no effort was made
  34. for the system to be multi-purpose.
  35. * **Sharing**: The system was setup to encourage sharing of questions within
  36. a system and outside. Questions are grouped into question libraries, and are
  37. not tied directly to a specific assessment. Unless marked Private, questions
  38. can be used by anyone on the system, or used as a template for writing new
  39. questions. Assessments and course setups can be copied between users with
  40. permission. Export and Import allows the sharing of question sets between
  41. systems. Also, macro libraries allow for the expansion of IMathAS's question
  42. language. Users with expertise in a field can develop macro extensions, and
  43. share them with other users.
  44. * **Ease of Install**: The system uses standard PHP and MySQL. It requires
  45. no special compilation options or installation of external programs.
  46. #### Core Features include:
  47. * Display:
  48. * Rich Math and Graph display, using standards-based MathML and SVG,
  49. powered by Peter Jipsen's [ASCIIsvg][10] and [ASCIIMathML][11], or using image
  50. fallbacks
  51. * Rich Text Editor with built-in Math and Graph support for text items
  52. displayed in a course and forum posts
  53. * Alternate display options for screenreaders and browsers without needed
  54. support
  55. [10]: http://www1.chapman.edu/~jipsen/svg/asciisvg.html
  56. [11]: http://www1.chapman.edu/~jipsen/mathml/asciimath.html
  57. * Assessment:
  58. * Question types including:
  59. * Functions, with answers like "sin(x)"
  60. * Numbers, compared to a given tolerance
  61. * Calculated Numbers, like 5/3 or 2^5
  62. * Multiple-Choice
  63. * Multiple-Answer
  64. * Matching
  65. * String
  66. * Essay (not computer graded)
  67. * Numerical Matrix
  68. * Calculated Matrix
  69. * Interval
  70. * Calculated Interval
  71. * N-tuples
  72. * Drawing / Graphing
  73. * File Upload
  74. * Multipart
  75. * Multiple display options and assessment settings, including an option
  76. for practice sets, and due date exceptions for individual students
  77. * Algorithmically generated questions, with a relatively simple-to-use
  78. question language (loosely based on PHP) with many built-in randomizers and
  79. display macros
  80. * Group assessments
  81. * Expandable question language, by installing additional macros
  82. * Other Course Management Features:
  83. * Post text items, uploaded files, or web links to the classroom
  84. * Discussion Forums, optionally gradable
  85. * Full gradebook with support for online and offline grades and flexible
  86. grading schemes
  87. * Administration:
  88. * Flexible administration: IMathAS can be centrally administered, or
  89. teachers can be given rights to create their own courses
  90. * Teachers can be grouped by school or other division, with one or more
  91. group administrators
  92. * Courses can have one or more teachers
  93. * Mash-ups:
  94. * Experimental support for [BasicLTI][12], both as a consumer and producer
  95. * Google gadget for listing messages and forum posts
  96. [12]: http://www.imsglobal.org/community/forum/categories.cfm?catid=44
  97. #### Details
  98. For details on how the system works, look over the [Help File][13] or view
  99. [training and support][14] resources.
  100. [13]: help.html
  101. [14]: http://www.imathas.com/support.html
  102. ### Why a new system
  103. You may be wondering why another system, when excellent systems already exist.
  104. For my purposes, WebWork and WIMS were too difficult to install (since I don't
  105. have direct access to my school's webserver). I didn't want to use commercial
  106. or publisher produced systems because I don't want students with used books to
  107. incur additional cost.
  108. ### Installation
  109. 1. Download IMathAS, extract it, and copy the files to your webserver.
  110. 2. Alternatively, if you have shell access to your server, enter the
  111. directory you want IMathAS in, and checkout the code from SVN: _svn checkout
  112. http://imathas.googlecode.com/svn/trunk/_. Using SVN greatly simplifies
  113. upgrading.
  114. 3. If your web host requires that you create databases through the web
  115. panel, create a database and database user for IMathAS now. If you have a
  116. username/password with database creation priviledges, you can wait and use it
  117. later in the install process.
  118. 4. Open a browser and access install.php. This script will write the
  119. config.php file, change directory permissions, copy distribution files, and
  120. set up the database. At the end of the install you will be given the
  121. opportunity to install a small set of example questions. _Note_: If you are
  122. running on a Windows server, you may need to set directory permissions
  123. manually.
  124. 5. Log into IMathAS. If you didn't change the initial imathas user settings
  125. when running install.php, log in as 'root' with password 'root'. If you did
  126. not change the inital imathas user settings, click the "Change Password" link
  127. now to change the password to something substantial. Alternatively, you can go
  128. into the Admin page, create a new user with Admin rights, then delete the
  129. 'root' admin.
  130. 6. Edit loginpage.php and infoheader.php if desired. If you plan to use the
  131. new instructor account request page, edit newinstructor.php
  132. ### Installation Issues/Troubleshooting
  133. * If you receive an 500 access error trying to access install.php, try
  134. deleting the .htaccess file in the IMathAS root directory. This file is used
  135. to give some advice to the web server about file compression and file types,
  136. but could potentially cause problems depending on the server configuration
  137. ### Upgrading
  138. If you are upgrading from IMathAS 1.6 or later, access update.php to install
  139. any new database changes and learn about any other changes necessary. If you
  140. are upgrading from a version earlier than 1.6, you'll need to manually apply
  141. changes from the upgrade.txt file.
  142. ### System Requirements
  143. #### Versions
  144. PHP 5 and MySQL 4+ are recommended, and required from some features. Most of
  145. the system will work with PHP 4.2+ and MySQL 3.23, but future compatibility is
  146. not guaranteed.
  147. PHP with GD2 and Freetype are recommended for best image-based graph support
  148. #### Server Requirements
  149. An installation serving 3500+ students with 100+ concurrent users has operated
  150. well on a commercial shared web server.
  151. #### Security
  152. IMathAS uses a standard databased-stored sessions-based system. If a user does
  153. not log out, the session is cleared from database after 24 hours.
  154. Questions (written by teachers) are passed through an interpreter that only
  155. allows authorized functions to be used. Student answers are evaluated client-
  156. side using JavaScript, and are never evaled server-side.
  157. ### Install Notes
  158. The install.php script automatically handles the following install steps.
  159. They're listed here in case anything goes wrong:
  160. * Change permissions (chmod) of the following directories to allow the
  161. webserver process to write to the directories:
  162. * assessment/libs
  163. * assessment/qimages
  164. * admin/import
  165. * course/files
  166. * filter/graph/imgs
  167. > <i>Note<i>: If you are running on a Windows server, you may need to set
  168. directory permissions manually.
  169. > <i>Note<i>: For security, the admin/import directory should not be web-
  170. readable. A .htaccess file is included to prevent access. If your server
  171. doesn't obey .htaccess files, you may need to do additional tweaking.
  172. * Rename (in the main directory):
  173. * config.php.dist to config.php
  174. * infoheader.php.dist to infoheader.php
  175. * loginpage.php.dist to loginpage.php
  176. * newinstructor.php.dist to newinstructor.php
  177. * Edit config.php. Change these options to your liking:
  178. * $dbserver: The address of your database server. Probably
  179. www.yoursite.edu or localhost
  180. * $dbname: The name of the IMathAS database
  181. * $dbusername: The username of the IMathAS database user.
  182. * $dbpassword: The password for the IMathAS database user. Choose
  183. something really complicated
  184. * $installname: The name of your installation, for personalization.
  185. * $longloginprompt: How you want to prompt new students for a username
  186. * $loginprompt: How you want to prompt students for a username
  187. * $loginformat: Enforce a format requirement on the username
  188. * $emailconfirmation: If set to true, new users will have to respond to an
  189. email sent by the system before being able to enroll in any classes
  190. * $sendfrom: An email address to send confirmation and notification emails
  191. from.
  192. * $imasroot: The web root of the imathas install (ie, http://yoursite.edu
  193. $imasroot)
  194. * $mathimgurl: An absolute path or full url to a Mimetex CGI installation,
  195. for math image fallback
  196. * $colorshift: Whether icons should change colors as due date approaches.
  197. I thought this was cute, but others might find it annoying
  198. * $smallheaderlogo: Text or an HTML image tag for a small (120 x 80) logo
  199. to display at the top right of course pages
  200. * $allownongrouplibs: Whether non-admins should be allowed to create non-
  201. group libraries. On a single-school install, set to true; for larger installs
  202. that plan to use the Groups features, set to false
  203. * $allowcourseimport: Whether anyone should be able to import/export
  204. questions and libraries from the course page. Intended for easy sharing
  205. between systems, but the course page is cleaner if turned off.
  206. * $allowmacroinstall: Whether admins should be able to install macro
  207. files. Macros files hold a large security risk, and should only be installed
  208. from trusted sources. For a single-admin system, it is recommended that you
  209. leave this as false, and change it when you need to install a macro
  210. * $sessionpath: change the session file path different than the default.
  211. This is usually not necessary unless your site is on a server farm, or you're
  212. on a shared server and want more security of session data
  213. * $mathchaturl: a URL to the live chat server. Leave unchanged to use the
  214. local install's server. Comment out to disable the chat server. You can also
  215. use a different install to offload chat on a different server
  216. * $enablebasiclti: Set to true to enable use of IMathAS as a BasicLTI
  217. producer.
  218. * $AWSkey,$AWSsecret,$AWSbucket: To allow students and teachers to upload
  219. files through the text editor, and to enable file upload questions, this
  220. specifies an Amazon S3 key, secret, and bucket to use for file storage. Local
  221. storage is not yet implemented.
  222. * Run the dbsetup.php script (access http://yoursite.edu
  223. $imasroot/dbsetup.php), or send it to your system administrator and ask them
  224. to run it, if you don't have creation access to the database server.
  225. Alternatively, have your system administrator create a database and database
  226. user, and use these names in the config.php file before running dbsetup.php.
  227. This script sets up the necessary database user, database, and tables for
  228. IMathAS.