A repository Open Educational Resources with Search and Recommendations
JavaScript Ruby
Switch branches/tags
Nothing to show
Pull request Compare This branch is 25 commits ahead, 43 commits behind COSL:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



Folksemantic is a search,recommendation and social system for helping users engage with one another and content from OpenCourseware, the NSDL and various other repositories that focus on Open Educational Content.


Folksemantic requires a standard Ruby on Rails stack as well as a Java installation to function correctly. Detailed instructions on how to deploy Folksemantic including setting up ruby, ruby on rails, and java can be found in INSTALL.rdoc.

Setup global config

Copy config/global_config.yml.example to config/global_config.yml and edit it to reflect your application customized configurations.

Setup production environment

Copy config/environments/production.rb.example to config/environments/production.rb and edit `asset_host` in order to reflect the name of the production asset server.


An example file for Capistrano deployment can be found in config/deploy.example.rb. Copy that file to config/deploy.rb. This file was taken from an EngineYard example file and will need to be modified for your specific server configuration.

Install the required gems

All the gems are hosted on gemcutter so set it up first:

sudo gem install gemcutter

rake gems:install won't work because the gems are included in the project's Rakefile. Instead copy and paste the code below into your command line. It will take a while to install all the gems. I recommend getting a tasty beverage and surfing the net while you wait for this to complete.

sudo gem install will_paginate
sudo gem install authlogic
sudo gem install searchlogic
sudo gem install bcrypt-ruby
sudo gem install acts-as-taggable-on
sudo gem install paperclip
sudo gem install awesome_nested_set
sudo gem install friendly_id
sudo gem install sanitize
sudo gem install recaptcha
sudo gem install newrelic_rpm
sudo gem install feedzirra
sudo gem install tiny_mce
sudo gem install facebooker
sudo gem install action_mailer_tls
sudo gem install aasm
sudo gem install geokit
sudo gem install hoptoad_notifier
sudo gem install httparty -v0.4.5
sudo gem install oauth
sudo gem install oauth-plugin
sudo gem install babelphish
sudo gem install disguise
sudo gem install uploader
sudo gem install muck-engine
sudo gem install muck-solr
sudo gem install muck-feedbag
sudo gem install muck-raker
sudo gem install muck-services
sudo gem install muck-users
sudo gem install muck-activities
sudo gem install muck-comments
sudo gem install muck-profiles
sudo gem install muck-friends
sudo gem install muck-shares
sudo gem install muck-contents
sudo gem install muck-blogs
sudo gem install muck-invites
sudo gem install muck-oauth

Setup the database

Folksemantic requires a database installation. We recommend MySql, but the project should also work with PostGreSQL. Folksemantic has not been tested with other databases. Copy config/database.example.yml to database.yml. This file contains typical database settings but you might have to change them based on your local configuration.

Run the rake tasks needed to setup and populate the database:

rake db:create
rake db:migrate
rake muck:db:populate
rake muck:services:db:populate
rake muck:services:db:bootstrap_services
rake muck:services:db:create_global_feeds_aggregation

If you are running these tasks on the production server you will need to add 'RAILS_ENV=production'

rake db:create RAILS_ENV=production
rake db:migrate RAILS_ENV=production
rake muck:db:populate RAILS_ENV=production
rake muck:services:db:populate RAILS_ENV=production
rake muck:services:db:bootstrap_services RAILS_ENV=production
rake muck:services:db:create_global_feeds_aggregation RAILS_ENV=production

Create a default admin user.

rake muck:users:create_admin

Then sign in to the application with:

username: admin
password: asdfasdf

If you run this task on a production server be sure to change the password.

Setup New Relic

By default folksemantic uses New Relic to monitor website performance. config/newrelic.yml.example to config/newrelic.yml and get a get from www.newrelic.com. You might also want to use their install instructions to ensure you have the latest yml file

Where to Go Next

Now that the system is installed you can start harvesting feeds and customizing the UI.

Start solr

rake solr:start

or on production:

rake solr:start RAILS_ENV=production

Start the aggregation and recommendation system

rake muck:raker:start

or on production:

rake muck:raker:start RAILS_ENV=production

Add default feeds

You can add a set of default feeds that represent the OCW and OER community. Do this by running:

rake muck:services:db:bootstrap

Start up the harvesting and recommendation system:

rake muck:raker:start

Output will be logged to:

log/raker.log file

Stop the system with:

rake muck:raker:stop


Folksemantic provides the 'disguise' theme engine so that the interface can be customized based on themes.

Generate a new theme for your Rails application using the built in theme generator:

./script/generate theme theme_name

Disguise can run in two modes. The first is the default which let’s an administrator set the current theme via the built in admin interface. The second looks at the url of the incoming request and matches it to a theme. To enable this second mode create an initializer in /config/initializers/disguise.rb and enter the following contents:

Disguise::USE_DOMAIN_FOR_THEMES = true

Configure languages for subdomains