Need help with reservations?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

YaleSTC
127 Stars 55 Forks MIT License 4.4K Commits 176 Opened issues

Description

Manage equipment loans & reservations. Who can borrow what, for how long?

Services available

!
?

Need anything else?

Contributors list

# 366,078
Elixir
Shell
Rails
HTML
855 commits
# 507,337
HTML
Shell
golang
card-ga...
678 commits
# 203,021
C
C++
debian
Ubuntu
219 commits
# 593,194
HTML
CSS
Shell
212 commits
# 641,494
HTML
CSS
Shell
148 commits
# 679,789
HTML
CSS
Shell
112 commits
# 514,180
HTML
CSS
Shell
78 commits
# 297,756
Ember
Electro...
Markdow...
applesc...
71 commits
# 91,730
Ruby
notific...
Rails
Less
57 commits
# 3,523
Atom
Electro...
Less
css-fra...
57 commits
# 709,965
HTML
CSS
Shell
54 commits
# 725,782
HTML
CSS
Shell
50 commits
# 765,707
HTML
CSS
Shell
21 commits
# 3,550
Java
docker-...
Maven
Gradle
20 commits
# 742,400
HTML
CSS
Shell
15 commits
# 771,580
HTML
CSS
Shell
11 commits
# 685,856
HTML
CSS
Shell
9 commits
# 771,276
HTML
CSS
Shell
5 commits
# 790,751
HTML
CSS
Shell
5 commits
# 791,498
HTML
CSS
Shell
4 commits

THIS PROJECT HAS MOVED

This project has moved to https://gitlab.com/yale-sdmp/reservations. Please visit that repo for the latest releases and to report issues. This repository will no longer be monitored.

Welcome to Reservations

Build Status Code Climate Test Coverage Dependency Status Inline docs

Deploy

Reservations makes it easy to manage the checking in and out of equipment, much like a library! Here are some of the things Reservations can do:

  • manage your inventory of equipment, including storing serial numbers, manuals and other documents, and more.
  • present an attractive catalog of equipment, including pictures, so people can browse and search your equipment.
  • allow people to reserve equipment in advance, according to rules you set.
  • enforce rules on who can reserve what equipment, and for how long.
  • manage checking in/out equipment, including unique checklists for each item.

Getting Started

There are two mains steps to setting up Reservations: setting up a deployment server, and installing the Reservations application.

Prerequisites

You'll need the following to run Reservations: * Ruby 2.3 * Bundler * a database server (MySQL or any database supported by Rails) * ImageMagick * GhostScript * a CAS authentication system (optional)

Installation

For troubleshooting, see our wiki.

First, checkout a copy of Reservations using git:

cd /your/code/directory
git clone https://github.com/YaleSTC/reservations.git
cd reservations

Reservations uses Bundler to manage dependencies, so if you don't have it, get it, then install dependencies:

gem install bundler
bundle install

You'll need to edit config/database.yml to point to your database, including the correct username and password. See Rails Guides for common database examples. We package a few example files in the

config/
folder for Ubuntu, Fedora, and OS X.

Then, create the database and load the database structure:

rake db:create
rake db:schema:load

Finally, start the app locally:

rails server

Just point your browser to

localhost:3000
to use Reservations.

Deploying to a Server

Reservations is built using Ruby on Rails, and can be set up (deployed) like most Rails apps. You'll need a server running with the following software:

  • Ruby 2.1
  • database server (MySQL is preferred, but any database supported by Rails should work, including PostgreSQL)
  • web server (apache or nginx both work well)
  • Rails application server (usually Passenger Phusion aka mod_rails)

For a general guide to setting up your web and application servers, including hosting providers, see the Rails Deployment Guide. For a guide to using our Capistrano deployment script, see the wiki. For a guide to deploying Reservations to Heroku, see the wiki as well.

Configuration

Reservations uses environment variables for configuration (following the principles of the Twelve-Factor App). The gems

dotenv
and
dotenv-deployment
can be used to simulate system environment variables at runtime.

In the

development
and
test
Rails environments, most of the configuration is set in the
config/secrets.yml
file. IMPORTANT You should copy the
config/secrets.yml
file and regenerate all of the secret keys / tokens using
rake secret
. You should also copy over the
config/database.yml.example.*
file relevant to your platform and follow the instructions linked to above to set up your database.

In

production
, the
config/database.yml.example.production
should be used as it will refer to the relevant environment variables. Additionally, you must define most of the configuration environment variables listed here in order for Reservations to work.

Developing with Docker

To develop this app locally with Docker, 1. Copy

.env.dev.template
to
.env
. See
.env.example
for a full list of available environment variables. 2. Copy
config/database.development.yml
to
config/database.yml
. 3. Run
docker-compose up -d
. 4. On initial setup, run
docker-compose run web bin/setup
.

To develop locally without Docker: 1. Copy

.env.example
to
.env
. 2. Copy
config/database.local.yml
to
config/database.yml
. 3. Run rake db:create and rake db:schema:load

Authentication

By default, Reservations uses e-mail addresses and passwords to authenticate users with the

devise
gem. It also supports the CAS authentication system, using the gem
devise_cas_authenticatable
. If you want to use CAS authentication you must set the

CAS_AUTH
and
CAS_BASE_URL
environment variables to the appropriate values (see here for more details). Switching between authentication methods after initial setup is possible with some caveats (see our wiki for more details).

To point the gem to the correct CAS server in the development and test Rails environments, modify the following setting in your app's

config/secrets.yml
file (see above):
yaml
  cas_base_url: https://secure.its.yale.edu/cas/
Change the
cas_base_url
parameter to your CAS server's base URL; also note that many CAS servers are configured with a base URL that looks more like “cas.example.com/cas”.

Time Zone

Reservations ships with the default config time set to Eastern Time (US and Canada). To change the time, edit

config/application.rb
config.time_zone = 'Eastern Time (US & Canada)'
.

Further Documentation

  • Administrators and end-users may like to review our help documentation.
  • IT System Administrators and developers interested in deploying or getting involved with Reservations can find information on our project wiki

Suggestions and Issues

If you have any suggestions, or would like to report an issue, please either: * Create an issue for this repository on Github * or, if you don't have a GitHub account, use our issue submission form

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.