uGolf User's Guide

Version 1.0
Copyright (c) 2002; Microburst Technologies, Inc.
http://www.uburst.com

Table of Contents

  1. Introduction
  2. Features
  3. System Requirements
  4. CGI Script Configuration
  5. Installing The Script on Your Server
  6. Troubleshooting
  7. Tee Time Scheduler
  8. Administrator Control Panel

Introduction

uGolfTM is a tee time scheduling system that allows golfers to reserve tee times online. With uGolfTM, golf courses and country clubs can allow their members to view tee time schedules, check the availability of tee times, and reserve tee times directly over the web.


Features

The features of uGolfTM include:

System Requirements

uGolfTM consists of one Perl CGI script, so the only system requirement is:


CGI Script Configuration

uGolfTM has one CGI script that must be configured and installed on your server. To configure the script (called "ugolf.pl"), you will need to open it with any standard text editor - such as NotePad or WordPad - and answer the 15 questions at the top of the script. Below are some instructions to help answer the questions and configure the script for your server.

NOTE: If you've never installed or executed any Perl scripts on your server before, it is recommended that you first try installing our basic test script as described on the following reference page:

http://www.uburst.com/uGolf/testscript.html

By installing this basic Perl script first, it should help you to understand how to install and execute scripts on your server. It also will verify that your web hosting account is configured properly to run Perl scripts and will make installing the uGolfTM script that much easier.

1. What is the path to Perl on your server?

The uGolfTM script is written in the Perl programming language and so in order for it to run, you must specify the location of Perl on your server. Typical locations are #!/usr/bin/perl, #!/usr/local/bin/perl, and #!/bin/perl. (Note that the #! characters are required and should be included when specifying the path). You can ask your Web Hosting Provider for the location of Perl on your server.

Note: This path to Perl must be specified as the very first line of this script.

2. What is your uGolf License Number?

For this configuration question, enter the license number that you were given when you purchased uGolfTM. To do this, literally replace or type over this line in the uGolfTM CGI script. That is, change this line in the script from:

$license_number = "UNREGISTERED VERSION";

to something like:

$license_number = "ABC-123-456-789";

... where "ABC-123-456-789" is actually the license number that was assigned to you when you purchased uGolfTM.

3. What is your company's/organization's name?

For this configuration question, enter the name of your company, organization or country club that will be using uGolfTM. An example value for this configuration question is:

$company_name = "My Country Club";

4. What is your website URL?

For this configuration question, enter the full URL of your website. An example value for this configuration question is:

$website = "http://www.mydomain.com";

5. What is the URL of this script on your website?

After you finish configuring this script, you will be putting in your "cgi-bin" or "cgi-local" directory on your server, so for this configuration question, enter the full URL of where this script will be installed on your server. An example value for this configuration questions is:

$script_url = "http://www.mydomain.com/cgi-bin/ugolf.pl";

6. What is the full or relative path to your data directory?

As part of the installation of this uGolfTM script on your server (which is described in the next section), you will need to create a "data" directory on your server. This "data" directory is where uGolfTM will store all of the resource and schedule data files. Typically, this "data" directory should be created as a subdirectory of your "cgi-bin" or "cgi-local" directory ... and so assuming you do call the data directory "data" and you do create it as a subdirectory of your "cgi-bin", a typical value for this question would be:

$data_directory = "./data/";

Note that the value is specified relative to where the ugolf.pl script will be located. In some cases, however, you may need to specify this question as the full directory path to your data directory....such as "/www/youraccount/cgi-bin/data/" on UNIX servers, or "C:/users/youraccount/cgi-bin/data/" on NT servers.

7. What is the starting tee time (hour) on weekdays? (0 - 23)

This configuration question allows you to specify the start time of your tee time schedule on weekdays. This time should be specified as a 24-hour time ... so valid values will range from "0" to "23". For example, if you want your schedule display to start at 8 o'clock in the morning, then you would set this value to:

$tee_time_start_weekday = "8";

8. What is the ending tee time (hour) on weekdays? (1 - 24)

This configuration question allows you to specify the end time of your tee time schedule on weekdays. This time should be specified as a 24-hour time ... so valid values will range from "1" to "24". For example, if you want your schedule display to run up to 3 o'clock in the afternoon, then you would set this value to:

$tee_time_end_weekday = "15";

Note that this $tee_time_end_weekday time MUST BE GREATER THAN the $tee_time_start_weekday time that you configured in the previous question.

9. What is the starting tee time (hour) on weekends? (0 - 23)

This configuration question allows you to specify the start time of your tee time schedule on weekends. This time should be specified as a 24-hour time ... so valid values will range from "0" to "23". For example, if you want your schedule display to start at 7 o'clock in the morning, then you would set this value to:

$tee_time_start_weekend = "7";

10. What is the ending tee time (hour) on weekends? (1 - 24)

This configuration question allows you to specify the end time of your tee time schedule on weekends. This time should be specified as a 24-hour time ... so valid values will range from "1" to "24". For example, if you want your schedule display to run up to 4 o'clock in the afternoon, then you would set this value to:

$tee_time_end_weekend = "16";

Note that this $tee_time_end_weekend time MUST BE GREATER THAN the $tee_time_start_weekend time that you configured in the previous question.

11. What is the tee time increment (in minutes)? (5 - 15)

This configuration question allows you to specify the number of minutes in each tee time slot on your tee time schedule. For example, if the tee times at your golf course run every 15 minutes, then you would set this value to:

$tee_time_increment = "15";

Note that you can specify almost any number of minutes here between the values of 1 and 1440. The typical value is between "5" and "20" minutes.

12. Allow standby reservations?

This configuration question allows you to specify whether or not you want to allow standby reservations. Valid values are "YES" or "NO". The default value is "YES":

$standby_reservations = "YES";

13. Would you like to allow regular website visitors to make reservations?

This configuration question allows you to specify whether or not you want to allow regular website visitors to make reservations. Valid values are "YES" or "NO". If you set this value to "NO", then only the uGolfTM administrator can make reservations, but all website visitors could still view the reservations. The default value is "YES":

$visitor_permission = "YES";

14. What is the administrator's password?

This configuration question allows you to specify a password for the uGolfTM administrator. The uGolfTM administrator will have special privileges that allow him/her to login to the uGolfTM Control Panel and to view the tee time schedule in "Administrator Mode". When viewing the schedule in administrator mode, the administrator can view the full details of all reservations, edit/delete any reservation, black out days, clear days, and print the schedule with full details. An example value for this configuration question is:

$login_password = "admin";

15. What image would you like at the top of your schedule pages?

This configuration question allows you to specify the URL of any image that you would like to be displayed at the top of your online schedule displays. Note that this value must be a FULL URL ... beginning with "http"... so an example value might be:

$page_image = "http://www.yourdomain.com/images/mylogo.gif";

Note that if you do not want any image displayed on the page, then just set this value to "NONE" (in ALL CAPS).

Additional Preferences

For advanced users, there are also a variety of additional preference settings by which you can configure such preferences as logging, email notifications, colors, fonts, labels, and more! The preference settings can be found near the top of the uGolfTM CGI script (just below the 15 main configuration questions) and are briefly described in the table below:

  Setting Description
1 $gen_date_format This setting allows you to specify whether to use US date format (MM/DD/YYYY) or EUROPEAN (DD/MM/YYYY) date format. Valid values are "US" or "EUROPEAN".
2 $gen_time_format This setting allows you to specify whether the times on the schedule will be displayed in STANDARD (AM-PM) format or in MILITARY (24-HOUR) format. Valid values are "STD" or "MIL".
3 $gen_maintain_log This setting allows you to specify whether or not to record all reservations in a log file. Valid values are "YES" or "NO". Note that if this setting is set to "YES", then a bar-delimited log file called "ugolf-log.txt" will be maintained in your "data" directory.
4 $referral_checking This setting allows you to specify whether or not the referring URL of all actions will be verified before processing. Valid values are "ON" and "OFF". This is essentially an extra security check that will verify no one else is trying to POST data to your script from some other location. Since all browsers do not give the "referring URL", however, it is recommended to keep this value "OFF"... unless you are going to have control over what browsers your website visitors are using... which is typically not the case.
5 $gen_email_admin This setting allows you to specify whether or not to email the uGolfTM administrator each time a reservation is created/modified. Valid values are "YES" or "NO".
6 $gen_email_user This setting allows you to specify whether or not to email the user (whoever is creating/modifying a reservation) a receipt of the reservation. Valid values are "YES" or "NO".
7 $gen_admin_email_address This setting allows you to specify the email address of the uGolfTM administrator. This is the email address to which email notifications of reservations (see preference question #5 above) are sent. Note: Be sure to use single quotes (') around the email address that you specify here.
8 $gen_admin_email_subject This setting allows you to specify the subject that will appear on email notifications that are sent to the uGolfTM administrator.
9 $gen_user_email_subject This setting allows you to specify the subject that will appear on the email receipts that are sent to the user.
10 $gen_email_method This setting allows you to specify the email method that this uGolfTM CGI Script will use to send email. If your server is a Unix server, then you should set this setting to "SENDMAIL" - in order to use the Unix "sendmail" utility. If your server is a Windows server, then you should set this setting to "SOCKETS" - in order to connect to your mail server via "sockets". Note: Some people with Windows server may not be able to use "SOCKETS". In that case, set this setting to "CUSTOM" and then contact us with the name of the email utility that your Windows server does support.
11 $gen_sendmail_path For Unix Servers Only - This setting allows you to specify the path to "sendmail" on your server.
12 $gen_smtp_address For Windows Servers Only - This setting allows you to specify the IP address or the Hostname of your mail server.
13 $page_background_image This setting allows you to specify a background image that will be displayed on all schedule pages. This setting should be specified as the full URL of the image that you want to use - otherwise, set this setting to "NONE" in order to have no background image.
14 $page_background_color This setting allows you to specify the background color of the schedule pages.
15 $page_font_face This setting allows you to specify the font face used for the title area of the schedule pages.
16 $page_font_size This setting allows you to specify the font size used for the title area of the schedule pages.
17 $page_font_color This setting allows you to specify the font color used for the title area of the schedule pages.
18 $page_link_color This setting allows you to specify the link color used on the schedule pages.
19 $page_vlink_color This setting allows you to specify the vlink color used on the schedule pages.
20 $page_alink_color This setting allows you to specify the alink color used on the schedule pages.
21 $page_title This setting allows you to specify the title that will be displayed on all schedule pages.
23 $page_previous_button This setting allows you to specify the label that will be displayed on the "Previous" button.
24 $page_next_button This setting allows you to specify the label that will be displayed on the "Next" button.
25 $page_date_entry This setting allows you to specify the label that will be displayed next to the "Date" entry area.
26 $page_last_updated This setting allows you to specify the "last updated" label.
27 $page_admin_label This setting allows you to specify the "administrator mode" label.
28 $page_print_label This setting allows you to specify the "print day" label.
29 $page_blackout_label This setting allows you to specify the "blackout day" label.
30 $page_clear_label This setting allows you to specify the "clear day" label.
31 $page_instructions This setting allows you to specify a set of instructions that will appear on the schedule pages. Set to "NONE" if you don't want any instructions displayed.
32 $tbl_title_color This setting allows you to specify the color of the title area of the daily schedule tables.
33 $tbl_font_face This setting allows you to specify the font face used within the daily schedule tables.
34 $tbl_font_size This setting allows you to specify the font size used within the daily schedule tables.
35 $tbl_font_color This setting allows you to specify the font color used within the daily schedule tables.
36 $tbl_time_column_label This setting allows you to specify the label over the time column.
37 $tbl_time_column_width This setting allows you to specify the WIDTH of the time column.
38 $tbl_time_column_color This setting allows you to specify the color of the time column.
39 $tbl_time_column_font_face This setting allows you to specify the font of the time column.
40 $tbl_time_column_font_size This setting allows you to specify the font size of the time column.
41 $tbl_time_column_font_color This setting allows you to specify the font color of the time column. (Note that since the times are often links, you may also want to adjust the "link", "alink", and "vlink" colors that were described above.)
42 $tbl_primary_column_label This setting allows you to specify the label over the primary reservation column.
43 $tbl_primary_column_width This setting allows you to specify the WIDTH the primary reservation column.
44 $tbl_primary_column_open_color This setting allows you to specify the color the primary reservation column when the time is still available.
45 $tbl_primary_column_reserved_color This setting allows you to specify the color the primary reservation column when the time has been reserved.
46 $tbl_primary_column_font_face This setting allows you to specify the font of the primary reservation column.
47 $tbl_primary_column_font_size This setting allows you to specify the font size of the primary reservation column.
48 $tbl_primary_column_font_color This setting allows you to specify the font color of the primary reservation column.
49 $tbl_standby_column_label This setting allows you to specify the label over the standby reservation column.
50 $tbl_standby_column_width This setting allows you to specify the WIDTH the standby reservation column.
51 $tbl_standby_column_open_color This setting allows you to specify the color the standby reservation column when the time is still available.
52 $tbl_standby_column_reserved_color This setting allows you to specify the color the standby reservation column when the time has been reserved.
53 $tbl_standby_column_font_face This setting allows you to specify the font of the standby reservation column.
54 $tbl_standby_column_font_size This setting allows you to specify the font size of the standby reservation column.
55 $tbl_standby_column_font_color This setting allows you to specify the font color of the standby reservation column.
56 $tbl_default_width This setting allows you to specify the default width of the different sections on the schedule pages (the button area, the title area, etc.).
57 $reserve_instructions Not Used. See $page_instructions instead.
58 $reserve_title This setting allows you to specify the title that will be displayed on the tee time reservation form.
59 $reserve_time This setting allows you to specify the "time" label on the tee time reservation form.
60 $reserve_date This setting allows you to specify the "date" label on the tee time reservation form.
61 $reserve_prompt This setting allows you to specify the prompt/instructions on the tee time reservation form.
62 $reserve_standby_note This setting allows you to specify the standby notice on the tee time reservation form.
63 $reserve_alias_prompt This setting allows you to specify the prompt/instructions above field 1 (a.k.a. the "alias" field) on the tee time reservation form.
64 $reserve_field1 This setting allows you to specify the label next to field 1 on the tee time reservation form. Note that field 1 is the fields that will be displayed on the tee time schedule.
65 $reserve_field2 This setting allows you to specify the label next to field 2 on the tee time reservation form. Set to "NONE" if not used.
66 $reserve_field3 This setting allows you to specify the label next to field 3 on the tee time reservation form. Set to "NONE" if not used.
67 $reserve_field4 This setting allows you to specify the label next to field 4 on the tee time reservation form. Set to "NONE" if not used.
68 $reserve_field5 This setting allows you to specify the label next to field 5 on the tee time reservation form. Note that field 5 is the field that must correspond to the email address if using the email receipt option.
69 $reserve_field6 This setting allows you to specify the label next to field 6 on the tee time reservation form. Set to "NONE" if not used.
70 $reserve_field7 This setting allows you to specify the label next to field 7 on the tee time reservation form. Set to "NONE" if not used.
71 $reserve_field8 This setting allows you to specify the label next to field 8 on the tee time reservation form. Set to "NONE" if not used.
72 $reserve_pw_prompt This setting allows you to specify the prompt that will be displayed above field 9 on the tee time reservation form. Field 9 is the password field.
73 $reserve_field9 This setting allows you to specify the label next to field 9 on the tee time reservation form. Note that field 9 will be the password field.
74 $reserve_window_height1 This setting allows you to specify the height of the reservation popup window.
75 $reserve_window_width1 This setting allows you to specify the width of the reservation popup window.
76 $reserve_window_height2 This setting allows you to specify the height of the details popup window.
77 $reserve_window_width2 This setting allows you to specify the width of the details popup window.
78 $reserve_results This setting allows you to specify the title on the "reservation confirmed" message window.
79 $reserve_results_standby This setting allows you to specify the title on the "standby reservation confirmed" message window.
80 $reserve_message This setting allows you to specify the "thank you" message on the "reservation confirmed" window.
81 $reserve_message_standby This setting allows you to specify the "thank you" message on the "standby reservation confirmed" window.
82 $reserve_details This setting allows you to specify the title on the "reservation details" window.
83 $reserve_details_prompt This setting allows you to specify the prompt/instructions that are displayed on the "reservation details" window.
84 $reserve_password This setting allows you to specify the "password required" message on the "reservation details" window.
85 $reserve_edit_button This setting allows you to specify the label on the "apply" button when applying changes.
86 $reserve_delete_button This setting allows you to specify the label on the "delete" button.
87 $reserve_blackout This setting allows you to specify the label on the "blackout day" button.
88 $reserve_clear This setting allows you to specify the label on the "clear day" button.
89 $reserve_info This setting allows you to specify the title on the reservation information window.
90 $reserve_modify This setting allows you to specify the title on the modify reservation information window.
91 $modify_results This setting allows you to specify the title on the reservation modified window.
92 $delete_title This setting allows you to specify the title on the delete confirmation window.
93 $delete_prompt This setting allows you to specify the prompt on the delete confirmation window.
94 $delete_results This setting allows you to specify the title on the reservation deleted window.
95 $refresh_message This setting allows you to specify the refresh/reload message.

Table 1 : Advanced Preference Settings


Installing The Script on Your Server

After editing/configuring the script, as described in the previous section, you will need to install the file in the CGI directory on your server. To do this:

  1. Use your favorite FTP program to transfer the "ugolf.pl" file to the CGI directory on your server. IMPORTANT! When transferring this file, be sure to transfer it in ASCII or TEXT transfer mode (as opposed to BINARY or RAW transfer mode).


  2. Once the script has been transferred to the CGI directory on your server, give the script READ and EXECUTE permissions. If you have a UNIX server, you can give the script READ and EXECUTE permissions (chmod 755) with your FTP program. If you have an NT server, then you may have to get your web hosting provider to give the script EXECUTE permissions for you.


  3. As specified in the previous section, you will need to create a directory on your server where the uGolfTM data files can be stored. To do this, use your FTP program to create a new subdirectory called "data" in the CGI directory on your server.


  4. Once the "data" directory has been created in the CGI directory on your server, you will need to give that directory WRITE and EXECUTE permissions. If you have a UNIX server, you can give the directory READ, WRITE and EXECUTE permissions (chmod 777) with your FTP program. If you have an NT server, then you may have to get your web hosting provider to give the directory WRITE permissions for you.
After following the above steps to install uGolfTM on your server, you can test that the CGI script is setup correctly by opening your browser and typing the full URL of the script on your server into the LOCATION box on your browser. This URL should be the same URL that you specified in question #5 of the script setup, such as:

http://www.mydomain.com/cgi-bin/ugolf.pl

Upon doing so, you should see the tee time schedule for the current day. If you do not see the tee time schedule and instead see some sort of a "Server Error", then something is not setup correctly, see the Troubleshooting section below.


Troubleshooting

In order to keep the troubleshooting information as up-to-date as possible, we have moved this Troubleshooting section to the uGolfTM online reference site at:

http://www.uburst.com/uGolf/reference.html


Tee Time Scheduler

Once the script has been successfully installed, everyone can start using uGolfTM to view and reserve tee times.

Viewing The Tee Time Schedule

To view the actual tee time schedule, visitors just need to link to the URL of the script on your server, such as:

http://www.mydomain.com/cgi-bin/ugolf.pl

By just going to this URL, the online tee time schedule will be displayed. You may want to consider putting a link to that URL somewhere on your main website so that visitors can easily link to that URL.

The tee time schedule displays should be pretty self-explanatory for any user. The currently viewed day will be listed at the top of the display. Any tee times that have been reserved will be in a different color. Navigation buttons at the bottom of the display allow users to navigate to different dates.

Reserving A Tee Time

To reserve a tee time, the website visitor just needs to click on the desired time on the desired day. Upon clicking on the desired tee time, a window will be displayed with a form by which the visitor can enter his/her contact information and reserve the tee time.

Modifying Reservations

To modify or delete a tee time reservation, the visitor needs to click on the associated time slot. The user will first be prompted for his/her password and will then be presented with the full details of the reservation. From that display, any desired changes can be made or the entire reservation can be deleted.

Note that at any time, the administrator can use his/her password to override any of the visitor reservation passwords.


Administrator Control Panel

The uGolfTM "Administrator" has special features and permissions designed to allow him/her to monitor and manage the overall operation of uGolfTM on the website. To access these special features and permissions, the administrator should begin by logging in to the uGolfTM Control Panel.

Logging In

In order to login to the uGolfTM Control Panel, the administrator can use his/her browser to go to the URL of the uGolfTM script on your server ... followed by a special "?command=login" tag. This will actually be the same URL that you specified in configuration question #5... followed by "?command=login" such as:

http://www.mydomain.com/cgi-bin/ugolf.pl?command=login

TIP: To make logging in easier in the future, the administrator may want to bookmark this URL.

To login, just enter the password that you specified in question #14 of the script setup.

View Schedule

The administrator can view the tee time schedule in "Administrator Mode" by clicking on the "View Schedule" button on the control panel. Upon pressing the "View Schedule" button, the tee time schedule will be displayed with a special administrator tool bar at the top.

Reservation Details
While viewing the schedule in "Administrator Mode", the administrator will be able to view the full details and/or modify any tee time reservation without needing any password. This is useful for validating or changing any of the tee time reservations.

Print Day The "Print Day" button on the administrator's toolbar provides a way in which the administrator can generate a "printable" display of the tee time schedule for the current day. This is useful for printing out the tee time schedule of the current day.

Blackout Day The "Blackout Day" button on the administrator's toolbar provides a way in which the administrator can "blackout" the tee time schedule for a specific day. When "blacking out" a day on the schedule, the administrator is essentially preventing anyone else from making tee time reservations on that day. This is useful for days the golf course may be closed to the public ... such as on holidays or during tournaments.

Clear Day The "Clear Day" button on the administrator's toolbar provides a way in which the administrator can "clear" all tee times on a specific day. This is useful for undoing a "blackout" or to just get rid of multiple tee time reservations at once.

Manage Data

Occasionally, it may be desirable to purge old data files from your server. This will help to save disk space and keep uGolfTM running efficiently. The "Managed Data" button on the control panel provides the means to delete all old data files from the server.

Online Reference

The "Online Reference" button on the control panel provides a quick link to the official uGolfTM Reference Site:

http://www.uburst.com/uGolf/reference.html

The site contains up-to-date information about uGolfTM including updates, enhancements, and other general information.



For additional information about uGolfTM or to find out about other great products from Microburst Technologies, Inc., please visit our website at:

http://www.uburst.com