ITECH6401 Enterprise Programming
Group Assignment: Enterprise Web Application
Groups of 3-4 students
Due date and weighting: refer to Course Description Assignment Objectives
The purpose of this assignment is to enable you to demonstrate your understanding in building an enterprise-grade web application supported by technologies made available in the Java EE platform. You will be able to combine your knowledge of the Java EE platform learnt over the semester to develop an effective usable application that solves real-world business problems.
The objectives for the assignment are:
• Incorporate Enterprise JavaBeans (EJBs) to handle the business logic of a large application
• Integrate persistent database storage for handling data management
• Extensive input validation and exception handling to promote application reliability.
• Support the web application interface using available technologies.
FedUni Library is a recently established community library and has contracted you to build a supporting enterprise-grade web application to help manage their item collections and provide an online loan system. You will be building this application using the Java EE platform. Since FedUni Library is a new business entity, they have provided you with total creative freedom over the branding of their web presence. This provides you with an opportunity to exercise your imagination and creativity while applying the technologies.
FedUni Library have provided you with a brief overview of what they expect their application to support. The scope of the application is up to you but the following functionality needs to be implemented. A higher quality solution will result in a higher mark.
CRICOS Provider No. 00103D
An outline of the expected functionality is provided below:
• There must be a detailed homepage acting as the 'gateway' for users. News and events such as latest items and library branch openings should be highlighted while providing the user with a usable navigation solution to the main parts of the website.
• You need to implement support for user registration and authentication so library patron can have their own login and have item loans associated with their account and bookmark items they are interested in. Additionally, there must be an 'Admin' user account which can manage aII data contained within the application.
• There must be a 'Items' page that showcases different categories of items and allows users to view details on specific items. When viewing items, the user has the option to request the item for loan (if available) and post comments regarding the item.
• Users should also be able to search for items based on multiple criteria (such as title and author).
• There must be a private user profile page accessible only by the authenticated user themselves, which enables them to view their bookmarks, loan history and an overview of any comments they may have made.
Note: For the purposes of this assignment, cross-browser compatibility is not an issue as long as the web interface and content renders correctly on a recent modern browser (such as Chrome, Internet Explorer, Firefox or Safari)
Application Architecture and Interface (15%)
Your application needs to demonstrate a sound knowledge of using the Java EE 7 platform, in particular, this category deals with the overall design and implementation of your application and the separation of functionality between the web and business tiers. A high quality submission will have integrated and explored using advanced functionality and application feature implementations of the various technologies covered in the course.
User Login and Registration (15%)
The application needs to support users being able to register an account so that they can bookmark items which they are interested in, add comments to items and request an item for loan. A login page must be presented to users should they be requesting functionality or if directly accessed via site navigation.
A registration page must also be available to enable users to create an account. When users are creating an account they must provide an email address, name and phone number. Each of these fields is mandatory and must be validated by the application. The validation metrics for the email address and phone number is entirely up to you but they must be reasonable. Invalid input should be rejected by the application and validator messages presented to the user explaining why the inputs were rejected.
Once a user has been authenticated, they must be redirected either to the previous page that required authentication. The user must also be able to access their private user profile page which highlights their bookmarked items, a loan history of all their requested items and any comments they have made regarding items.
Basic Item Management (excluding loans) (15%)
The application needs to support Create-Read-Update-Delete (CRUD) functionality for items on the online library system. While users are able to read information about items, only an 'Admin' user should be able to create, edit and delete item records.
For the purposes of this assignment, your application should have at least thirty item listings (loaded via MySQL script) and three item categories as sample data. Each item will have a unique id number, title, author(s), publisher, publish date, ISBN and an overall description. An item must also be listed within a category and can potentially be listed in multiple categories if desired. A supporting image for each item is optional. Database should be in 3NF.
Advanced Item Management - User Commenting, Item Search and Loans (35%)
In addition to the basic items functionality identified above, authenticated users must also be able to post user comments regarding items (such as a review). Comments must be associated with a user profile and contain textual information regarding the comment itself. Extended information for the comment (such as a review score) is up to you as the developer. The 'Admin' user must be able to manage user comments by being able to edit or remove records as desired.
Users must also be able to locate items in the library system by performing a search query where the entered keyword input can be matched against the item title and other criteria (such as ISBN). Search results should be presented on an individual page which can be item marked by the user or via the web browser.
Lastly, users need to be able to make item loan requests when viewing a item and other parts of the interface if desired. If an item is marked as available for loan, the user is able to press a button to get the item as a loan. Once an item loan has been received, it is allocated to the user that requested it and is marked as due back within two weeks. Once a user has finished using the item, they may press another button to indicate it has been returned. The 'Admin' user can also override individual item loans should they become overdue or lost.
Demonstration (10%) & Documentation (10%)
You will have an opportunity to demonstrate your application. You will be given a chance to allocate a time during the Week 11 tutorial. You will be asked questions regarding your design approach to your application, justification behind your approach in the interface design, usage of the web service and underlying technologies and review of your application's overall code quality. In your documentation, clearly show which part of the project was authored by whom. Although this is a group project, in cases where the contributions were not equal, marks will be adjusted accordingly.
You will need to export your NetBeans project as a ZIP archive with the filename as:
depending on the number of students in the group. Any other necessary documentation can be
uploaded as separate files or included with the ZIP archive. All files are to be uploaded onto Moodle and will be used for on-campus students to perform their demonstration to the tutor.