[[!meta title="Machine Booking System (mbs)"]]

The machine booking system allows users of the ETH Zurich to book machines.
It could be easily adjusted to support other institutions, with or without
LDAP authentication.


## Screenshots!

 * [booking overview](screenshots/booking-overview-screenshot-20101002.png "Overview of bookings")
 * [booking successful](screenshots/booking-successful-screenshot-20101002.png "Booking successful")
 * [booking error](screenshots/booking-error-screenshot-20101002.png "Booking error")
 * [free machines](screenshots/free-machines-screenshot-20101002.png "Free machines")
 * [used machines](screenshots/used-machines-screenshot-20101002.png "Used machines")
 * [admin view](screenshots/admin-screenshot-20101002.png "Admin view")

## Installation

### Get mbs

    git clone git://git.schottelius.org/mbs

Mirrors (all should be up-to-date):
   
   * git://github.com/telmich/mbs.git
   * git://git.sans.ethz.ch/mbs


### Requirements

To get mbs up and running, you need ruby and rails and the gems specified
in the Gemfile. You may use [rvm](http://rvm.beginrescueend.com/)
to assist you, like the following commandline:

    rvm install ruby-1.8.7
    rvm ruby-1.8.7
    rvm gemset create mbs
    rvm ruby-1.8.7@mbs
    gem install bundler
    cd mbs/
    bundle install
 
### Initialise Database

    cd mbs
    rake db:setup 

You can also use

    rake bootstrap

to add some example data.

## Setup

After mbs is up and running, you need to setup some basic data, before
you can actually use it.

### Authentication

The authentication part is defined in
**app/controllers/application_controller.rb** and currently bound to
Nethz-LDAP-Authentication, but can easily be adopted to other
systems.

The nethz method uses the input username and password and binds to
**ldaps02.ethz.ch** (most reliable). If that succeeds, the username
is copied into the database, to create an id.

### Machines types

mbs is heavily focussed on machine types. So the first thing is to
select ***admin => machine types => new machine type*** and  create
a new machine type with a number of associated machines.

## Usage

Now you are ready to use mbs!

### Bookings

After you are authenticated, you can create bookings,
select **new booking**.

### Admin

The admin area is accessable for everybody, because everybody
authenticated is trusted. It is reachable below **/admin**,
but not linked, because it may confuse users.

[[!tag eth]]