Coder Social home page Coder Social logo

roomme's Introduction

RoomMe

WVU Libraries' Room Reservations Software

Room Reservations provides a robust, secure, and highly configurable room reservation software platform that can handle the requirements multiple buildings, rooms, and policies with a single installation.

Requirements:

Room Reservations has only been tested on Linux, running Apache, PHP, and MySQL. Room Reservations uses the EngineAPI Framework, version 4.

Testing:

We have provided a vagrant setup to test Room Reservations locally. Install Vagrant, change to the directory where you cloned this repository and type "vagrant up" on your command line.

To view the system as an unauthenticated patron, go to localhost:8090/services/rooms/.

To authenticate, we have provided a script that will authenticate you to the local vagrant box, please visit Vagrant Login. Once authenticated visit the Admin Interface

By default no data is loaded into the database. You will need to create buildings, rooms, templates, and configure the system. A SQL file, roomReservations.sql is provided as a way to test the system with some default data. This is a stripped down copy of the production database at WVU Libraries. To load this file by default uncomment the last line in the bootstrap.sh file. The example dataset includes 3 buildings, 2 that use the RoomMe software and one (Health Sciences Library) that links to an external form.

Setup:

  1. Setup EngineAPI 4.0 on your server
    • Upload the files outside of your document root
    • %%%More Steps Here%%%
  2. Upload RoomMe files to the server
  3. Delete the vagrantLogin.php file
  4. modify the roomReservationHome localvar, in src/includes/vars.php to reflect the path to the software
  5. %%%User Information setup here%%%
  6. %%%Database Connection Setup information here%%%
  7. Configure your software

Configuration:

  1. System
  2. Messages
  3. Via
  4. Statistics
  5. Buildings
  6. Policies
  7. Templates
  8. Rooms
  9. Snippets

Hours Information

RoomMe allows for an Hours RSS URL per building. When defined this will prevent RoomMe from allowing reservations while a building is closed.

Fines Information

Access Control

Access Controls in Room Reservations are controlled via EngineAPI's Access Controls. By default they use Active Directory Security Groups.

  1. Public Interface

    • By default there is no access control in the document root of the software. This can be changed by adding a acl.php file to the root of the room reservation software.
    • To make a reservation the users must be logged into the software, unauthenticated reservations are not permitted.
  2. Admin

    • libraryWeb_roomReservation - Can access the admin interface and there functions:
      • Create/Edit reservations
      • Create/Edit series reservations
      • List all (and delete) reservations
      • Print a reservations page
      • Search for a users reservations.
    • libraryWeb_roomReservation_rooms - Can manage rooms
      • Create/Edit new buildings
      • Create/Edit new room Policies
      • Create/Edit new Room Templates
      • Create/Edit new Equipment & Equipment Types
      • Create/Edit new Rooms
    • libraryWeb_roomReservation_admin
      • Manage system messages
      • Manage via messages
      • Manage system wide default settings
      • View Statistics
      • Create/Edit snippets

All of the above functions can have individual ACLs added to their respective directories to further refine access controls, either using security groups or individual user accounts.

Uploading Room Restrictions

When uploading a CSV file for creating room or building restrictions, the file must have email addresses in the third column and usernames in the 5th column.

roomme's People

Contributors

michaelrbond avatar trmccormick avatar ddavisgraphics avatar timbroadwater avatar dgersting avatar

Stargazers

Alexander Waller avatar  avatar Shashank Sabniveesu avatar

Watchers

James Cloos avatar Kushal avatar JackN avatar  avatar Chris avatar  avatar  avatar

roomme's Issues

Formalize Hours

Allow admin to change the time format in the Room Reservations table from '12am', '12:00 A.M.', etc.

WebApp Hints

Adds a hint on page load that tells them to choose a library.

┆Issue is synchronized with this Asana task

Generic Room Reservation Template

After we finish up the WVU Libraries 2015 room reservation template we need to have a generic template.

I envision this to be a generic version of the template we are using, where the WVU & WVU Libraries branding is removed, and the WVU Libraries navigation is remove. Image in the header should be replaced with something generic.

All the CSS needs to be local to the application.

Colors, layout, and everything else can stay the same.

We need to a link to the lib.wvu.edu/software page. And should have an attribution line in the template somewhere. The template should be distributed as part of the roomReservation software, and placed in the /serverConfiguration/genericTemplate directory.

Tablet Width

Add a JavaScript width detector, change variable in header for tablet view, and style rooms table.

Header Template

Add the blue header navigation to the entire template file, and make 'Room Reservations' link back to the starting app page.

Room Policies

Room Policies should be more visually apparent on mobile devices and within individual rooms. Also, implement error messaging that speaks to specific room policies within the room being reserved.

Mobile Room List

Display a unordered list of rooms available for the mobile view instead of a table for tablet and desktop.

Paging

Fix the >| paging button so that it doesn't display an empty table.

JavaScript injection

Public side:

  • Building Name
  • Room name
  • Room number (though gets truncated)

Admin site:

  • Create reservation/series after selecting building (JS in building name)
  • Create reservation/series after selecting room (JS in room name)

Room Links

Remove 'View Reservation Calendar – This Room' link, and modify 'Return to Building room listing' to read as 'See the entire Building's room listing' from the individual Room Pages.

Room Capacity

List a room capacity or suggested room capacity on each room page. Possibly add room capacity as a search criteria.

Mobile Policies Room

1.Add Mobile buttons at the bottom
1.Create a local var for the policies page

'Find A Room' BUtton

Implement a grayed-out button that turns blue once a different selection is made.

Loading Gear

Possibly include a loading gear icon if the table rendering takes too long.

Reservation Policies Page

Create a page for all of the Reservation Policies in the app, and link Reservation Policies to that page.

currentDay Class

Wire-up the currentDay class so that when a viewer clicks on the 'Find A Room' button, the date updates to whatever was selected in the drop-downs/query.

Buiilding View

Add links for the three libraries at the bottom of the table, and style the building/room list page.

tablePager Class

Use JavaScript to add class to tablePager so I can gray-out based on if no more rooms can load.

┆Issue is synchronized with this Asana task

Don't display plus signs when building is closed

We need to make it so that the json calendar lists the room as unavailable if the building is closed during.

it can just mark the room as reserved, with a user name of "building closed"

the javascript shouldn't display the username but add an additional class for potential styling.

should only check if a building is closed if the room's building has an hour's url defined.

may need to pass in an additional query string so we don't have to query every hour of the day. one query to get all 24 hours for the day. likely have it pass back a json instead of an RSS.

┆Issue is synchronized with this Asana task

'Open Event' Email

Could you add a way for the person reserving a room to submit select if it is an 'Open Event'? Once the event is submitted it would send an email to a couple of people in the library so they can manually add it to the events page? This could be really cool, and help the library have cool events to promote that apparently they already are hosting

Series reservation fails with multiple days

Create series, evansdale, 217
12pm to 2pm
every week, tuesday and thursday
start date 9/16
end date 10/2

fails with duplicate.

work around is to create 2 reservations, one for tuesday and another one for thursday.

Mobile Room List

Room list needs to return all library room with h3. titles of the library, that are rounded to the next 1/2 hour

Mobile Room Layout

-Remove Availble Now button and replcae with H2. Avalble now
-Remove Dropdowns and FInd A room button/ add advanced search

Open Event - bug

Description box not showing when open event select changed to "yes"

Add a Series Reservation result bug

Create new series reservation

Start date: today
End date: tomorrow
Time: 5pm-6pm
Repeat: 'Every Week' on Mon, Wed, Fri

You get the following (confusing) results

  • Your reservation for 1st Floor -- 1028 has been created.
  • This is a duplicate reservation request.
  • Failed create series reservation.
  • Error Creating Reservation.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.