The Kurogo Framework is a PHP based web application that can help institutions efficiently deliver campus services and information to a wide array of mobile devices. Based on the MIT Framework, this open source project provides a modular way to present mobile versions of various data sources in an extendable, customizable fashion.
At a high level, the Kurogo Framework includes:
- A mechanism for detecting device characteristics and displaying content best suited for that device
- A object oriented system for retrieving, parsing and displaying data from a variety of external sources
- A robust templating system that utilizes themeable reusable parts to easily construct consistent user interfaces
- A series of prebuilt, customizable modules for gathering directory, news and event information
- A system of authentication and authorization for controlling access to content and administrative functions
- Source on Github
- Framework Documentation
- Middlebury Demo Site
- Harvard Mobile Site
- MIT Mobile Site
- Mobile Bookmark Bubble
- Athletics Scoreboard
- Dining Menus
- Events Calendar
- Campus Map
- Course Catalog
- Course Hub
- MiddTube / MiddMedia
Icons and Graphics
Icons for new modules need to be provided in vector graphic form so that they can be saved out at multiple sizes and formats.
To create a new icon:
- Copy the path in Adobe Illustrator
- Create a new document in Adobe Photoshop twice as large as the resultant graphic with a transparent background.
- Paste the path into Photoshop, being sure to choose Path in the "Paste As" dialog.
- Select all of the path objects, right click and select Free Transform Path.
- Resize the graphic to fill the available space.
- Click the Paths tab.
- Right click Work Path in the Paths tab and select Fill Path, choose the appropriate color and click OK. Make sure Anti-Aliasing is selected.
- Choose Image Size from the Image menu and resize the graphic to the desired dimensions.
- Choose Save for Web and Devices from the File menu and use one of these two options:
- For PNGs, save as PNG-24 with Transparency
- For GIFs, save as GIF 128 No Dither with Transparency
Icons should be saved in the following paths with these image dimensions, file type and color. The word "module" in the File Name should be replaced with the name of the module.
|File Name||Dimensions||File Type||Color|
Additionally, these image files have been modified from the distribution to be Middlebury-specific:
Creating Your Development Site
- cd ~/public_html/
- git clone firstname.lastname@example.org:kurogo.git
- cd kurogo
- cp config/kurogo-default.ini config/kurogo.ini
- Edit config/kurogo.ini and set ACTIVE_SITE = “Middlebury"
- chmod -R 777 site/Middlebury
- cp /etc/httpd/conf.d/vhost-imcbride.conf /etc/httpd/conf.d/vhost-myname.conf
- emacs /etc/httpd/conf.d/vhost-myname.conf
- Edit the entry for mimcbride.middlebury.edu to a new virtual host for your development instance. Make sure to change the directory path and log file strings.
- service httpd restart
- Edit your HOSTS file to point the address for the virtual host you created in step 8 at chisel (22.214.171.124).
Edit only files in the site/Middlebury directory.
Use git push/pull to get updates of the Middlebury site as normal.
Fetching a New Version of the Kurogo Framework
- git checkout master
- git fetch kurogo
- git merge kurogo/master
Deploying a new site
These steps need to be applied to webtemplate, supersoaker, firehose, and watercannon.
- Set up the new instance of the code base
- cd /var/www/kurogo
- git clone email@example.com:kurogo.git site_name
- cd site_name
- git checkout site_name
- cp ../m.middlebury.edu/config/kurogo.ini config/
- mkdir site/Middlebury/cache
- chown -R apache:apache site/Middlebury/cache
- chown -R apache:apache site/Middlebury/data
- chown -R apache:apache site/Middlebury/logs
- Edit the server configuration
- Remove the section from /etc/httpd/conf.d/vhost.conf
- Add the section to /etc/httpd/conf.d/vhost-kurogo.conf
- Edit the deployment script
- Add the new site to /usr/local/bin/update_kurogo
Then restart apache on each server to bring up the new site.
This is based on setting a disabled modules cookie and a module order cookie. Any modules in the disabled modules cookie are not shown.
Site Customize Module
Our Site Customize Module adds additional functionality.
It uses a separate set of navigation modules from the home/module.ini file, portal_primary_modules and portal_secondary_modules as opposed to primary_modules and secondary_modules, for the portal version so separate default navigation modules can be specified from the mobile version.
It also uses the following additions to the home/module.ini file:
- "fixed_panels_1" and "fixed_panels_2" specify modules to appear at the tops of the two columns in the panel layout that are not customizable; you cannot toggle them on and off or reorder them.
- "panels_1" and "panels_2" specify the default panels to appear in the first and second columns of the two column panel layout. These are customizable.
- "available_panels" are all of the modules that are available to be enabled as panels. These will show up in addition to the default customizable panels as unchecked modules that can be checked and enabled for either or both of the two columns in the panel layout.