a) Demonstrate familiarity with the open source web servers and the web clients.
b) Use open source client-side technologies for building the web sites.
c) Use open source server-side technologies for building the multi-server, multi-tier web applications.
d) Select and use appropriate open source technologies for the development of web applications.
e) Describe and critically discuss the issues surrounding the design and implementation of web applications.
You have to create the web site for an apple farm.
John Smith has been a farmer for the number of years and he has been using the offline inventory system to manage his day to day farming business. The offline software system which he is currently using allows recording sales and keeping track of his apple fields but that’s about it. Having heard of wonderful online solutions that are available to he has decided to hire you to build the better system for him.
His requirements in a nutshell are:
• He plants, grows, harvest and sell fifty three apple varieties – he needs to use website to allow customers to see the available varieties of apples and express interest.
• As more than one customer can express interest for the apple variety, customers are to be served on a first come first served basis.
• Customers can be new or returning customers (never registered or registered with the site/have bought produce before). Apple produce is collected onsite (cash payment) although there is thought for a future option that would allow shipping of produce.
• Visitors to the site must be able to search and browse produce varieties for items on offer.
• Only registered users must be able to use site and register interest for apple produce.
• The farmer must be able to search through the sales history.
To implement the site you supposed to use HTML 5. Site must run from the web server and make use of MySQL database.
Level 1 : Account creation
Create an HTML5 form allowing visitors to create an account with the site. The form must mandate basic contact details but should also allow for personal information to be included (think facebook). Account details are to be stored in your MySQL database. Information should be stored in a secure way. Visitors should be able to choose a username and password. The system must prevent duplicate usernames being chosen. Newly created accounts should remain inactive until they are verified by handshaking the email details (Level 3).
Note: Remember that some characters (notably the apostrophe) can cause problems with your SQL strings. The member passwords should ideally be stored in the database in an encrypted format. Authentication credentials should be protected from interception in transit.
Level 2 : Authentication
Provide a login form that allows members to authenticate with the site using their username and password. These credentials should be compared with the information recorded in a MySQL database.
Note that you will need to initiate some form of session state to prevent unauthorised access to further activity. New members will also need to verify their account details (Level 3) before being allowed access to further activity with the site.
Level 3 : Verify account
Account verification will require sending a message to email address provided in Level 1. This email message must include some sort of key which enables the member to activate their newly created account after they have authenticated with the site. Members must not be allowed to make further use of the site until they have verified their account. Members must only be need to verify their account the first time that they authenticate.
Level 4 : Editing details
Provide HTML5 forms that allow authenticated members (who have verified their account) to add to and edit existing information stored about themselves.
Note: Editing information is not the same as re-entering information, the user may only be seeking to correct a spelling mistake and so should not be required to re-enter complete data. The simplest way to implement this is to re-use the form that you created in Level 1 but populated with default values extracted from your database.
Level 5 : Offer apple varieties and express interest
Provide HTML5 forms which allow our farmer to advertise apple varieties he grows - These forms must allow to upload images associated with the produce. Images can be stored as either files on the server or as a records in the MySQL database.
Level 6 : Allow customers to express interest on an apple variety
These forms must allow members to be able to express interest on the advertised apple variety. The system must allow for editing and deleting of the offer. Offer can be in the form of “I am interested in 500 kilos of apples variety type 1 and I am willing to offer £1000 pounds”. These offers are to be sorted displayed based on price per kilo.
Level 7 : Keyword Search
Provide a means for our farmer to search the order history of all orders placed in the system. Search results should be initially returned in a brief list format where each entry in the list may be clicked to show full item details. Result lists may become lengthy and should therefore be paginated.
Note: A casual visitor should not be expected to authenticate with the site. Obviously this means that he/she cannot make an offer for produce.
Use of tools
You are expected to use web authoring tools to aid your productivity. If you wish, you may make use of WYSIWYG. Be careful when using code generators that you understand the code that is being generated and that the tool that you use doesn't insert components that require specific client or server support.
Remember that your application needs to run in a range of browsers such as Mozilla, Netscape, Opera and Internet Explorer and that the servers that your sites run on may not have FrontPage server extensions installed.
This report should contain sufficient information to allow another developer to understand and maintain your work.
1) The report should contain clear evidence of testing, including a test plan and a test log
2) A list of any bugs in the program
3) Brief reflection on strengths and weaknesses of theprogram. This is the opportunity to show why you have done things in a particular way and what you have learned from the process.
4) Brief design documentation including diagrammatic schemas for all databases used and a list of all files that you have created with a description of what the files are for.
5) Screen shots of your programs in operation. Include notes with your screen shots to describe how they describe the functionality which you have implemented. Note that it is more appropriate to have all screenshots numbered in the appendix of your report.