A website is required for a community recycling service. The website will allow listing of items offered and items wanted. There is no charge for the service and items may only be given away free.
Â
Items listed are likely to be such things as second-hand furniture or surplus items related to hobbies, crafts and DIY, such as yarn and paint. Listing for items wanted should give a short description of what is wanted, an example might be Wanted desk and chair. Iâm setting up an office in my spare room and need a small desk. Mate has a van, so can collect locally.
Â
Items offered should have a description and also a category type, one of: Household, Hobbies, Toys, Electronics, Garden, Collectable, Other. The condition of items offered should also be shown as: new/unused, used, damaged, or scrap.
Â
Each offered and wanted listing will have an expiry date, and expired listing should not be shown to any users other than the creator of the listing. Listings should also be hidden or removed when no longer required, for example when the item has been claimed by a user of the website. You may assume the website is for your local community.
You are required to design and develop a web site. The design must be captured using suitable diagrams. The design must meet the requirements marked âYesâ below.
Â
The web site should be a packaged web application (WAR) written in Java and deployable using Jetty or Apache Tomcat web servers. The application should store data in database. One of SQLServer, MySQL or MongoDB databases should be used.
Â
User story |
In scope? |
As an unregistered user of the site I can view descriptions of items offered and wanted. |
Yes |
As a registered user I can place offered and wanted listings. |
Yes |
As a registered user I can create and edit a user profile. |
Yes |
As a registered user I can view the user profile of other users. |
Yes |
As a registered user I can post questions about listings. |
Yes |
As a registered user I can post responses to questions about my listings. |
Yes |
As a registered user I can edit and delete my own offered and wanted listings. |
Yes |
As a registered user I will get email notifications of any questions or replies addressed to me. |
Yes |
Â
Present your work in the form of a zip file containing your deployable WAR file, and a pdf document (A4 page size, portrait mode exclusively) containing the following.
A single-page class diagram in UML notation, covering the registration and listing processes. Show attributes and operations. There is no need to show method invocation.
A single-page state diagram in UML notation for each of the following classes: (a) User, (b) Wanted item, (c) Offered item. Label each state and transition clearly, and use super-states where applicable.
For example, this could be the text of each stored procedures with explanatory comments for an SQL database, or sample documents in JSON if NoSQL is used.
The design for each page in your application, represented in wireframe/mock-up form.
A single-page diagram showing every page in your application and the permissible navigation paths between them.
The Java code for your classes, formatted to be easily readable. Your code must be properly indented and must include explanatory comments. Appropriate test cases should be provided. Your WAR file will be checked for correct operation using Jetty.
This should include an itemised list of pre-requisites and step by step instructions to install the software assets and verify correct operation.
The above items must make sense when read in conjunction with one another. For example, the Java code must match your class diagrams, each state in your state diagram must be uniquely distinguishable from the attribute values in the relevant class, and so on. Diagrams must be drawn using a suitable software tool. Make your diagrams as easy to understand as possible.