A classified site where administrators can add categories in the back end (administration section) and users can advertisements to these categories in the front end.
The users should be able to view the items in a tabular format, including a picture and important attributes of the item such as title, price and location. Users will pay for the advertisement to be listed for a given amount of time, for instance 30 days, but this length of time must be flexible. Initially this period will be 30 days and listing an advertisement will be free, so the payment solution will not need to be fully implemented straight away. The user must be able to easily edit their advertisement including uploading and attaching photos to the item. This should also allow for a leading picture to be selected from those uploaded.
Each listing must contain the ability to hold threaded user conversations (such as a discussion forum). In addition to this a discussion forum (this can be using the sfSimpleForumPlugin) is also required, including the ability for users to private message each other.
The categories should allow for an infinite number of subcategories. Items in different categories and subcategories have different attributes. There will be some attributes common to all advertisements such as the item name, location, price and advertisement body. The list of attributes available to items in any given subcategory must be editable by the administrator.
A simple site news/blog facility should be visible on the front page. This should allow administrators to create news stories and updates.
Design must be simple, fresh and fully standards compliant, with a particular focus on modern XHTML and CSS. All HTML outputted by the code for the front end must be simple <div>s and must be fully XHTML compliant. Use of the symfony CRUDs for the back end is acceptable, but these cannot be the permanent interface. JBtwo will supply the necessary materials and data for the creation of the template and layout by the subcontractor.
Shortly after Phase 1 is complete and signed off by the client there will be further extensions to the site’s functionality. These include:
A calendar of events should be viewable to the users. This should include the capability of registered users to be able to submit calendar entries. These should then require administrator approval before they are displayed on the calendar. Calendar entries should be able to have a picture attached and a brief description.
==Payment solution integration==
We have already written symfony plugins for PayPal, Protx and Google Checkout. Most of the work is already done. However these will need to be integrated into the classifieds (item listing) system.
Administrators should be able to see information about visits to their website. Use of Google Analytics would be acceptable initially, but in the fullness of time a built-in solution should be developed.
The design of the site will need to be changed after Phase 1. This will probably involve the layout.
Administrators should be able to create thread categories. Registered users of the sites should be able to create and contribute to threads. Users should be able to create profiles including profile pictures.
Users should be able to form groups and have their own news/blog section and calendar. Further additions They may be more features requested by the client, in which case
Subcontractors shall not have any contact with the client. If this boundary is not observed JBtwo retain the right to terminate this contract with 24 hours notice and withhold payment permanently. JBtwo may give permission for the subcontractor to contact the client in which case the subcontractor must observe the appropriate procedures defined by JBtwo. Subcontractors must relinquish control over any part of the system upon completion including, but not limited to, system passwords, source code and design notes All source code, configuration files and graphics are the property of JBtwo before and after completion. If the author of such works, with the permission of JBtwo, decides to contribute source code to the symfony community in the form of plugins the subcontractor may reuse the code.