COMP603 Program Design & Construction
Software Development Project
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
- A Virtual Academic Advisor – a chatbot for providing advice for AUT students to 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
- Ticket Booking System (for transport, games, shows, etc.)
- Hotel Booking System
- Online Shopping System
- Inventory Management System
- Conference Management System
- A Chinese Idiom Learning System
- An English 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?
General Requirements
- Design and develop a GUI-based Java program. NOT CUI or Web-based!
- 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 8.2/12/13/14, JDK 8 or higher
- 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 contributions/no contribution 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.
- You need to submit a compressed ZIP file which contains: o The project folder which contains all the source codes and related files, e.g., image files, text files, unit tests, etc. o IF you work in a group, you also need to include a one-page contribution for each project. If any team member gives very few contributions/no contribution in terms of coding, the student will be given a penalty or even fail the project.
- 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 types), 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., not a 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.
Marking Guideline – PDC Project
User Interface (GUI) • Clear and well-designed graphical user interface following common standards • The interface is easy for users to interact with 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. 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 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