联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> Java编程Java编程

日期:2023-05-18 09:19

Page 1 of 4

RMIT Classification: Trusted

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, Sunday 4 June 11:59pm. Late submission penalty will be applied unless special consideration

has been granted.

There will be 2 milestones: week 12 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 at the milestones.

Marks 45 marks out of 100 for assignment 2

5 marks for week 12 in-lab milestone check in addition to 45 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 MyTimeTable,

which allows students to manage courses. Building on your work in Assignment 1, 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.

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, the last name, and the student

number.

• Once the username and password are created, the user can log in.

• Each user has a dashboard after login. The board should display a user’s student number, first name, and last

name.

• Each user can perform the following actions:

o Edit the profile (i.e., change the first name, the last name, or the password). Student number must not

be editable.

o View all courses. The list of all courses offered is provided in course.csv file. The program should show

all available courses (i.e., courses that still have capacity for extra enrollments) and courses that are

full, where there are clear indicators about which courses are full and which courses are still open for

enrollments.

o Search for a course. A user should be able to search for a course and look up the information of that

course.

o Enroll into a course. The program should be able to detect duplicated enrollments (i.e., a student cannot

enroll into the same course twice), and detect class clashes (i.e., a student cannot enroll into a course

that clashes with another course that he/she has already enrolled into.)

o Withdraw from a course.

Page 2 of 4

RMIT Classification: Trusted

o View all enrolled courses in list view (a list of all enrolled courses) and timetable view (a timetable of all

enrolled courses).

o Export the list of enrolled courses to a file.

o Log out

• Each course from the couse.csv has the information of Course name, Capacity, Year, Deliver mode, Day of

lecture, Time of lecture, and Duration of lecture.

o For each course, the number of total enrollments should not exceed the maximum capacity. For online

courses, the capacity is specified as “N/A”, and therefore, there is no limit on the number of total

enrollments.

o You can assume all courses run from beginning of March until end of May, for simplicity.

• The profile data should persist between logins for the same user.

• You will get a bonus (4 marks) if you provide the following functionalities for each user:

o Change the font size, font type (e.g., Calibri), text color, and font style (i.e., bold, italic). Note that bonus

marks will be awarded given the coverage of texts, of which the fonts can be changed.

• You will get a bonus (1 mark) if you store users’ passwords through hashing: a password is hashed and stored

as the hash value in the database rather than a plaintext.

• The bonus marks will be added to compensate any marks that you have lost elsewhere.

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.

4. Assessment details

In this assignment, you will incrementally build a graphic design application, named MyTimeTable. The assignment is

structured into 2 milestones which must be demonstrated to your lab tutor.

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 7 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.

• 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

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 (if applicable) 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.

• The UI design of your program should serve the purpose of the application.

Part C (mandatory)

Page 3 of 4

RMIT Classification: Trusted

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.

Part D (optional)

You may optionally implement the advanced functions mentioned in the task specification in Section 1 - Overview. The

completion of part D will provide bonus marks (i.e., 5 marks) which can be used to compensate the marks that you have

lost elsewhere. You can start this part from week 7 if you are planning to obtain some bonus marks.

6. Academic integrity and plagiarism (standard warning)

Academic integrity is about honest presentation of your academic work. It means acknowledging the work of others while

developing your own insights, knowledge and ideas. You should take extreme care that you have:

• Acknowledged words, data, diagrams, models, frameworks and/or ideas of others you have quoted (i.e. directly

copied), summarised, paraphrased, discussed or mentioned in your assessment through the appropriate

referencing methods,

• Provided a reference list of the publication details so your reader can locate the source if necessary. This includes

material taken from Internet sites.

If you do not acknowledge the sources of your material, you may be accused of plagiarism because you have passed off

the work and ideas of another person without appropriate referencing, as if they were your own.

RMIT University treats plagiarism as a very serious offence constituting misconduct. Plagiarism covers a variety of

inappropriate behaviours, including:

• Failure to properly document a source

• Copyright material from the internet or databases

• Collusion between students

For further information on our policies and procedures, please refer to https://www.rmit.edu.au/students/studentessentials/rights-and-responsibilities/academic-integrity

7. Marking Guidelines

• GUI (10/45)

• Functionality (20/45)

• Object oriented design and choice of data structures (10/45)

• Source code quality (5/45)

• Milestone check week 12 (5/5)

GUI: The application is easy-to-navigate and consistent and responds clearly to every user action. Note marks for GUI

are checked during the post-submission interview. If you do not attend the final interview, you will be awarded ZERO

mark for GUI.

Functionality: All basic functions required by specification are implemented correctly covering different cases that might

happen during the usage of the program. Note marks for Functionality are checked during the post-submission

interview. If you do not attend the final interview, you will be awarded ZERO mark for Functionality.

Object oriented design and choice of data structures: Appropriate choice of data structures that serves the purpose of

the application. Class designs that adhere to the SOLID principles.

Source code quality: Adequately documented and properly indented code; appropriate class/method/variable names.

Milestone checks:

Page 4 of 4

RMIT Classification: Trusted

• In-lab milestone check in week 12 (5 marks): Clearly explain how the code follows MVC; complete required

functions and demo via code execution, including user login and sign-up, change of user profile.


版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp