Inscriptio is a web-based system intended to help manage the reservation of carrels and other reservable library assets with defined locations.
- Ruby 1.9.3+ (2.x preferred)
- Bundler
- PostgreSQL 9.x+
- A webserver capable of interfacing with Rails applications. Ideally, Apache or Nginx with mod_passenger installed
- Linux or OSX
- ImageMagick
- In order to run the test suite, you will need to install PhantomJS (http://phantomjs.org/)
- Get code from: https://github.com/harvard-library/Inscriptio
- Run bundle install. You will probably have to install OS-vendor supplied libraries to satisfy some gem install requirements.
- Create the database and run
rake db:schema:load
, after modifying "config/database.yml" to suit your environment. - Create a .env file for your environment. Currently, the following variables are needed to run Inscriptio:
SECRET_TOKEN=30+charstringofrandomnessgottenfromrakesecretmaybe #Only needed in RAILS_ENV=production
DEVISE_SECRET_KEY=30+charstringDifferentFromAbove #Also only needed in RAILS_ENV=production
INSCRIPTIO_ROOT=my.inscriptio.host.com
INSCRIPTIO_MAIL_SENDER=email.address.for.mails@my.inscriptio.host.com
- Run bootstrap rake tasks:
rake inscriptio:bootstrap:run_all
rake inscriptio:cron_task:setup_crontab
This populates the instance with some necessary basic items, and creates several cron tasks which manage the reservation lifecyle and delete old posts from bulletin boards.
- Sign in as admin
- Create User Types
- Create School Affiliations
- Create library
- Create floors
- Create asset types
- Upload/create assets (for upload you will need floor and asset types ID's)
- Add assets to floor map (remember to hit 'Apply' button to save asset on map)
- Go to 'Reservation Notices' section and alter Notices as desired.
Deployment is beyond the scope of this README, and generally site-specific. There are example capistrano deployment files that reflect deployment practice at Harvard.
Some basic notes:
-
The example files are written with this environment in mind:
- Capistrano 3+
- A user install of RVM for ruby management
-
Arbitrary rake tasks can be run remotely via the
deploy:rrake
task. Syntax iscap $STAGE deploy:rrake T=$RAKE_TASK
. So, to runrake inscriptio:bootstrap
in theqa
deploy environment, do:cap qa deploy:rrake T=inscriptio:bootstrap
Additional development notes can be found here
While there's not currently generic user documentation, the Harvard Library's instance has user documentation, available here
If you've found a problem with Inscriptio, or have a suggestion for a feature, please create an issue. If you have a fix or enhancement that's general enough to be useful to someone else, please submit a pull request.
If you'd like to help improve Inscriptio, but aren't sure where to start, here are a few places we could really use some love:
- Unit tests (Everyone loves writing tests, right?)
- Making some of the presentation layer themeable (logo, colors, etc)
- Replacing NicEdit with something more modern
- Smarter handling of static content per instance (currently handled by the Message class) would be nice.
These are just the tip of the iceberg - there's plenty of work to go around ;-)
- Justin Clark: http://github.com/jdcc
- Daniel Collis-Puro: http://github.com/djcp
- Dave Mayo: http://github.com/pobocks
- Anita Patel: http://github.com/apatel
This application is released under a GPLv3 license.
2011 President and Fellows of Harvard College