The Course-Catalog is a web front-end for searching and browsing course information stored in Ellucian Banner.
coursecatalog/bin/update-from-banner.php
)coursecatalog/bin/update-from-banner.php
)coursecatalog/bin/build_indices.php
)Examples of the the Course-Catalog in action at Middlebury College:
Schedule Planner - Screen-shots and more information about the schedule-planner.
These instructions assume that you have a POSIX machine running Apache with PHP 7.0 or later.
In a non-web-accessable directory, clone the course-catalog repository:
git-clone https://github.com/middlebury/coursecatalog.git
cd into the new coursecatalog/
directory and fetch the submodules (osid-phpkit, ZendFramework, etc):
cd coursecatalog
git-submodule update --init --recursive
Make a symbolic link to the coursecatalog/docroot/
directory in a web-accessible directory or add a virtualhost rooted in the coursecatalog/docroot/
directory.
Create a MySQL database for the catalogs data and a cache of Banner data.
Make copies of the example config files at configuration.plist
, frontend_config.ini
, and update_config.ini
and edit values to match your environment.
Create the database tables defined in application/library/banner/course/sql/table_creation.sql
Run the script at bin/update-from-banner.php
to dump Banner data into the the MySQL database:
php bin/update-from-banner.php
php bin/build_indices.php
Most of the Course Catalog OSID API is covered by PHPUnit tests. To run these tests:
application/test/banner/configuration.plist
and enter your database configuration parameters.phpunit application/test/TestSuite.php
The implementation of this system is layered such that the Web UI code is separated from the data model. The data model is an implementation of the Open Knowledge Initiative (O.K.I.) Open Service Interface Definition (OSID) for Course information, the Course OSID (detailed doc). Because of this structure, it is possible for other institutions to modify the data model (the OSID implementation) so as to use the same UI code against different data sources, be they different Banner implementations or alternative systems. See also OSID Usage.