System Description
High-Level System Diagram
Assorted Screen Shots by Project
Sample Web Pages
System Description

ComCierge System Structure
The ComCierge system is made up of databases, numerous programs, libraries, and web based applications all running on a central property server. The clients throughout the hotel property access the programs on this server.

The core of the ComCierge system is its SQL 7.0 databases. The main database, ComCierge, contains the main menu structure, configuration, guest history, languages, advertisement info, movie info, and communications tables.The ComCierge DB is linked with the Location DB, containing the postal codes, which can be accessed if a user is sending a post card or if a new guest is being entered into the system. The Music DB is used all music functions and features of the system. This DB is composed of genre, album/CD, individual track/song, artist, and label information tables so that the user can access music in a number of ways. The RoomServ DB contains all the tables needed for a guest to browse the room service menu, create an order, send special instructions to the kitchen, have that order stored for future retrieval, and bill the users account when the order has been received.

All applications were developed in Visual Basic 6.0. The main application delivers the content to the user in the form of a drill down menu structure and rotating advertisements. The user selects different buttons from the menu list on the left side of the screen and depending on the rules stored in the database for that button the user will be taken to a submenu, another ComCierge module (Music, Room Service), or a web page (either an internally developed and housed page or anything on the Internet). Clicking on an ad page will take the user to the sponsor's web page. Any module can call another module, for example when a user requests a movie to watch, before the movie starts they are asked if they would like anything from the kitchen. If they say yes, the Room Service module is called up so that they can order something. Once they are done they are returned to the movie module for movie viewing. For the most part, however, most modules are called by the main application via the menu buttons.

Web based applications were developed using Visual InterDev 6.0 in HTML or Active Server Pages (ASP) using VBScript and Active Data Objects (ADO) as the database interface. All web-based applications are displayed through the Browser module. This is the browser used by the Main Application and all applications that need to display a web application/page.

ComCierge High-Level System Diagram

ComCierge Design Considerations
Web based applications were developed using Visual InterDev 6.0 in HTML or Active Server Pages (ASP) using VBScript and Active Data Objects (ADO) as the database interface. All web-based applications are displayed through the Browser module. This is the browser used by the Main Application and all applications that need to display a web application/page.

Design considerations of the ComCierge system were it had to be simple for the user to use. In essence it had to be made so somebody who never used a computer could use it, but also keep it interesting enough so a power user would use, but not be able to tamper with it (i.e. sabotage or hack the system). It also had to be designed so that it was flexible enough so that hotel personnel can make modifications to system files whenever necessary.

The simplicity is shown in the design of the user interface where anybody can start navigating from screen to screen just by touching a button, no knowledge of Windows is required. If the person thinks they are lost in a menu structure, all they need to do is touch ‘Beginning’ button and they will go back to the main menu. As far as the power user is concerned, they can surf the net, retrieve their email, and create Word documents, Power Point presentations, and Excel spreadsheets.

Replacing the Windows Explorer shell with our own shell application helps keep the power user from hacking the system. This hinders users from accessing the system hard drives (local and network) and deleting crucial system files. The user is also locked out from all keyboard system functions such as pulling up the task bar/Start Button (Ctrl+Esc), rotating through running applications (Alt+Tab) and the task list/rebooting (Ctrl+Alt+Del) making the power switch and a command from the ComCierge Server Controller as the only ways to reboot the client.

The Client Shell
The Client OS shell replaces the Windows shell in each guest room unit. It monitors the state of the network connection and brings the guest room system up or down depending on a change in the network state. It also communicates with the Property Server Controller diagnostic program and services reboot commands.

Modules
The main application provides a hierarchical menu system, which allows a guest to find features of the system in a logical manner. The hotel property can organize the menu system in any way it chooses. The navigation component contains space for advertising and a logo. The look and feel of the navigation component can be customized for each hotel property. Advertisements in the form of Macromedia â Flashä 4 generated Shockwaveä formatted movies can be delivered to all main menu screens based on hotel property. Touching or clicking on an advertisement will result in the navigation to an Internet site. While playing, the advertisement can interact with an Internet site. The main menu can contain links to Internet sites that a hotel property chooses to recommend. The links and main menu layout can be maintained by the hotel property. The links can include news, local attractions, weather, etc. as well as Intranet based information about the hotel property’s features and services. Each information screen can accommodate a speed dial button, which allows for speed dial speakerphone access to the hotel property’s various departments. Links can be provided for interactive games. Links can be provided for office tools that the hotel property chooses to supply its guests. The ComCierge application also supports languages by clicking on the little scrolling flags a user can change the application to the language of their choosing.
The Email module allows guests to compose and send an email from the module. Anyone can request delivery of POP3 email from any mailbox that allow outside Internet access. The service transmits a user code and password to the mailbox for access. A database of POP3 addresses is maintained by the module to relieve guests from having to enter POP3 addresses once they are known by the system.
The Movie module allows a guest to search a movie database by title or subject. The guest can adjust the volume, fast forward, fast reverse, pause, restart, and stop the movie. The movie can be watched on the in-room computer or on the television with the addition of an NTSC converter.
The Activity Logger module maintains a historical record of all guest activity within the suite of client applications. The records can be accessed by hotel chain, hotel property, room ID, guest ID, date, time, duration, and activity.
The Phone module allows a guest to dial a phone number from a dial pad and then talk via a speakerphone or telephone handset. A guest can also dial from a speed dial list, which can be maintained by the hotel property. Any Intranet site can interface to the speakerphone component to enable telephone-based interaction with the sponsors of the Intranet site. This service requires that the in-room computer be connected by modem to the room’s analog telephone line.
The Browser module allows the guest to view locally hosted web pages /applications and to gain worldwide Internet access. Access to designated Internet sites can be blocked at the discretion of the hotel property with appropriate third party software.
The Music module allows a guest to search a database for music by artist, title, or genre. The service provides samples of each album and cover art. The guest can listen to the album in the background while doing other things. The guest can adjust the volume, play, fast forward, fast reverse, pause, restart, and stop the album or any of its selections. The module also provides a radio mode, which plays random background music by a specific genre.
The Room Service module allows the guest to order items from the hotel property's room service menu. The guest can customize their order. The order can be delivered to the hotel property via a printer or as an electronic transaction to another computer system or display.
The Survey module provides for an interruption in any path of user interaction in order to obtain user feedback via a short list of questions, with a provided list of answers, for hopefully a quick and painless survey. Each survey response is captured in a database.
The Message module allows a typed message to be sent to and viewed any room within a hotel property that contains the module. When the module delivers a message to a room, the advertisement box displays a special Macromediaâ Flashä movie to signal to the guest that messages are waiting. When the movie is touched, the messages are delivered.
The Post Card module allows a guest to choose a greeting card to send via email or parcel post. The module accommodates a typed message and address. An electronic billing transaction is made available to the hotel property.
The Hotel Directions module allows a guest to select a location within the hotel from a list. Once selected, a map of the entire complex is displayed with the selected location in the center. Next to the map are directions on how to get to that location. The user can then zoom in for more detail or zoom out to see the entire map. The user may move the map position by dragging it in any direction. A user may also enter a specific hotel room number. Based on the room number, the program figures out which building or wing that room is in and displays that building in the center of the map.
The Bellman module allows a guest to select the day and time they would like their bags picked up. If they have already requested the service, the user can cancel or change the time of their request.
The Books module allows a guest to search for audible books in our database by author, title, and subject. When the guest finds a book, it plays. The guest can listen to the book in the background while doing other things. The guest can adjust the volume, fast forward, fast reverse, pause, restart, and stop the book.
The Appointment module allows a guest to add, change or delete items from their personal appointment schedule. Once a personal schedule has been created the guest may have this schedule printed out for a fee. To view schedule items on-line the user must touch an item in the list and all information about that appointment is displayed on the screen. If the user tries to add to appointments at the same time a conflict occurs and the user is asked to pick which appointment they want to keep, the newly added appointment or the existing appointment. This service requires a custom printing mechanism for each hotel property.
The Convention Schedule module presents a guest with a list of current conventions. Once a convention has been selected, the guest can go through events of the schedule by date and topic, adding or deleting items to their schedule as they go. Personal appointments may also be added to make sure there are no conflicts with convention meetings.
The Alarm Clock module allows the guest to setup the in room unit to wake them at specific time of the day or night. Module can also be hooked to the music module so the guest can be awoken by music.
The Folio module allows the guest to view their bill in detail at anytime and/or upon checkout.
The Housekeeping / Maintenance module allows a guest to request more towels, toiletries or report problems with the room. The request will style='font-size:12.0pt;mso-bidi-font-size:14.0pt'> be delivered to the hotel property via a printer or as an electronic transaction to another computer system or display.
The Welcome module displays a simple screen for the guest when they first enter the room. This message can be customized for each guest to include special offers that might appeal to him or her.
The Seminar Agenda module presents a guest with their specific seminar agenda. The guest views the overall agenda on the left side of the page and by clicking on each item the detailed information for the item is shown on the right side of the page.

Controls / Classes
The Animation Advertisement control displays and scrolls through advertisements on the main application.
The Button control is used throughout in all modules gets all of its information (caption, graphics, target, etc.) out of the database. The button can be presented in many different formats allowing for a multitude of look and feels.
The ComCierge Dialog Box control delivers to the user any informational message that the system needs to convey.
The Item List control displays of item list of objects such as convention schedules.
The Keyboard control implements a graphical keyboard.
The Location control allows the user to easily determine a postal code based on country, state, city, etc.
The Menu List control implements the display and management of a hierarchical collection of button objects.
The Numeric Keypad control implements a graphical numeric pad.
The Time Box control displays of item list of time specific objects such as convention schedules times.
The Time Pad control implements a graphical numeric pad specific for time selection functions.
The ComCierge Information Server allows all applications, modules and components of the system to access common functions and data.
The Sound Server allows all components to use/control system sound resources.

Client Support Files
The Arrival Movie: upon receipt of an electronic transaction from a hotel property’s data processing system containing a guest’s reservation information, an MPEG movie of the general managers welcome address will be displayed on the main navigation screen when the guest activates the "you have a message" button. The message can then be viewed.
The Departure Movie: upon receipt of an electronic transaction from a hotel property’s data processing system containing a guest’s reservation information, an MPEG movie of the general managers farewell address will be displayed on the main navigation screen when the guest activates the "you have a message" button. The message can then be viewed.
The Room.ini provides each guest room with configuration information.
The Property.ini provides each hotel property server with configuration information.

Web-based Client Applications
The Golf application implements a database driven list of golf courses which is presented to the user by showing them location, directions, green fees, etc.
The Restaurants application implements a database driven list of restaurants which is presented to the user by showing them location, directions, average cost per meal, etc.
The Seminar Agenda application implements a database driven list of Seminar agendas. Only the specific agenda that the guest is attending is shown, including list of topics, speakers, etc.
The Rental Movies application implements a database driven list of rental VCR movies which is presented to the user by genre or basic search capability and also shows cost, availability, etc.

Hotel Support Applications
The Front Desk application allows the front desk and concierge personnel to check-in and checkout guests, to send messages to guests, update room status (occupied, dirty, etc.) and room specifics (queen size bed, view, etc.).
The Orders application allows hotel personnel to service the room service requests generated by the Room Service module.
The HKRequest application allows the hotel personnel in housekeeping or maintenance to service requests by the Housekeeping/Maintenance module.
The Menu Maintenance Application allows for the creation and maintenance of a hotel property’s Main Application's hierarchical button menu.
        Web-based
The Room Service Menu Maintenance application allows hotel personnel to update the room service menu items.
The Main Application Menu Maintenance application allows hotel personnel to update the main application menu items
The Golf Maintenance application allows hotel personnel to update surrounding golf course locations and information.
The Restaurant Maintenance application allows hotel personnel to update surrounding restaurant locations and information.

Client Setup Applications/Files
The Configuration Application configures a guest room client machine to run the ComCierge system.
The Register batch file registers all components on a guest room machine.

Property Setup Applications/Files
The Site button Configuration application allows installation personnel to setup the look and feel (background graphics, color schemes, button fonts and graphics, etc.) of the in room client machine for the property. This is done for the whole property, not per client machine (assorted samples for Yuma project).
The Music Maintenance application allows installation personnel to setup the music database dictating what specific and types of music will be presented to the guests.

System Communication Applications
The Client Controller brings up each module needed for the ComCierge system on a guest room client machine. This program also attempts to restart modules that have crashed. It communicates with the Property Server Controller, which runs on the hotel property server and provides the following services:
  1. Responds to heartbeat messages.
  2. Ends or starts modules per operator command.
  3. Displays a list of all running components.
  4. Allows an operator to change a port number.
  5. Allows an operator to change the Windows shell program.
  6. Allows an operator to change the ADO timeout.
  7. Reloads ComCierge Main Application menu while system is running.
The Property Server Controller allows communication and execution of commands to the Client Controller program running in a specific room or all rooms in a hotel property. The commands can be executed from a hotel server or indirectly from the global server via The Global Server Controller. The available commands are:
  1. Reboot the client.
  2. Shut down the client machine.
  3. Bring down the ComCierge system for maintenance, displaying a message on the guest room machine's screen.
  4. Bring the ComCierge system up on a guest room machine.
  5. Remotely run a program on a client machine.
  6. Set the heartbeat interval used to keep track of the status of guest room machines.
  7. Stop or start certain ComCierge applications on any or all machines on the network.
  8. Display what applications are running on any or all machines on the network.
  9. Change the ports that messages are sent over.
  10. Change the Windows shell program on any or all client machines.
  11. Change the amount of time a client will wait for an ADO timeout to occur.
  12. Reload the ComCierge Main Application menu on the fly for any or all client machines.
  13. Poll the entire network showing only the machines that have good connections.
  14. Poll the entire network showing only the machines that have bad connections.
  15. Poll the entire network showing all machines and their status.
The Global Server Controller performs the same functions as the Property Server Controller but allows monitoring and controlling all of properties and their client machines from the global server or other.