Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

COMP603 Program Design & Construction

Software Development Project

CJLU 2023 C11

Introduction

This semester you will design and develop a software product. You can work individually or in a

group of 4 students (max). We strongly recommend you work on the project in a group. A team of

more than one student is expected to do correspondingly larger projects. For a team project, every team  member will have a significant contribution in terms of coding. You may want to select a project from the list below or come up with your own.

•    Student Information Management System

•    Course Selection System – a program for AUT students to select papers

•    Virtual Academic Advisor – a chatbot for providing advice to AUT students for study planning

•    Knowledge Repository a system for knowledge management

•    A Simple Q/A system – a system for lecturers to input Q/A, allowing AUT students to search

•    A Simple ERP system – Enterprise Resource Planning system

•    Service Desk System – a system for customer support

•    Software Project Registration system – a system for students to register their PDC/SC project

•    Workforce Planning System

•    Ticket Booking System (for train, games, shows, etc.)

•    Hotel Booking System

•    Online Shopping System

•    Inventory Management System

•    Conference Management System

•    Foreign Language (Vocabulary) Learning Software

•    Card Game

•    Virtual Pet Game

•    Puzzles (Sudoku, Crosswords, Mazes, …)

•    RPG game

•    Chess Games

•    Board Games

•    Deal or No Deal

•    Who Wants to Be a Millionaire?

Important Dates

•    You need to register your project before the beginning of Week 2 by joining a group via Canvas

•    Project source code submission: one week after the last lecture

General Requirements

•    Design and develop a GUI-based Java program. NOT CUI, Web-based or other programing languages.

•    Object-Oriented (OO) programming concepts must be applied to the project. All the important concepts,i.e., encapsulation, abstraction, inheritance and polymorphism, should be reflected.

•    Try to follow SOLID design principles and create multiple classes with relationships.

•    Refer to the important dates for the due date of the project assignment.

•    You need to use Apache Derby DB (also called JavaDB:http://db.apache.org/derby/) as the database management system for your project.

•    You need to develop the project by using NetBeans 14, JDK 11

•    The program needs to be bug-free and has robust error handling.

•    You need to develop unit tests (using Junit Framework) to test some important functionalities of the program.

•    The program should be easy to build and run without any configuration. DB should be set up automatically without any manual configurations.

•    You need to have an open mind about the functionality of your software project and try your best to make your program robust, interesting, and easy to use.

•    You will be expected to develop your own Java code for the projects. You may use the Java standard library and other external libraries.

•    You are encouraged to learn more beyond the lectures and apply what you have learnt to the projects. However, the project requirements stated in this document should be satisfied.

•    IF you work in a group, the team also needs to include a one-page contribution for the project. If any team member gives very few/no contributions in terms of coding, the student will be given a penalty  or even fail the project.

•    Please refer to the Marking Guideline for more details.

Project Code Submission

•    The project must be submitted via Canvas.

•    Only one team member needs to submit it.

•    You need to submit a compressed ZIP file that contains:

o The project folder with all the source codes and related files, e.g., image files, text files, unit tests, etc.

o A very short (less than one page) report, including:

•     the project setup (e.g., username and password)

•     GitHub URL (if there is one), and

•    the contribution of each team member if this is group work (this item is not  required if you work individually). If any team member gives less than 40% contribution/no contribution in terms of coding, the student will be given a  penalty or even fail the course.

o A short video (less than 5 minutes), including

•    Video recording using MS Teams. Start a meeting, share the screen and record it.

•     Project demonstration, showing all the features by running your project

•     Code explanation, explaining class structures, methods and processes.

o You need to include the database folder, which contains all the database files in the compressed ZIP file. You can set the DB directory inside your project folder.

o  You need to include .git (hidden folder), having all the historical commits and branches.

•    Submission Guideline

o Find your group ID from Canvas.

o When you submit your project, please compress the whole project as a .zip (not .rar, .7z or any other type), and rename the zipped file with your group ID and the student ID of members.

o For example, if the group ID is 9, and the student ID is 1234567, then the name of the submitted file should be “P09_ 1234567.zip” . If you have a partner in your

group whose student ID is 7654321, then the name should be “P09  1234567  7654321.zip” .

o Please submit a complete NetBeans project (Ant or Maven). Any improper   submission (e.g., non-NetBeans project, several Java files or compiled classes, lack of essential files, improper name of the submitted file) will affect the assessment of your project.

Important Notes

•    To pass the course, the student needs to obtain at least 50% overall.

•    Plagiarism and self-plagiarism will result in zero marks in the assignment and be reported to the faculty. We detect Plagiarism by using commercial software https://codequiry.com/.

Plagiarism means:

o Download open-source projects from online source, e.g., GitHub, and modify the codes

o Re-use past students’ assignments with modifications

o Re-use the assignment of other papers, e.g., ADA, DSA, etc.

o Purchase assignments from any sources

However, you can:

o Re-use the sample codes and lab solutions given to you.

o Download a utility class/algorithm for your project.

o Download any existing models (e.g., machine learning model, language model)

•    Late submission penalty will be applied (5% penalty per day up to a maximum of 5 days. Late assessments after 5 days will not be accepted).

•    You have the responsibility to keep and back up different versions of your programs. You may also consider using cloud tools, e.g., one drive, drop box, Google drive, for backup. Losing of  data (code) will not be considered as a valid reason for special consideration.

ChatGPT

ChatGPT(Chat Generative Pre-trained Transformer) is a type of language model that is designed to process  and generate natural language text. It is based on a deep learning algorithm called a transformer, which uses a neural network to process sequences of text. In this assignment:

•    You can use ChatGPT to assist you with programming

•    You can use ChatGPT to learn to program

•    You can use ChatGPT to debug your program

•    You can use ChatGPT to generate PART of the program

•    When utilising ChatGPT to generate a method or class, please include a reference or comment in the   code that indicates that the code was generated using ChatGPT. It is important to note that any classes or methods that are generated by ChatGPT should not be considered as part of the classes that you have developed.

•    However, using ChatGPT to generate an entire program even with minor modifications is considered plagiarism. If we suspect that a project is fully generated, we will request the team to present the project and ask questions about the code.

Marking Guideline - PDC Project

Requirement

Max mark

User Interface (GUI)

•    Clear and well-designed graphical user interface following common standards

    The interface is easy for users to interact with

10

Database

    The program contains a database element

•     Can achieve database interactions (input and output) and operations in the program

•    Database interactions and operations (input and output) using JDBC or Hibernate are part of the code.

•    JDBC or Hibernate must contribute to the functionalities of the project.

20

Software Functionality and Usability

•    The program is easy to compile and run without any manual configurations (e.g., setup DB, import .jar, etc.)

•    The users interact with the program without any errors (e.g., the program can handle invalid data input by giving clear error messages and instructions)

    The complexity of the functionality

30

Software Design & Implementation

    The program can be compiled successfully

•    The purpose of the code is easy to understand by reading it

•    The comments in the code are useful and appropriate

    The code executes without runtime errors

    The Git/GitHub version control is applied

    The error handling is thorough and robust

    The class structure reflects good design

•    Design patterns are implemented correctly where appropriate

•    A good coding style is used, following appropriate coding standards

    The code design follows OO design good practice

    There are no obvious code smells

30

Unit Testing

    At least FIVE test cases are included

    The tests are well written

    The tests cover the important functionality well

    The tests are well-named

10

Contribution

     Only required for a group of more students than one

     ONE page

•    Explain the contributions of each of the team member

N/A

No Marks

Others

    Late Submission

    Plagiarism Detection

    Contribution Evaluation

-0%

to

- 100%

Total

100