Ict221 java programming assignment - your task is to build


Java Programming Assignment -

Your task is to build an interactive graphical program for exploring various ICT Careers, and their connections with the minors and the courses in the BICT degree.

The Excel screenshot on the next page shows the kinds of information your program will enable students to explore.

We would like to release this BICT Explorer to future students, as an app to plan their degree. One of your GUI designs could be chosen for this!

Overview - You will be given some core Java classes and data files that capture the careers, minors and courses of the BICT.

Your job is to test that code, and to design and build a GUI that allows a student to interactively explore various careers and minors, and to print a report about their chosen options at any time.

Learning Objectives -

1. Use object-oriented design (OOD) to design Java programs;

2. Be able to use inheritance and subtyping relationships between classes;

3. Be able to use association or composition relationships between classes;

4. Be able to develop a comprehensive suite of unit tests for the core logic classes of an application (the model part of the program);

5. Demonstrate your ability to read and write text files, to save and load data;

6. Build graphical user interfaces using JavaFX;

7. Use a distributed source code control system: GIT.

Getting Started -

You should aim to complete these activities during Week 9.

1. Start by creating your private GitHub repository by clicking on the link in the Assessment / Task 2 area of Blackboard, then accepting this assignment.

2. Then clone your new repository down to your development machine using IntelliJ, so that you can work on it. When you finish each of the following steps, make sure you commit and push your changes back to GitHub.

3. Create test/au/edu/usc/bict_explorer/rules/CourseTest.java, and add some JUnit 5 tests for the 'rules/Course.java' class. This will help you understand how the Course class works. Note that it is a subclass of the Option class, so you should also read the Javadocs for that class too. The superclass (Options) has already been tested, so your Course unit tests should focus on thoroughly testing the new features of this class (semesters and prerequisites). You must submit these unit tests as part of your final submission.

4. Write a text-based program that uses the rules/Degree class, and prints out all its minors, with the courses of that minor shown indented, after each minor. (So, a nested for loop). Print the output into a text file called bict.txt. Later on, you will be able to incorporate this code into your GUI, as the basis for generating reports about the currently chosen minors and courses.

Designing and Implementing the GUI

Design and implement a GUI for the BICT Explorer.

Your GUI should allow students to explore and select the various ICT careers, BICT minors and courses that are defined in the data files.

Requirements:

  • Usability: Your GUI should be elegant, easy to use, and robust.
  • Data-Driven: Your GUI should be data-driven as much as possible, so that when the details of BICT minors or courses change in the resources files, your GUI automatically adapts to those changes without any Java code changes.
  • CSS Stylesheet: You should use a CSS stylesheet to style your GUI, so that the style can easily be changed later by a professional designer, without any Java code having to be modified.
  • Statistics: your GUI should display the total number of selected courses. This allows the student can see if they have chosen enough courses, or too many, etc.
  • Report generation: you should provide a way for the user to save a report showing their current selections (careers, minors and courses) into a text file or HTML file. The user should be able to enter a name for this report, which will be used as the file name, and should appear in the report as well. This will allow students to experiment with different selections, saving a report about each one.
  • Helpful course selection: your GUI should not allow a course to be selected until its prerequisites are satisfied (i.e. until course.isSatisfied(...) is true). If the user tries to select a course whose prerequisites are not satisfied, it would be helpful to display a message (Alert) about this, showing the required prerequisites.
  • Helpful course arrangement: for good readability, your GUI should group the courses by their year level, or sorting them into alphabetical order by their codes (which groups them by discipline then by year level).

Attachment:- Assignment File.rar

Request for Solution File

Ask an Expert for Answer!!
JAVA Programming: Ict221 java programming assignment - your task is to build
Reference No:- TGS02797222

Expected delivery within 24 Hours