Reference no: EM133142260
COIT20256 - Data Structures and Algorithms Assignment - Central Queensland University
Objectives - The purpose of this assessment item is to assess your skills attributable to the following learning outcomes and your achievement of the expected graduate attributes of advanced level knowledge, cognitive, technical, and creative skills, self-management, research, and ethical and professional responsibility, and professional level communication.
1. Design classes which use inheritance, polymorphism, and exception handling
2. Develop multi-layered software solutions, focusing on data structures and algorithms
3. Integrate data sets using complex data structures such as linked lists, stacks, and queues
4. Investigate socially innovative practices in software development
5. Create Lambda expressions and streams using functional programming.
Assessment task - Paired Programming
Your task in this assessment is to analyse the given problem, model, and design the required data structures using UML class diagrams. You will be implementing the software solution, applying efficient algorithms, inheritance, polymorphism, and exception handling. The topics required for this assessment task are from Weeks 1-10. You will build and test a three-tiered software Application with a front-end having an interactive Graphical User Interface (GUI) using JavaFX GUI components and a back-end connecting to a database.
You should also write an individual report, as specified in this document, demonstrating your conceptual knowledge. You will be required to use the topics learnt in the pre-requisite unit Introduction To Programming.
Problem - This is an extension to the problem given in Assignment 1.
An Australian aerospace company has decided to enter the space race. It is setting up a start up company to explore the possibilities of designing and manufacturing space vehicles that can be launched into space and to re-enter earth's atmosphere by using renewable energy. The new start up, Aussie Space Xploration (ASX) is seeking to hire new engineering recruits to carry out the research and development in its new R&D facility that is currently located in Rockhampton. ASX has commenced the recruitment process by advertising for applicants to fill positions for their aerospace, mechanical and electronics engineering departments. The recruitment division will have administration staff to register incoming recruit details. These recruit details are then accessed by the management staff who will assign the applicants to one of the three engineering departments. Due to the popularity of this recruitment drive, the response from recruits from all over Australia and worldwide have been overwhelming. In order to facilitate this recruitment drive and record keeping, ASX has approached you and your team to develop a software to keep track of the registration of each recruit's application and how staff manages these records. You and your team only need to develop a prototype.
The first stage of the prototype is called ASX-Alpha (Assignment 1). This prototype is to provide a proof-of-concept to allow stakeholders to determine if they should invest a larger sum of money for a more complete software. You will be developing the prototype in two stages. ASX-Alpha, will be a desktop application which will be updated to a web-based application, ASX-Web (i.e. Assignment 2), enabling online registration to be carried out. In the first stage, ASX-Alpha enables staff registration, and recruit registration to be collected and saved to text files.
In the second stage, you will extend ASX-Alpha (Assignment 1) to include more functionality and also re-designated as ASX-Web (Assignment 2). ASX-Web should be extended to enable the management staff to login, verify recruit details, and to assign different engineering departments and locations to each recruit. Additional reports should also be generated. The data collected at the initial stage will be loaded and all the data should be recorded in a database.
ASX-Web should enable the functions as detailed below.
1. Load and save data to database (new in Assignment 2).
During the first execution of the program, it should load the data from the data files you have created as part of Assignment One. These are the files named 'staff.csv' and 'recruits.csv'. You should be saving the Management Staff, Administration Staff and Recruits details to a database named 'ASX_DBRegistration'.
2. Registration
a) Administration staff (Modified from Assignment 1)
All administration staff can login to the system using username and password which will be verified against the data stored in the database.
b) Management staff Registration (Modified from Assignment 1)
These staff will be responsible for verifying the recruit details before assigning each recruit to appropriate engineering department. ASX-Web should enable management staff to login and use the system and the username and password should be verified from the data stored in the database.
c) Recruits Registration (same as Assignment 1)
For the above functions, you can use the source code from Assignment 1, correct mistakes discussing with your partner, and using the feedback given in your Assignment One marking, and the given solution. The records will be saved and loaded from the database rather than the files.
Refer to Assignment 1 specification for details of the attributes to be included for the above registrations. You can use the given solution to include any details you have missed in your Assignment One.
3. Enter and Save Data (Modified from Assignment 1)
During the registration process allow the user to click an appropriate 'Enter Data Button', for example Enter Recruit Details. In this Assignment add the entered data to a LinkedList.
Include a 'Save Data Button', for example 'Save Recruit. In this Assignment the data should be saved to the database including the details of Administration staff, Recruits, and Management staff.
Each record saved to the database should have an Id, for example Recruit Id, an integer value which will be the primary key of the record. The following functions are new in Assignment 2.
4. Assignment of engineering department to recruits (new in Assignment 2)
A Management Staff can log in, view the highest level of qualification of recruits, and assign the recruit to one of the following engineering departments: aerospace, mechanical or electronics. Management staff also assigns the recruit to one of the four following locations: Rockhampton, Bundaberg, Cairns or Mackay. Management staff needs to determine that each location should be assigned a reasonably equal number of recruits. That is, implement a suitable method that keeps count of the running total of recruits that has already been assigned to each location. Management staff should be able to view this running total.
5. Reports
a) Display the list of recruits - alphabetically sorted by last name in descending order - and grouped by location.
b) Display recruits and sort according to highest level of qualification.
c) Display the list of all Management Staff.
Database - When you save data in the database, it will also create an ID for each entity. You need to include an extra field for the ID in your classes.
Database tasks:
1. Create a database only once. During the program run it has to check whether database exists, if it doesn't, create a database.
2. Create Tables only for the first time after checking that Tables are not existing.
3. Add records from the files when first time running, using the data from the files.
4. Read records from the database and load them to LinkedLists during the later runs of the program.
5. Add Management Staff, Recruit and all other details.
Attachment:- Data Structures and Algorithms Assignment File.rar