CELEBRITY LECTURE AGENCY Revision 1.2 October 14, 2008
Functional Specification for the development of the Celebrity Lecture Agency Web Site
1 Overview
Celebrity Lecture Agency (CLA) is a database-driven web site that allows users to reserve guest celebrity speakers for their event or function. The site lists a few hundred celebrities – each categorized by their background (for example, sports, movies, politics, business, etc) – and users can browse through this list and add one or more celebrities to their interest list. Once users have selected their celebrities of interest, they can submit an inquiry – which takes the interest list – together with basic user information (name, address, phone number, email, and date of event) and sends out an e-mail to the site owner. The site owner then takes over and makes contact with the user – letting them know the detailed pricing and availability. Much of the process relies on the site owner to complete the transaction – and even though it would be ideal to automate this process, we need to manually inquire as to the price and availability for each celebrity.
2 Design The CLA site is based off a commercial template design that has already been purchased. The template contains Adobe Photoshop files, functional HTML, graphics, and CSS. The first step is to create reusable PHP snippets for the header and footer – and then each page should simply involve creating central part of the page and embedding it within the header and footer. There are a number of pages that make up the CLA web site. These include: User Pages: • Home • About Us • Contact Us • Policies • Full Roster • Browse / Search Celebrities • Celebrity Results • Celebrity Details • View Interest List • Delete from Interest List • Submit Inquiry Administration Pages: • Administration Login • Administration Create New Celebrity • Administration Edit Existing Celebrity • Administration Delete Celebrity • Administration View Inquiries List • Administration View Inquiry Details • Administration Edit Inquiry • Administration Delete Inquiry Even though there are more administration pages than user pages, it is expected that the administration section should be simple and far less time consuming to put together than the userfacing site. Each of the pages is discussed in detail below:
2.1 Home The Home page is a simple information page that contains introductory text (to be supplied by the site owner) as well as links to the most common functionality – including the search / browse, view interest list, and full roster (as part of the top toolbar – displayed on every page). The home page displays two rows of randomly-featured celebrity speakers (based on the is featured attribute stored in the celebrity table). Each time the home page is loaded, a unique set of featured speakers is displayed. Only the large thumbnail – together with the celebrity name – will be displayed. Clicking on this thumbnail will take the user to the Celebrity Details page. On the left side is a Quick Links drop-down containing all the current celebrities (only those that are set to active) – displayed by order of last name. Selecting a celebrity from the drop-down list will take the user to the Celebrity Details page. Below the Quick Links drop-down is a hard-coded list of the four or five top categories. Clicking on this link simply takes the user to the Browse Celebrity Page and pre-populates the category with the appropriate category name. Clicking the View All Categories link will have the exact same effect as clicking on the Celebrities button at the top of the page: The Browse Celebrity Page will be displayed with all categories selected – allowing the user to initiate a search by clicking the Go button.
2.2 About Us The About Us page is a simple information page that contains information about the company (to be supplied by the site owner). Please provide a blank template page (containing the header, footer, and page title) – and we will insert the appropriate text.
2.3 Contact Us The Contact Us page contains a web form that allows users to submit a question to the company. It is a similar page to Submit Inquiry, but does not involve an interest list. Instead it is used to allow users to ask simple questions about the site. The results of this page will be posted as an e-mail – one copy will be sent to the site owner, while another copy will be sent to the user submitting the inquiry. The form fields to be displayed on the form include: • First Name • Last Name • Organization Name • Mailing Address 1 • Mailing Address 2 • City • State • Zip • Email • Phone Number • Question / Comment (this is a textarea) We will need JavaScript validation on this page to ensure that – at a minimum – the First Name, Last Name, Email, and Question / Comment are specified. Unlike the inquiry, this information does NOT need to be stored in the database – it is merely sent as an e-mail to the site owner.
2.4 Policies The Policies page is a simple information page that contains information about the policies of the company (to be supplied by the site owner). Please provide a blank template page (containing the header, footer, and page title) – and we will insert the appropriate text.
2.5 Full Roster The Full Roster page shows a list of all the active celebrities on the site, ordered by last name. This page will show a small thumbnail together with the name – and will allow the user to click on the Celebrity Details page by simply clicking the name or the thumbnail. There is no need to display categories, overview text, or any other information on this page – just the thumbnail and full celebrity name.
2.6 Browse / Search Celebrities The Browse / Search Celebrities page allows users to narrow down the list of all celebrities by specifying a combination of categories, attributes, and search text. When this page is initially loaded, no search results will be displayed. As soon as the user specifies one or more fields, the list of search results will be retrieved. A category widget is displayed to the left of the search results. This widget shows the hierarchical list of categories – together with the number of celebrities categorized in each category. Users may click on any category to retrieve all celebrities for that specific category. In essence, when a category link is clicked, the category name is selected from the drop-down category list (which contains ALL categories and subcategories).
Therefore, clicking on the left category shortcut link has the exact same effect as selecting the desired category from the drop down list. Users may then narrow down the results even further by selecting other options from the drop-down lists. The page will initially display with no search results (as it is a database-intensive function to retrieve every celebrity every time this page is loaded); however, if a user wishes to click the Go button without narrowing down any options, all the celebrities will be returned on the page – even if this takes a few seconds to retrieve from the database.
2.7 Celebrity Results The Celebrity Results are listed one per line – with an 80px x 80px thumbnail shown to the left of the row. The celebrity name, tagline, overview text, category, and gender are displayed with each record. The overview text is truncated at 200 characters – and an ellipsis (…) is shown instead. A number of action buttons are available to the right of the celebrity record. A user may view the celebrity details by either clicking on the thumbnail or the action icon on the right. In addition, the user may add the celebrity to their interest list by clicking the respective icon. If a celebrity has already been added to the interest list, they may be removed by clicking the remove icon (shown in the middle row above).
2.8 Celebrity Details The Celebrity Details page shows all the information that is available for a particular celebrity. It includes the full size image, biography, overview, speaker demographics, and categories under which the speaker is classified. Two action buttons are present on the page, allowing the user to add the celebrity to the interest list, as well as providing a one-click inquiry to add the celebrity to the interest list and set up an inquiry for the particular celebrity.
2.9 View Interest List The interest list is similar to a shopping cart – in a much simplified form. It is simply a collection of celebrity ids – in no particular order – that will be bundled together with the inquiry when submitted by a user. When a user selects to view the interest list, it will list the celebrities, one per line. There will be a delete icon to the right of the celebrity name – allowing the user to remove any names off the list prior to submitting it.
2.10 Submit Inquiry The submit inquiry feature is a single page that shows the interest list at the top, followed by a standard form, providing a place for the user to enter their information. The following form fields will be available on the page: • First name* • Last name* • Email address* • Company Name* • Mailing Address • Phone number • Type of number (drop-down of Work, Home, Cell) • Tentative date(s) of the event (TextArea, containing) • Comments This form will have client-side validation, ensuring that at a minimum, the name and e-mail address are specified. Upon submission of this form, the form details – together with the interest list – will be written into the database and e-mailed to the site owner. The site owner may then start a dialog with the prospective customer in reserving a celebrity from the interest list.
2.11 Administration The administration section is a non-user-facing part of the web site that allows for the management and maintenance of celebrities, categories, topics, and inquiries. The look and feel of the administration section will be identical to that of the customerfacing web site.
2.12 Administration Login The administration login simply validates a username and password against the table stored in the database and permits the user (if authenticated) to access the administration features. A simple page showing the following options will be available upon logging in successfully: • View inquiries • Edit an inquiry • Delete an inquiry • Create a new celebrity • Edit an existing celebrity • Delete a celebrity For added security, administrators will be required to login using a username/password combination, as well as a four-digit PIN. If either the username/password combination OR the username/PIN combination do not match, a
generic error message – informing the user than the login attempt was unsuccessful – will be displayed on the screen. The user’s IP address will be captured with each login attempt – and after three unsuccessful login attempts, the computer with the locked IP address will not be permitted to access the login page for 24 hours – the application will show a message informing the user that the machine has been locked for 24 hours and no username/password input controls will be shown. After the 24 hour period, the user will be permitted to log back in.
2.13 Administration View Inquiries List The view inquiries function will show all active inquiries. A link will be available to show all non-active inquiries too. The active inquiries will be arranged by date (most recent at the top of the table). Icons will be available to edit or delete an inquiry, as well as change the status. The currently-supported status values include: • Active • Closed The main purpose of the inquiry is to allow the administrator to set up a communication with the end user. For this reason, the end user’s e-mail address should be hyperlinked to allow the administrator to contact them by simply clicking on their e-mail address.
2.14 Administration View Inquiry Details The inquiry details is simply a page containing the interest list and end user demographics – with the option to change the status of the inquiry, create a note for the inquiry, or delete the inquiry.
2.15 Administration Edit Inquiry Editing an inquiry allows the administrator to change the status of the inquiry and add / edit the notes field – thereby providing a space to keep notes about the inquiry. End users will not be able to see an inquiry once it has been submitted – the notes and status are therefore hidden from the end user.
2.16 Administration Delete Inquiry An inquiry may be deleted if it is no longer relevant. Alternatively, administrators may set the status of the inquiry if they want to keep it for historical purposes.
2.17 Administration Create New Celebrity A new celebrity may be added through the administration page. The following information should be captured from this page: • First Name • Last Name • Tagline • Overview • Biography • Featured Celebrity (checkbox) • In the News Celebrity (checkbox) • Favorite Celebrity (checkbox) • Gender (drop-down list) • Diverse Cultures (drop-down list) • Thumbnail image • Image 1 • Image 2 • Image 3 • Video Link • Topics • List of Categories • Active On Website (checkbox)
The images and thumbnail will automatically be resized to fit the page (approximately 300px x 300px). The list of topics will be written into the topic tables. Topics will essentially be stored as a collection of strings (as opposed to one text area) – so we need a way to add, edit, and delete topics for a speaker. There is no requirement to share topics between speakers – so, it’s just a matter of having a button on the page to create a new topic – as well as list the existing topics and provide a button to edit and delete each existing topic. Each celebrity may be assigned to a collection of categories. The simplest way to implement this is to show a hierarchical tree of categories underneath the celebrity information – and have checkboxes next to each category. The administrator would simply check off as many categories when creating or editing the celebrity. The active on website attribute determines whether the celebrity will be displayed when browsing or searching on the site. Setting this value to false will prevent users from seeing this celebrity on the site – and will allow the administrator to maintain a list of inactive (or not-yet-available) celebrities.
2.18 Administration Edit Existing Celebrity Editing a celebrity will call the same functionality as creating a new celebrity – with the exception of the existing details pre-populated in the respective text input boxes. The list of topics will have buttons to edit and delete each topic separately. In addition, the category tree will be shown below the celebrity information with the selected categories checked using checkboxes.
2.19 Administration Delete Celebrity A celebrity may be deleted from the list. A JavaScript confirm dialog will appear to ensure that a celebrity listing is not deleted by accident.