Download Latest Version ilios2_distribution_20120927.tar.gz (12.4 MB)
Email in envelope

Get an email when there's a new version of ilios 2 curriculum management system

Home / Application code / Release_20110121
Name Modified Size InfoDownloads / Week
Parent folder
ilios2_distribution_20110121.tar.gz 2011-01-21 11.8 MB
readme 2011-01-21 7.5 kB
Totals: 2 Items   11.8 MB 0
21 January, 2011

This is the initial source code release of Ilios 2.


This release has been done to give brave early adopters a chance to become familiar with the installation and code that makes up Ilios 2. In the near-term there will be re-distributions featuring improvements listed below in the section 'SHORT FUTURE'; similarly, there is an agenda detailed below in the section 'FUTURE' which describes what the downloader may expect in medium-term releases.

As a rough estimate, not including third party frameworks code, this release contains around 50,000 lines of PHP and Javascript (nearly 54,000 if one does a strict 'wc -l' of all non-third-party PHP and Javascript files in system/application/controllers, system/application/models and system/application/views). There is also around 1000 lines of Java code for the MeSH digester; this is included as a tarball at the root level 'other_ilios2_source' directory and is named "ilios2_mesh_parser.tar.gz".


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.


--------- 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 of the the authentication controller file for the Ilios 2 deployment. For example, assuming the install example in (5.) above, your Location block in your /etc/httpd/conf.d/shib.conf would look like:
			<Location /an_install_directory/ilios2.php/authentication_controller>
			  AuthType shibboleth
			  ShibRequestSetting requireSession 1
			  require valid-user
			</Location>
	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.



--------- SHORT FUTURE ---------

What's on our plate to deliver through these distributions in the short term:
	. Better documentation in the form of
		. more code comments (which are presently volumetrically sparse)
		. architecture design documents
		. a guide to the I18N aspects of Ilios 2
		. a guide to the Ilios-only authentication system
	. Bug fixes
	. A deployment / minified version of the Javascript code
	. Clean out the useless / redundant YUI assets in the deployment



------------ FUTURE ------------

What's on our plate to deliver in the mid-term time horizon:
	. Address issues of closure in Javascript
	. Moving more of the instructor group selection functionality into the frameworks
	. Moving more of the competency picker functionality into frameworks (for example, there's identical code in PM and home)
	. Moving the common recurring-event related code into frameworks
	. Completely end the inherited practice of Javascript code that creates HTML instead of DOM elements
	. Allow a way to specify the primary school ID on user adds - presently all users have the primary school id of 1
	. Have the Learning Objects Repository code be more plug-and-play-able
	. Standardize the usage of onclick v. event listener assignment
	. Move as much repetitive DOM element styling into CSS usage
	. An architecture re-review.



--------- 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.

Source: readme, updated 2011-01-21