Information technology service operations

                 COIT11134 Object Oriented Programming (T2 2018) Assignment Item 2 – Object-Oriented Programming


Due date:       Week 11 Friday (28-Sep-2018) 11:45 PM AEST      ASSESSMENT

Weighting:     20%                                                                                          

Length:           NA                                                                                           




  • Develop a Java GUI application using more than one Java classes
  • Read and/or write from/to text files
  • Use search algorithms and/or sort algorithms
  • Use ArrayList or LinkedList or any other dynamic data structure


Assignment Task (Version 1.0 last updated on 27/06/2018)



ABC College offers short courses in information technology. They have around 300 students enrolled with a team of 25 staff members. The management is implementing a trial to see how viable outsourcing Information technology service operations will work with a centralised call centre driven model. Students and staff need to make a call to raise any software/hardware technology requests. This system keeps track of the requests only for the current day and this information can be delegated to a local technician to handle each request.


Develop a java GUI application using swing components to implement the above functionality.


The functional requirements for the proposed system are:


  1. Book job requests.
  2. Edit job requests.
  3. View requests ( sort/search/save to file options)
  4. Exit


Below are the itemised prices for each request. The staff requests are expensive because they are more time consuming and might deal with an entire course.


        Request Type Student  Staff 
1  Software $16.99  $34.99
         2  Hardware $29.99  $49.99
Example of valid ids’ S1234,S0015  T3402,T4123








Uml class collaboration diagram


BookingFrame  Swing Components Events
  JFrame, JPanel formWindowActivated
Inputs        :RequestNumber (Autofill) JTextField  
Inputs        :RequestId JTextField  
Inputs        :RequestType JCheckBox  
Outputs     : JLabel  
Operations: Book, Edit,  Exit JButton Click Events



EditFrame  Swing Components Events
  JFrame, JPanel, ButtonGroup  
Inputs: RequestNumber (Autofill) JComboBox, Change Event
Inputs: RequestType JCheckBox  
Inputs: RequestStatus JRadioButton  
Outputs: JLabel, JTextArea  
Operations:Update, Delete , Cancel, Exit JButton Click Events


ViewFrame  Swing Components Events
  JFrame, JPanel, ButtonGroup, JRadioButton  
Outputs: JLabel, JTextArea  
Operations: Fetch,Sort,Save,Total Exit JButton Click Events



Every New Request will be either of a StudentRequest or a StaffRequest with default values for requestNumber set to the autofilled number, requestStatus set to true (open), openDate set to current date, closeDate set to null, requestType is set to a number[1-3] and charge set to 0.Charge should be computed only when requestStatus is set to false(closed).




Uml state diagram showing flow control


JFrames should be used and can be designed graphically (drag and drop) or manually. Bonus marks given if design is done manually using layout managers, since more effort and learning is involved. (See marking guide)



Booking Frame sketch


When this frame is loaded and becomes visible the request number should be auto filled. Validations for the Booking remain the same as in Assignment 1. (No marks awarded here).


When the Book Button is clicked:

A new instance of the relevant request must be added to the list. Request Number should be auto filled with auto increment and should not be editable. Edit and View buttons should be disabled if the list size is zero.


When the Edit Button is clicked a new frame should be opened.


When the View Button is clicked a new frame should be opened.


No need to check for unique request number when adding to the list. The auto increment feature should avoid this problem to a large extent.


Date format example below.

SimpleDateFormat DATE_FORMAT = new SimpleDateFormat(“dd-MM-yy:HH:mm”); System.out.printf(“%s”, DATE_FORMAT.format(new Date()));


Edit Frame sketch


When this frame is loaded and becomes visible. The dropdown box must be populated with request numbers from the list and the first number should be auto selected. All controls should reflect changes to the request Number changes from the combo box.


When the Update Button is clicked:

Request Status if open, the close date should be null and the charge should be set to 0.0 Request Status if closed, the close date should be auto filled with current date and charge should be calculated and set based on the request type. All these details must be shown in the text area.


When the Delete Button is clicked:

The current selected item in the dropdown box must be removed from the list. The contents of the drop down box should be updated. currentIndex instance variable can be used to keep track of the current selected item from the combo box.


When the Exit Button is clicked:

The Edit frame should be disposed and Booking frame should be made visible.


View Frame sketch


When this frame is loaded and becomes visible. The View Frame should open with text area empty and with default selections as shown above.


When the FetchList Button is clicked:

The list items should be shown in the text area by All Requests (default) or Student Requests or Staff Requests. Sort choices selection can be ignored here.


When the sort Button is clicked:

The items in the list are already in sorted order by request number due to auto increment.

This order will be lost when the user sorts by status and can be restored with this option. Sort can be done on ascending order of Request Number (default) or on Request Status using any sort algorithm (Selection/Insertion/Bubble). (No java inbuilt sort methods allowed).


When the saveToFile Button is clicked:

The contents of the list should be written to a text file named “SaveRequests.txt” in a simple format as below. (Fields separated by a single space or a tab). Example below.

  • S12345 closed software 22/06/2018 23/06/2018 16.99
  • T12345 open software+hardware 18/05/2018 null 0.0


When the TotalCharge Button is clicked:

The text area should display all the closed requests along with the total charge.


When the Exit Button is clicked:

The View Frame should be disposed and Booking frame should be made visible.


What if my code is similar to other student?

All students will have the same shell (class names and method signatures) provided in the class diagram. Your swing control names, frame layout, comments and code under each method/listener will be different.

The assignment must be submitted in the following form:


  • A zip file containing all the Java source code files. If done using NetBeans, a zip of the entire project folder.
  • docx (a word file containing screen shots showing various inputs, error messages and outputs from your application program when it is run).


Assignment 2- Marking criteria