Assignment 2 - Creating a Dynamic Web Site
Description
The potential investor describe in assignment 1 was so impressed with your group's plans that he has decided to fund your start-up company. Your group now moves on to implementing your plans.
Since you have identified the Internet as a major distribution channel for your company, you need a good web site to support your company's work. Your task is now to design and implement the web site using HTML, JavaScript and PHP. You need to complete the following:
- Basic requirements
Your web site should:
- Have basic information about your company, including:
- Name.
- Description.
- Staff list.
- Contact address(es).
- A consistent navigation system for users to move through your site.
- A splash introductory screen with moving images (at least one static image moving across the screen). The moving images cannot be implemented using animated GIFs. There must be an option to skip this introductory screen, offered to the user either before the animation starts, or while it is animating.
- Have a search facility to allow users to search for details of your products/services. The search facility should:
- Be offered to users as HTML forms.
- Validate on the client-side that the data in the HTML forms are not empty before sending it to the server-side scripts. Required data on every form should be clearly identified to the user, and these required data should be checked to ensure it is not empty.
- Validate that all data, required and not-required, do not contain the following illegal characters : ";", ">", "<", "|" (not including the double quotes). This must be done on the client-side AND the server-side.
- NOT store the product/service details statically in HTML pages, but should retrieved the details dynamically from a data store (eg. a separate file). If new data is added to the data store, the HTML pages should not have to be changed.
- Allow at least two levels of searching:
- By keyword, where an entry is retrieved from the data store if the user's search term matches any text in any fields in the entry.
- By browsing, where users can go through different categories of products/services to find what they want.
- Show the users their last search entry.
You are encouraged to make your web site accessible to all major browsers. However, due to assessment constraits, you will only need to state one browser that you would like your assignment to be assessed in. Internal students must use a browser available in the internet labs. External students should consult your tutors to confirm he/she has the browser and version you are developing your code in.
The site should also be served through the Apache web server with PHP enabled - this is the set-up on the server where your scripts will be assessed. This means you may choose to add whatever Apache features works in your account on the server, although they will not be specifically assessed on it.
- Advanced feature: Implementing User Authentication
This part deals with restricting access to a "Customer Support" section of your web-site. Choose one of the following 2 requirements:
- Programming:
Include a "Customer Support" section with the following contents:
- Email links to your customer/client support staff.
- HTML advisory documents - ie. document with information helpful to customers/clients.
- Forms allowing users to submit priority queries to your support staff regarding your products/services. The queries should be stored in a data store (eg files) on the server instead of being emailed.
Implement user authentication for this customer support section. Users must log in before they can access the page(s) relating to support. The login status should be one of the following 3 categories:
- Restricted - user can view staff email links, advisory documents, and all existing queries;
- Normal - user can view staff email links, advisory documents, all existing queries and submit new queries;
- Trusted - user can view staff email links, advisory documents, and all existing queries, submit new queries, as well as edit their own old queries.
- Report:
Write a report on the implementation issues dealing with adding user authentication to your web-site. Your report should include (but is not limited to):
- What options are available in implementing user authentication (PHP and other wise).
- How the different options work, and how they are different from each other.
- What impact each of these options have on the development and maintenance of the web site.
This report can be in the style of assignment 1, but should be directed at a higher technical level - that of a programmer/system administrator considering what user authentication system to implement.
- Documentation
See Documentation section of the Guidelines for Programming. In addition, you also need to include in your documentation the following:
- A description of how the web site contributes to your company. You may make references to your report in assignment 1.
- Self-Learning
Read the Self-Learning document, and complete the information in the two forms:
Deadlines
A copy of your plans (part IV a) must be submitted directly to your tutor before or during week 9. Internal students must do so during your lab sessions.
The whole assignment (including part IV a) is due at 4pm Tuesday 22nd October 2002 (week 11).
Submission Requirements
The following must be submitted to your tutor before or during week 9:
- A copy of your plans (part IV a) - keep the original for the final submission.
The following must be submitted by 4pm Tuesday 22nd October 2002 (week 11). Internal students should submit to the assignment boxes. External students submit to External Studies Office as normal.
- All scripts and web pages on floppy disk(s) for parts I and II requirements. The entry page for the site must be called index.html. See guidelines below on how the files will be copied to be assessed.
- Printed documentations for part III.
- Print-outs of JavaScript and PHP code for part I and II requirements. HTML print-outs are not required. You do not need to print out every line of code from every page. For example, if you use essentially the same JavaScript to do data validation, then one example print-out will do. Think very carefully about how to lay-out your print-outs, so that your tutor can see clearly the code for each requirement in parts I and II.
- Completed Self-Learning forms (both part IV a and b).
- Printed and completed cover sheet. Internal students must use the internal cover sheet. External students must use the copies sent to you by the External Studies Office.
Some guides on working on this assignment:
- Read the assignment's marking scheme (get the password using the unit's password query system) for tutors to see the marks breakdown.
- To assess your pages and scripts, the files and directories you submit will be copied as they appear on your floppy disk(s) to a test directory on phoenix.murdoch.edu.au. Your assignment will be assessed from there. This means:
- Your site's main index.html file should be at the top level of your floppy disk(s).
- If you develop the scripts at home, you should upload them to the server and test them fully. You should do this very regularly when developing the site, instead of waiting until the last minute before the deadline to do the testing.
- You should always use relative paths instead of absolute paths to links to your own sites pages and scripts. Do not have absolute URL paths to your own directory on phoenix. You account may be disabled when we mark your assignment.
The standard excuse of scripts working somewhere else but not on the server will not be accepted for this assignment. You will get the full deductions if your submission doesn't work, regardless of how well it works at home or in another directory. One easy way of testing whether everything is OK is to periodically copy all your files to a different directory on on your own account on phoenix, and see if every page still works as it should.
- You may use whatever feature of the Apache web server that is available on your acount on phoenix to enhanced your web site. These extra features will not be assessed directly, but may help you in other general design aspects of the marking scheme.
What you must not do is use Apache's features to implement any of the the specific requirements of this assignment (such as user authentication). The specific requirements must be implemented using HTML, JavaScript and PHP only.
- If you have elements in your HTML requiring special plug-ins (eg. Flash animation), then your pages should have:
- Links and instructions to allow users on browsers without the plug-ins to download and install the required software.
- Options for the user to skip the special elements.
- Students in Computer Science and Internet Computing majors are recommended to take option (1) in part II, as the programming experience will be beneficial when you go on to doing higher programming in your 3rd year units.
- For part II 1(b), you do not have to write elaborate advisory documents. Create some dummy pages with a title and a line of text will do.
- Eventhough part I is worth so much more than part II, most of you will finish part I relatively quickly, but have to spend a significant amount of time on part II. This uneven marks distribution is deliberate. It is in keeping with most programming tasks, where you have to spend 90% of your time on 10% of the requirements. What it means is, it is relatively easy for you to pass, but you need a monumental effort to get a high distinction.
- Do not concern yourself with creating too much of data in your search facility. You may create just enough data to show the features of your scripts. But you should have data entries that at least have the following:
- Entries where some fields are identitical.
- Entries where some fields are blank.
Since the manipulation of database management systems (DBMSs) is beyond the scope of this unit, you may use simple text files to store the search data. If you do get on to learning to hook into DBMSs, the front-end processing principles will remain the same.
- Try and satisfy the requirements above in the order that they are specified. This will allow you to build from a very simple system to a more and more complex one, at each stage doing complete testing of what is already implemented. Your tutor can advise you on how to achieve this. Two mistakes inexperience programmers make:
- Write a large program satisfying all requirements at once, then realising it doesn't work and not knowing where to begin debugging.
- Not doing full testing of each section before moving on. When a bug does arise, the programmer is fooled into believing it is something implemented recently, rather than something implemented long ago.
- Hint: Part I (4) (f) may be done using HTTP cookies.
- For part II, you may use the following online tutorials on PHP user authentication a starting point:
- http://hotwired.lycos.com/webmonkey/00/05/index2a.html?tw=programming
- http://www.devshed.com/Server_Side/PHP/UserAuth/prin
- Read the assessment section of the study guide regarding referencing and honesty in assessments. All material which are not your own must be properly referenced - even code from the unit's textbook. Your tutor must be able to clearly see which sections of your submission is yours, and which are not.
A warning to those considering straying down the dark side: do not assume that just because there are so many documents out there that your tutor can't possibly find the ones you are using. If you can find it, so can we.
If you are not familiar with referencing formats, have a look at the Murdoch library's guide to citing references (http://wwwlib.murdoch.edu.au/guides/cite.html). Any one of the 3 listed styles (Harvard, APA or MLA) is acceptable in this assignment.H.L. Hiew
Unit Coordinator
Document author: H.L. Hiew,
Unit Coordinator
Last Modified:
Sunday, 22-Sep-2002 17:00:00 MST
Disclaimer & Copyright
Notice © 2002 Murdoch University