Company Houses Reservation System
part of the ArsDigita Community System
by Matthew Burke,
Lin Chen
The Big Idea
This module allows admin users to manage company housing information and reservations. And allows
employees to make reservations in company housing via the web.
Details
All employees of the company are authorized to the following:
- Reserve beds in public housing (may subject to approval) for oneself, another employee, or
someone else
- View/cancel/add note to any future reservations made by or made for oneself
- View house, room, bed and amenity informaiton of any public housing
- View reservations made to any public housing
Each house is assigned an administration group. All members in the group are considered admin users
for that house. Note: an admin user for one house can just be an ordinary user to another house.
The admin users are entitled to do the following:
- View, edit, add public/non-public house information
- View, edit, add, delete room
- View, edit, add, delete bed
- View, edit, add, delete amenity
- Reserve any bed and get approval automatically
- View, delete any future reservation
- Approve/deny reservations made by non-admin users
- Run reports (not implemented yet)
Only Site-Wide administrators can add a new house and assign it an admin group.
Besides make reservations for a continuous period of time, users can make recurring reservations, for
example, reserve a bed from Monday through Thursday for eight weeks.
Prerequest of using this module
Site-Wide administrator should create a group of type "Administration" and name "Facility Administration". All admin groups for houses will be subgroups of this group.
Under the Hood
The data model has tables for houses, rooms, beds, amenities and reservations.
Each house is represented
by a row in "im_facilities" table, also a row in "im_house_info" table, while the information in
"im_house_info" table is house-specific.
Each room corresponds to a row in "im_house_rooms" table. Each bed corresponds to a row in "im_house_beds"
table. Each type of amenity has a row in "im_house_amenities" table. And there are two mapping tables:
"im_house_amenity_map" and "im_room_amenity_map" to associate an amenity with a house or a room.
In "im_house_reservations" table, there is one row for each reservation. Here one reservation means reserve
one bed for a continuous period of time, i.e. one start date and one end date. Recurring reservation
is stored as a set of individual reservations.
Future Enhancements
- Usage Reports
- Links to map
This is possible only for US addresses. Data model may need to be changed to store street address,
city, state and zip separately.
- Links to floor-plans
- Email reservation reminders to guests
- Email end of available date reminders to admin users
- Email agreements to guests
Data model may need to be changed to store agreement document for each house. And possibly also
store the information of which guest has signed which agreement when.
mburke@arsdigita.com
lin@arsdigita.com