Developing Enterprise Systems
The purpose of assessment is to assess students on the following Learning Outcomes:
LO1: Apply best practices to design application components and business objects by analyzing the business needs and adopting software engineering best practices.
LO2: Structure Web Tier & Application Components by identifying the most appropriate structural pattern.
LO3: Implement data access/persistence mechanisms including implementing enterprise grade transactions in traditional as well as non-SQL data environments.
LO4: Carry out research on emerging tools and use expert knowledge gained to choose the right developmental strategy and tools to implement enterprise solutions without compromising prudent design principles.
LO5: Synthesize complex enterprise business and operational needs to develop robust, reliable and secure applications in a chosen implementation platform such as spring, jsf etc.
This is a group assessment. In this assessment, you are required to develop a J2EE project with MVC architecture using NetBeans environment and MySQL database component. The aim of the project is to enhance student’s skills by applying their theoretical knowledge to develop enterprise application using J2EE. The students are requested to use J2EE specifications and techniques including session management, Custom tags, Enterprise Java Beans, Java Database Connectivity (JDBC) and JPA (Java Persistence API) in the given project.
The project is to develop a small-scale enterprise application system of your choice. The application can have basic/similar functionalities as You must implement all the features and functionalities indicated in sub-sections below. You may explore further additional features to score higher marks. This information is detailed enough for you to complete the project. However, you will need to determine any unspecified details on your own.
- Proposal – Due in week 4
The project proposal needs to be submitted in week 4 along with the details of the group members involved in it. The group members should not exceed the count of four. The project proposal should contain a B2C (Business to Consumer) online store company/organization name with details of the goods to be sold by it. The student must provide clear indication of the organization and the online goods they propose to work on in the proposal.
The student needs to implement the following functionalities: –
(A) User Authentication, login and logout
The component authenticates the user before the access to the online store. The interface needs to be professional with appropriate logo, header and footers. The system needs to have more than one type of user e.g., administrator and customers (it may include more). It allows a new user to register into the system. A new user registration interface with input fields may include email, full name, password, re typed password and contact number (optional). Required client and server-side scripts for field validation needs to be provided. A login interface is must for the registered user to login to the system with the email address/username and a password. The inputted email address and password needs to be checked against the database. Otherwise, login failure message will be displayed. The system needs to have a logout button that redirects to the login page and clears the resource in use. As the user logs in, it displays the index page. This page can be used to add, update or delete products. The system needs to have customized interface for each user with their functionalities.
(B) Product Maintenance
A series of pages needs to be created that allows a user to add, update or delete a product that is available for a particular category in the system. The
administrator/vendors can enter new product categories and add list of products with their details within a category. The category and product details may include name, description, image, cost, quantity and any special features about the product. The information of the goods for the online store is stored in MySQL database. An interface to update/delete the products should be provided. The stock of the product based on the purchase/sale needs to be updated automatically.
(C) Search product and checkout screen
The registered customer may want to search for a product based on the category, or name of the product. A search functionality that displays a detailed description with an image(s) of the product needs to be provided. Based on the search, the customer may want to buy the goods online. They can buy product(s) of different category and add them in the shopping cart. Further, functionality may be added to the shopping cart: adding products, listing products and empty cart. A checkout page must display the selected product by the customer to purchase. The purchased product quantity needs to be updated in the database accordingly.
- Database Design – Due in week 7
You will be designing an efficient and useful database design to store the information needed for the proposed system.
A well-structure database:
- List all the entities with their attributes including the datatype to store the information for the given system. The nonduplicate entities gets converted into table with attributes as fields within the given database.
- Identify the attribute(s) that will serve as a primary/foreign key for each table. Attributes chosen as primary key should be unique, unchanging and never defined as NULL/empty.
- Create relationships between the given tables. Each defined entity has a relationship with every other one (one-to-one, one-to-many, many-to-many, mandatory etc.)
Important Note: All the components that include database connectivity needs to be implemented using JDBC and JPA. However, implementation of both the techniques in a single module is not mandatory in the project. This means the student may choose to implement JDBC/JPA in a module. But at least one instance of both is necessary.
Code related Guidelines
1.) Your J2EE application should include the following:
- The code should have a consistent, professional and well-organized appearance.
- Carefully chosen, meaningful identifier names
- Code is well organized: clear, simple, & DRY (Don’t repeat Yourself)
- Thoughtful comments, where needed, expressed in concise, precise English. e. Code should compile without errors
2.) The developed system takes input and handles the error in friendly manner.
3.) Connects to given database operating the basic CRUD operations following the proposed data model in week 4.
4.) Your project must adhere to MVC architecture with implementation guidelines including modularity, reusability, extensibility, maintainability and adaptability.
5.) You can find all the required software installations freely at following locations.
- Follow the links in Moodle to upload your report on or before the deadline. The report must be submitted on the LMS in the respective link i.e., MITS5502 Project – (Melbourne/Sydney).
- The J2EE application along with the database queries developed must be submitted in a zip folder on the LMS in the available link. The zip folder should include: o A document that consists of introduction, requirements, proposed database model with the attributes, screen shots and output with references.
- The NetBeans project folder with all the source codes (JSP, html, .java), configuration files, document containing database model and the database (.sql) file.
- A readme.txt file, which include your information.
- Follow the links in Moodle to upload your answer on or before the deadline. Late penalty applies on late submission, 10% per day would be deducted.
- Incidence of plagiarism will be penalized.