2 March, 2011
This is the second source code release of Ilios 2 - version 2.0.1b.
The change list of notables is maintained at the end of this file.
Please keep up to date, and feel free to contact us, via the Ilios 2 web site: http://www.iliosproject.org/ and the SourceForge forums for the project: https://sourceforge.net/projects/ilios2/forums
Thanks from the Ilios 2 Team.
---- UPGRADING FROM 2.0.0b -----
0. Backup your database.
1. Unpack the tar-ball contents to a new directory.
2. Copy over all files except the customized files crafted during your install of 2.0.0b - notably:
system/application/config/config.php
system/application/config/database.php
system/application/helpers/I2_url_helper.php
3. Note that the db_debug value has been changed from TRUE to FALSE in system/application/config/database.php as part of addressing bug #2.0.0b-40 -- change yours accordingly.
4. 'source' the _THIS_UPGRADE.sql file on your database.
--------- INSTALLATION ---------
The Ilios 2 server side code relies upon the following:
. Apache 2.2.3 or newer
. PHP 5.2.10 or newer, with mysqli support
. MySQL 5.0.77 or newer, with support for both InnoDB and MyISAM
. A Shibboleth authentication system which returns the authenticated user's unique email address via the 'mail' HTTP header field. See, also, 'SECURITY' below.
Ilios 2 uses the CodeIgniter framework and, as such, has its directory structure laid out in usual CodeIgniter structure.
The minimal steps to get an Ilios 2 deployment running are not that great and can be described as the following:
1. Copy the Ilios 2 release tar ball into the root directory of your web server (or whatever subdirectory you wish)
2. Unpack the tar ball
2a. Change ownership of the files appropriately. The following directories need to be able to be written to by your Apache process:
learning_materials
tmp_uploads
system/logs
3. Configure the following files to reflect your institution's name, appropriate URLs, and database attributes:
system/application/config/config.php
system/application/config/database.php
system/application/helpers/I2_url_helper.php
4. Construct and populate your database as described below
5. Point your web browser at the configuration assistant (this is very rough looking at the moment). The URL, if you installed your Ilios 2 to https://my.school.edu/an_install_directory/ would be: https://my.school.edu/an_install_directory/ilios2.php/configuration_assistant
6. Add at least one user via the 'Add an Ilios Course Director:' section; make
7. We suggest moving this file (located at system/application/controllers/configuration_assistant.php) out of the way before live deployment.
8. Turn on Shibboleth protection for your Ilios 2 deployment.
8. Ilios 2 should now be ready for use.
Construction and population of the database:
The database may be constructed by source-ing the table schema, stored procedures and stored functions SQL, or may be constructed and populated by source-ing the clean base database dump. Both methods require the database user to have permissions to create tables, procedures and functions.
This distribution includes a vanilla bare bones database population which you may choose to import to your MySQL database instance. This does a population of the MeSH universe from the 2010 MeSH XML, as well as things like the student role tables. This file, gzip'd, is in the root level 'database' directory and is named 'vanilla_base_ilios_2_db.sql.gz'.
If you choose not to do that, you can create the needed tables, stored procedures and stored functions via the SQL files:
database/ilios2_tables.sql
database/ilios2_stored.sql
once you've done this, you should populate the following tables appropriately (an example population exists in database/data_population):
`alert_change_type`
`competency`
`discipline`
`learning_material_status`
`learning_material_user_role`
`school`
`department`
`session_type`
`user_role`
lastly, you should download the MeSH XML of your choosing; ant compile the source code in ilios2_mesh_parser.tar.gz and run the resulting Java program against the XML file to populate your MeSH databases.
----------- SECURITY -----------
While there is support built in to allow an Ilios-only authentication system, it is turned off in this deployment as we deploy at UCSF using Shibboleth to provide authentication. Future distribution releases containing real documentation will describe how to more easily enable Ilios-only authentication; the more adventurous developer should look at system/application/controllers/authentication_controller.php as a starting point.
Additionally, to restate the installation step above: We suggest moving system/application/controllers/configuration_assistant.php out of the way before public deployment.
--------- KNOWN ISSUES ---------
. Navigating from one page to another in Firefox before the page load finishes causes Javascript exceptions that manifest themselves in the YUI library (but likely are birthed elsewhere).
---- CAVEATS TO DEVELOPERS -----
. A number of things depend on the Javascript 'thread' model (or lack thereof); should you be considering porting this code to a different language, please keep that in mind.
------------ THANKS ------------
The Ilios 2 Team would like to thank the UCSF School of Medicine and Office of Educational Technology for their support of this project.
------- VERSION CHANGES --------
version 2.0.1b
Among the items included in this release are a numerous minor UI modifications, including date standardization across the application, style tweaks and revisions, as well as the following major system fixes and enhancements:
New Features:
Management Console to allow for permissions assignment.
Provide granular control over the publishing workflow for courses and sessions with pre-publishing checklists.
Provide archiving controls to allow for the locking and filing of past curriculum.
Provide controls to allow for multi-school lists such as competency domains.
Major fixes:
#2.0.0b-16: Corrects a display issue where on initial page load after a calendar transaction, the session would display an incorrect number of associated offerings.
#2.0.0b-17: Corrects a bug where not all session learning objectives were visible if there were gaps in the competency/objective structure.
#2.0.0b-18: Corrects an error where changes in the course level were not saved.
#2.0.0b-19: Provides for the automatic rollover of program objective from one program year to the next.
#2.0.0b-20: Provides for the same one-click workflow of program objectives as exists for course/session.
#2.0.0b-30/36: Fix for an issue where learning materials failed to load to the server or associate with curricular data.
#2.0.0b-35: Corrects a display error for quotes encoding when copied from MS Word.
#2.0.0b-39: Corrects a labeling error on calendar display panel
#2.0.0b-40: Corrects an issue where in certain circumstances when using the recurring events tool, the system would generate an unresolved deadlock.
#2.0.0b-43: modify group selector tree to allow for multiple year selection.
#2.0.0b-xxx: increase in allowable course name length
#2.0.0b-45: address a timezone-related bug where, although the server data was correct, the client side was showing dates for events as the following day if the client machine's local clock was not in UTC
#2.0.0b-xxx: addresses a bug encountered when selecting competencies that are not trees