COIT13229 Assessment item 1— Assignment 1
Due date: Wednesday of Week 6 (20th April 2022) 11.45 pm AEST
Length: NA 1
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 intermediate level communication, information literacy, and graduate level problem solving, critical thinking, and information technology competence.
• Develop software applications that can run in parallel and on multiple networked computers using approaches such as multi-threading, and client-server architecture
• Design and develop secure distributed applications using approaches such as RESTful webservices
2. Assessment task
Your task in this assessment is to analyse the given problem, model, design, implement, test and document a client/server application that allows multiple users to access stored data or add new data. 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-5. You should also write a report, as specified in this document, demonstrating your conceptual knowledge. You will be required to use the topics learnt in the pre-requisite unit Object-Oriented Programming.
Community Supported Agriculture (CSA) is taking momentum in many parts of the world. This is to produce ethical, organic fruits, vegetables, dairy, and other products for the local community. The purpose of CSA is to reduce the large distances agricultural products are transported and also engage in environmentally friendly production practices reducing the use of pesticides, and other unethical practices in the treatment of animals.
MalenyFreshDairy is a diary producer following the CSA philosophy to produce and supply fresh milk and other dairy products to home. MalenyFreshDairy was established in 2019 located in Maleny and services the Sunshine Coast and surrounding areas. MalenyFreshDairy produces hormone free milk with no factory farms and supplies to home directly and distributes through pick up points.
Even though MalenyFreshDairy has an existing website, they are interested to re-create. You are invited to create a software application named Maleny Diary To Home System(MDHS).
You are invited to design and develop an initial prototype for the MDHS. Your prototype will be further extended so that it can be used by similar farmers following CSA philosophy. You will be developing the prototype in two stages. In the first stage, the MDHS should enable member registration, display of products, and display of summary reports.
1. Home Delivery Customer
People who want to purchase products through home delivery should register entering the following details.
• Full name
• Phone number
• Email address
• Delivery Address (place where products to be delivered)
The admin staff who may be the owner or employer of the MalenyFreshDairy should be able to add/remove or update products. The product details to be entered are shown below.
• Unit price
• Ingredients (Some products may not have ingredients).
This is an improvement from the existing website as customers cannot see a delivery schedule before selecting items and proceeding to checkout. Products are delivered to home on a weekly basis. Different postcode areas are delivered on different days of the week, for example North Maleny on Fridays. The delivery cost is fixed for different postcode areas.
3. Delivery Schedule
• Delivery Day
• Delivery Cost
2.2 Design Guidelines
You can use the following guidelines in your modelling and GUI design.
A. Server Side
The server should enable the following functionalities. The server creates a new thread for each client connection (thread-per-connection model). The server side receives client requests, processes them and returns results. Multiple client requests are executed concurrently. Server side will not have a GUI.
i) Receive Customer registration details
Details entered during customer registration should be received from the client side. These can be sent as a list from the client side. ii) Save Customer details
The received details of the Customer should be written to a binary file. The data should be appended so that previously entered data should not over-written.
iii) Receive request from the client for display of Delivery Schedule
A Customer logged into the client side views the Delivery Schedule and this should send a request to the server for Delivery schedule.
iv) Send Delivery schedule to the client
The Server side should also enable Admin functions executed from the client.
vi) Receive new product details vii) Save the received product details viii) Receive new Delivery schedule ix) Save Delivery Schedule
The product details and delivery schedules should be saved in two separate text files (.csv) coma separated values format.
B. Client Side
The client side has a GUI to enable user interaction.
i) Register Customer
This should have all the components allowing a new Customer to enter the details and submit for registration. On submission, the data can be stored in a LinkedList and send to the server after receiving certain number of entries. ii) View schedule
This should allow the Customer to view Delivery schedule iii) Display product list
This should allow the customer to view products
iv) Enter new product details
This should allow admin staff to enter new products.
v) Create Delivery Schedule
This is for creating delivery schedule that contains the postcode, weekday of delivery, and cost.
vi) View list of registered customers
Note: A .csv file containing product list with price, and list of postcodes with delivery cost will be provided on the Unit website within the Assessment folder.
C. Graphical User Interface
The GUI should have the necessary components to enable the user to execute all the functions as provided in Section 2.2 A above. You may use the guidelines provided below for your GUI design and implementation. Variations to the provided guidelines are acceptable if it meets the user requirements. The GUI should be designed to provide an easy-to-use user interface that provides informative error messages, and clear instructions. This should be intuitive and easy to navigate.
You use necessary Controls such as Buttons, TextFields, ComboBoxes and others. You should design user data entry Controls keeping in mind that user will be required to use less typing for entering data. Enable user to select from displayed list, using CheckBoxes, and other suitable Controls. You can use JavaFX for your GUI development.
Include necessary accessor, mutator methods, constructors, and toString() methods for each class. Also, follow good coding practices, using meaningful names, camel case notation for naming, constants as necessary, and include meaningful comments. You can use NetBeans to develop your application. Follow the coding standards given in the Unit website.
You can have top level generic classes and extend them to create specialized classes. You need not include login information and store such details, as this will be included in the second Assignment where you will be extending this solution.
3.1Guidance to the level of assistance you can use.
You are expected to understand several concepts and apply those concepts to design and build a software solution. At this level you can use the provided materials, online resources for further reading and take assistance from your classmates or teammates to develop deeper understanding of the concepts. You can also sort help to debug the implemented program. But you should design, implement and test your program on your own.
Table 1 Allowed Assistance
S.No Source Activity
1 Unit Textbook, Unit notes and examples Understanding concepts, design
2 Instructors Understanding concepts, design, debugging
4 Classmates, Online resources Understanding concepts
5 Everyone else Understanding concepts
6 No help acceptable Designing and implementing code
You should submit a report containing the following details.
1. UML class diagrams for the classes
Note: UML class diagrams generated using a software tool after completing the coding will not be accepted.
2. A diagram showing the system architecture illustrating the client server connection and the multiple clients connecting to the server.
3. Test plan showing input data, expected results, and actual results. Show testing of erroneous entries also.
4. Clearly write the steps of client – server communication happening during the program run and data going between client and server for the Customer Registration event. You can use a diagram.
5. Assignment Submission
You should submit the following source code files and word document using the Moodle online submission system. (Note: the file names/class names could be changed to meaningful names). Do not zip the whole project folder and submit it.
• .java files for your classes, including client and server operations
• .html file for your client side or .fxml file for your GUI
• .css file for GUI formating
• Report.doc – Your word document containing the report.
Assessment Item 1 Marking criteria
S.No Total Marks - 30 Marks
Allocated Marks Scored
1 Graphical User Interface Presentation: User Friendly Design 2
2 Design and use of appropriate data structures 2
Correct use of inheritance 1
3 A client class enabling connection to the server 1.5
4 Appropriate event handling to accept user input and send/receive messages to the server for the Customer registration functionality 2
Appropriate event handling to accept user input and send/receive messages to the server for the Customer to view products 1.5
Appropriate event handling to accept user input and send/receive messages to the server for the Customer to view delivery schedule 1.5
5 Appropriate event handling to accept user input and send/receive messages to the server for the Admin staff to create delivery schedule 2
Appropriate event handling to accept user input and send/receive messages to the server for the Admin staff to add/remove products 2
6 Server class that creates thread per connection. (1 mark)
Receives list of entered data and saves to files (2.5 marks)
Receives request to view schedule, and sends list to the client (1.5 marks)
Receives request to view registered Customers and send the list to server (1 mark) 6
7 Correct implementation of object serialization and saving data in binary format in the file and reading and loading data from the file 2.5
8 Correct use of exception handling 1.5
9 Good coding practices including comments, indentation, use of constants as required, use of meaningful names, and camelCase notation for 1.5
10 Well-presented report with student details, UML class diagram, system architecture, demonstration of testing all functions of the program, and the client server communication during program run 3
11 Late Penalty (-1 mark: 5% of total allocated marks per calendar day)
12 Source code found entirely different from the styles followed in the Unit or containing constructs outside of this Unit will be penalised (-1 to -10 marks depending on the amount of source code)
13 Plagiarism (penalty as per the plagiarism policy)
14 Total 30
1. Pole, A., Gray, M. Farming alone? What’s up with the “C” in community supported agriculture. Agric Hum Values 30, 85–100 (2013). https://doi.org/10.1007/s10460-012-9391-