A local newspaper, The Derventio Times, publishes a classified advertisements section in its daily edition of the newspaper that advertises items that its readers want to sell. The newspaper has now been made available via the web, but the classified advertisements section has not yet been written. It is your job to write the classified advertisements site. For now, you can write it as a completely independent web site – at some point in the future, it will be incorporated into the main Derventio Times site, but for now it will just be linked to. The requirements for the site as follows:
Anyone who visits the site must be able to view all of the advertisements without needing to log in. Only users who have subscribed to the site can place new advertisements and subscribers can only change or delete advertisements that they have placed.
In order to place an advertisement, a user must subscribe to the site. They must choose a unique username and a password. They also provide contact information which includes their full name, address, telephone number and email address.
Once a user has subscribed to the site, they can login using their username and password and create new advertisements or change or delete advertisements they have previously placed. Each advert should contain a description of the item for sale, contact information (email address or phone number) for the seller and an expiry date.
Ideally, the site would have a search facility that enables users to search only for items they are interested in. Ideally, adverts that are past their expiry date should be automatically removed from the system. Users should be able to change their contact information, username or password. An administration facility should be available that enables a site administrator to reset users passwords, delete users, etc. It should also enable the administrator to see all current advertisements and edit or delete them.
Your task is to design and implement a site according to this specification. The site must be developed using PHP or ASP.NET - no other scripting technology is acceptable. If you choose ASP.NET, any of the supported .NET languages may be used (C#, VB.NET, etc). Also, if you use ASP.NET, either WebForms or MVC is acceptable. You may use any database engine you wish. Various database engines are available if you are using lab-based machines.
There are two components associated with this task: