A WebBased Message Board Your software company has decided to create a new product, a webbased message board. Each message on the board will have at least the date, the sender's name, a subject line, and a message body. For example, the messages on a textbased message board for CS 350 might look like: Date: January 31, 2018 From: A. Good Student Subject: Programming assignments Are there any programming assignments in this course? Date: January 31, 2018 From: Dr. Deborah Hwang Subject: Re: Programming assignment Yes. The semester project overview and the HTML prototype assignment will be handed out tomorrow. Date: February 1, 2018 From: Random Student Subject: What is the combo to the CS Lab door? Is it the same as it was last year? The Task • Your task is to create a prototype interface for this Webbased message board system. Note that unlike a blogging system, a message board just displays the messages it receives in chronological order. That is, replies to messages are not displayed together with the original message. • The prototype should consist of one or more web pages, which use fillin forms to allow a user to type in their message and retrieve the messages previously posted to the board. How the system stores messages is described below. You should create both an interface for posting messages and an interface for viewing messages. You do not need to provide a screen for logging in, though you may. • You should provide feedback when posting messages, and appropriate error messages if vital information is omitted when posting a new message. You will have to decide on how messages are displayed. You may wish to provide a catalog of all messages, or you may want to just display all messages in one long list, or may want to display the most recent messages with the ability to go back to previous messages. However you display the messages, you should be able to distinguish one message from another. 2/1/2018 Page 1 of 2 D. Hwang • The new messages do not have to appear instantaneously to other users of the message board when posted. That is, you may require that a user push a "Refresh" button to get any new messages since the previous display. • The information on a particular message should be stored into a file, one message per file. The format of this file is up to you, but you should think about how it will be read back in for displaying. You will need to create a publicly writable directory (permission 733) to allow this to occur. Investigate the PHP date command as a way of generating unique file names. • The solution should involve web pages written in HTML5/PHP. Use of Web page construction tools such as Microsoft Front Page or Dreamweaver are not allowed. All web pages must pass the validation check W3C Validation Service (link on the supplemental resources page under HTML5) for full credit. This includes any generated pages which can be checked by viewing the page source, selecting all of the source code. Go to the validation service, click on the By Direct Input tab, and paste into the validator. What to submit Your submission must be installed on csserver to be graded. (You may develop your submission elsewhere, if you wish.) Provide the URL to the main page. Hand in the following items in a PDF document submitted to the submission system: • The following statement, signed and dated by the submitter: In accordance with the University of Evansville Honor Code, I attest that the project I am submitting is completely my own work, and that I have not received nor given any unauthorized aid on this project. • Short instructions of how a user views messages and how a user posts messages with your interface. You should assume the user is a firsttime, novice user who has not necessarily used similar interfaces before. Grading Prototypes will be graded in the following manner: • 25 points prototype demonstrates an interface that meets the above specification • 10 points aesthetics and usability; 67 points for average, 89 points for above average, 10 points for exceptional • 5 points readability of instructions More notes The HTTP protocol is stateless, so data is not retain between rendering pages in a web browser unless something special is done. A simple way to transmit state between pages without using cookies is to use the input tag (in a form) with a type attribute of "hidden". E.g., <input type="hidden" name="name" value="A. Good Student" / Such an element is not rendered onto the screen, but when the form is submitted, the name/value pair is posted to the webserver.