Please compelete USING SCENEBUILDER and JAVAFX

Please compelete USING SCENEBUILDER and JAVAFX


Page 1 of 10 Further Programming COSC2391 Assignment 2: Graphic Design Application Assessment Type Individual assignment; no group work. Submit online via Canvas → Assignments → Assignment 2. Marks are awarded for meeting requirements as closely as possible according to assignment specifications and the supplied rubric. Clarifications or updates may be made via announcements. Due Date Week 13, Friday 3rd June 11:59pm. Late submission penalty will be applied unless special consideration has been granted. There will be 3 milestones: week 8 in-lab milestone check, week 11 in-lab milestone check and week 14 post submission final interview. You will describe the key concepts adopted in your code, demonstrate code execution, and explain your code in the milestones. Marks 50 marks out of 100 for assignment 2. 3 milestones (5 marks for week 8 in-lab milestone checking, 5 marks for week 11 in-lab milestone checking, and 6 marks for week 14 post submission final interview) will add up to 16 marks in addition to the 50 marks. 1. Overview NOTE: Carefully read this document. In addition, regularly follow the Canvas assignment discussion board for assignment related clarifications and discussion. In this assignment, you are required to work individually to develop a Graphic Design Application, named Smart Canvas, to create posters, cards, and other visual content. You will practice your knowledge of object-oriented design principles, design patterns, Java Collections Framework, generics, exceptions, graphical user interfaces, serialization and deserialization, and unit testing. You will use Java SE 8 or later and JavaFX. Smart Canvas is a desktop-based application for creating graphic design. It has a similar concept to Canva, a web-based graphic design platform to enable users to create social media graphics, presentations, posters, documents, and other visual content. You can have a look at Canva website (https://www.canva.com/en_au/) and choose “play with Canva” option to see how a Canva looks like. Task specification Basic functional requirements are listed below (mandatory). • The application can have many users. • Each user can create a profile, with a unique username, password, the first name and the last name, and the profile photo. If there is no photo, a default profile photo is provided by the application. • Once the username and password are created, the user can log in. • Each user has an empty board after login. The board should display user’s profile photo, first name, and last name. • Each user can perform following actions: o Edit the profile (i.e., change the first name or the last name, select a new profile photo). o Create a new canvas with dimensions. o Zoom in/out the canvas. o Change the background color of the canvas. o Clear the canvas. o Export the canvas as an image. Page 2 of 10 o Add an element to the canvas. Elements include text, image, circle, and rectangle. o Move an element. o Rotate an element and show the angle for rotation when rotating. o Resize an element and show element size when resizing. o Delete an element. o For a text element, change the text content, font size, font type (e.g., Calibri), text color, font style (i.e., bold, italic), text alignment (left, centre, and right), and border color, border width and background color of the text box. o For an image element, change another image. o For a circle/rectangle element, change border color, border width and shape color. o Log out (and go back to login page). o Check the version of the application (i.e., About page). • The profile data should persist between logins for the same user. Note a password should be hashed and stored as the hash value in the database rather than a plaintext. You do not need to store the canvas. Advanced functional requirements are listed below (optional). • The application provides a premium membership (assume the premium user needs to pay additional fee to unlock the premium feature). A premium user has access to 3 templates to choose from. A regular user can subscribe as a premium user to unlock the premium feature and a premium user can unsubscribe from the premium membership at any time. Please check the Appendix A for a sample interaction with the Smart Canvas. Disclaimer: the specification in this assignment is intended to represent a simplified version of a system in real life and thus is not meant to be a 100% accurate simulation of any real system or service that is being used commercially. 2. Assessment criteria This assessment will determine your ability to implement Object-Oriented Java code according to the specifications shown below. In addition to functional correctness (i.e., getting your code to work) you will also be assessed on code quality. Specifically: • You are required to demonstrate your understanding of object-oriented programming principles, including encapsulation, abstraction, inheritance, and polymorphism. • Your object-oriented design should provide high cohesion and low coupling following well established design principles and patterns. • You are required to use well-tested Java collections. • You are required to validate all user inputs and catch and handle all exceptions. • You are required to demonstrate that you have done adequate unit testing using the JUnit framework. • Your interaction design must include appropriate JavaFX elements to make the system easy-to-navigate and consistent and respond clearly to every user action. • Your application needs to have a persistent state that must be stored in a file or a database. • You are required to write properly documented code. • You should analyse your design choice in building this desktop-based application in a separate one-page report. 3. Learning Outcomes This assessment is relevant to the following Learning Outcomes: • CLO1: explain the purpose of OO design and apply the following OO concepts in Java code: inheritance, polymorphism, abstract classes, interfaces and generics. • CLO2: describe and document diagrammatically the OO design of the Java Collection Framework (JCF) and apply this framework in Java code. Page 3 of 10 • CLO3: describe and document diagrammatically the OO design of the JavaFX APIs and apply these APIs to create graphical user interface (GUI) code. • CLO4: demonstrate proficiency using an integrated development environment such as Eclipse for project management, coding and debugging. • CLO5: describe and document diagrammatically common OO design patterns such as Model View Controller (MVC), Singleton, Facade and apply in Java code. 4. Assessment details In this assignment, you will incrementally build a graphic design application, named Smart Canvas. The assignment is structured into 3 milestones which must be demonstrated to your lab tutor (adding up to 16 marks in addition to the 50 marks for the assignment). Part A (mandatory) You are required to work on the backend part of the application (excluding data storage, which will be covered in Part C) regarding the basic functions mentioned in the task specification in Section 1 - Overview. You can start this part from week 6 and work on it until the due date. • You will incorporate object-oriented concepts to design and implement classes (including abstraction, encapsulation, inheritance, and polymorphism). • You will need to choose appropriate data structures to store relevant information (e.g., a list of users). You MUST use Java Collections Framework. • You are required to write unit tests for all classes that include functions in the backend part (excluding data storage) using JUnit framework. Your unit tests should have a good coverage of the typical use cases of your classes and test all reasonable corner cases. You do not need to write unit tests for getters and setters. • You are required to catch and handle all exceptions in your program. Avoid throwing an unspecific Exception; throw a specific exception. You can create custom exception classes if necessary. • You will need to document the code properly by following Code Conventions for the Java Programming Language by Oracle: https://www.oracle.com/java/technologies/javase/codeconventions-introduction.html • You will adhere to SOLID design principles (see materials in week 6). Part B (mandatory) You are required to work on the frontend part of the application and connect the frontend with the backend regarding the basic functions mentioned in the task specification in Section 1 - Overview. You can start this part from week 7 and work on it until the due date. • You MUST use JavaFX. • Your program should include appropriate JavaFX components to make the application easy-to-navigate. For example, each window should have a window title; menu options are selected from a menu bar. • Your program should respond clearly to every user action. For example, if the user types a wrong password, the login window should display a clear error message and ask the user to type again. • Your program should provide a visual consistency. Avoid using different styles and labels for similar elements on different windows of the application. • You are required to follow MVC design pattern to connect the frontend with the backend (see materials in week 8). • You can use other design patterns such as Singleton if necessary. Part C (mandatory) You can start this part from week 9 and work on it until the due date. • Your program should save the user profile data and allow the application to be restarted in the same state it was in at the end of the previous execution. You must store the data in a database (using JDBC) when the application closes and restore the data when the application starts again. Note the application may crash during the execution (make sure you save the data whenever you change any user profile data). • You are required to write a one-page document (minimum 300 words; maximum 500 words) to analyse and justify your design choice in building this desktop-based application. Your analysis and justification will need to cover the following questions: o How did you apply
May 26, 2022
SOLUTION.PDF

Get Answer To This Question

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here