Reference no: EM133206589
Team-based Enterprise Application Development Project
This assignment is a team-based software development project. You will work in a small team for the design and development of a 3-tier enterprise application. You will practise working collaboratively and communicate effectively as part of a productive team.
Part 1: Software Development and Documentation.
This part is to design, implement, test and document a 3-tier enterprise application. The application scenario and project specification are as follows.
The application scenario
A real estate company needs to implement an e-business system to manage properties. The system is a typical 3-tier enterprise application that integrates a presentation tier, a business tier, and a persistence tier. The real estate company has delegated this task to an IT service company. After user requirements and budget analysis, the executive of the IT service company has decided to use Java EE open-source technology and related platforms for the implementation of the system. As an officer of the IT service company, you are assigned as the designer and developer for the system core. To accomplish this task, you will need to design, implement and test and document the e- business system.
The project specification
1. The persistence tier
a. The real estate company manages two types of property: properties for sale and properties for rent. A major assumption is that the two types of property have some common attributes such as property ID, property address, property description etc. However, a sale property has speciality properties such as Sale Price; a rent property has speciality properties such as Weekly Rent.
b. The property information must be persisted into a MySQL database. You are required to use Java Persistence API (JPA) to persist the property information into a MySQL database. In order to minimise code redundancy, you should use inheritance mapping. In your design, the Java classes should be at least 3 with 1 class as the super class to abstract the common attributes and operations for the two types of property and the other 2 classes are used to abstract other attributes and operations that are particular to a type of property, such as weekly rent price for a rent property or sale price for a sale property. You are required to use Java Persistence API (JPA) to persist the property information into a MySQL database. You are required to use the Joined-Subclass Strategy in your design of entities.
c. The real estate company needs to persist the contact details of a property manager and his/her allocations, which is a list of properties that is assigned to him/her for sale or rent management. You are required to use entities to persist property managers and their allocations (managed properties). The relationship between a property manager and his/her allocations must be one-to-many unidirectional i.e. a property manager can manage multiple properties.
2. The business tier
Develop the business tier by using Enterprise Java Beans (EJB). The business tier will process the data persistence or retrieval requests from users and interact with the persistence tier for accomplishing the requests.
Note: to interact with the persistence tier, the EJBs need to use Java Persistence Query Language (JPQL) to query entities and return the processed results to the presentation tier.
3. The presentation tier
Develop the presentation tier by using JavaServer Faces (JSF). The presentation tier will provide a web-based user interface, which will allow users to enter property details, property manager details and allocation details and retrieve the persisted information. Presenting exception messages, e.g. a user doesn't enter data for a required textbox, is necessary and required for this tier.
Note: you need to review Backing Beans as the core component of presentation tier and its functions for JSF pages' navigation and do some personal research if necessary.
A separate document for the demonstration of the system functions is available on the unit Moodle site. You will need to use that demonstration document as a part of the assignment specification. You will need to ensure that you fully understand the scenario and project specification before developing the project; you will also need to ensure the developed system fulfilling the functional requirements as shown in the demonstration document.
1. Documentation
a. The diagram of architecture: it should include major components from all 3 tiers, which are depicted by using any formal method e.g. UML.
b. The typical workflow: you need to use an example workflow, e.g. allocating a property to a property manager, to describe the tier components interaction and JSF pages navigation.
c. The end user manual and test instruction: you are required to provide detailed instructions about how a user would compile and deploy the software application and use it to persist at least 2 sale properties and 2 rent properties, 2 property managers, where each property manager is allocated at least 2 properties, one for a sale property and the other for a rent property, for management.
2. Software
You will need to provide the complete implementation code of the 3 tiers, including Java source code and executable files, persistence files and JavaServer Faces xhtml pages. You need to provide your implementation by a NetBeans project, which must satisfy:
a. The project can be compiled directly without any further revision/re-development or debugging.
b. The generated .war application from the project can be executed on a separate GlassFish server (not the NetBeans embedded one) to interact with a MySQL database.
Only one submission of this part from the team leader is required. The complete project and the documents will need to be compressed into a zip file for the team leader to submit. This part will be marked, and the same marks will be given to all team members.
Part 2: Teamwork Report
A student, who completes the whole project as a member of a productive team, is to prepare a document in the following format and address the following questions.
Note: this part is to address a team member's individual experience with teamwork. The document is not shared between the team members; each team member needs to submit his/her document individually. The same/copying contents of this part by 2 or more team members will be treated as plagiarism.
Template A
1. Team Details
a. Team Name (optional):
b. Your Name and Student ID:
c. Team Leader (Name and Student ID):
d. Other Team Members (Name and Student ID):
2. Teamwork Report
a. Describe team forming, task assigning, your role and responsibility and the project timeline
b. List 2 technical problems in the project development and describe how the problems have been solved by the team.
c. List 2 collaborative problems in the teamwork and how the problems are negotiated and solved by the team.
d. Describe and justify what is important for the success of teamwork.
e. Describe the communication skills that you have developed in this small team-based project.
A student, who separates/quits a team in the middle of the project, is to prepare a document in the following format and address the following questions.
Template B
1. Team Details
a. Team Name (optional):
b. Your Name and Student ID:
c. Team Leader (Name and Student ID):
d. Team Members (Name and Student ID):
2. Teamwork Report
a. Describe team forming, task assigning, your role and responsibility and the project timeline
b. Describe what major problems that cause you to leave the team or cause the team to break into individuals.
c. Describe and justify the impact on you and other team members caused by your leave or the break of the team
d. Describe and justify what are important strategies for successful teamwork.
e. Describe and justify how you can avoid such hindrances of teamwork in future opportunities of teamwork.
Attachment:- Enterprise Application Development Project.rar