Major Project Specification
Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: THEend8_
SOFT3202 Major Project Specification
Page 1 of 12
MAJOR PROJECT
OVERVIEW
The SOFT3202 Major Project will comprise a custom piece of software you will develop during the semester,
which you will further modify in the ‘long release’ window during the exam period with an extra set of
instructions. You will be building a desktop GUI Java application, which consumes web APIs to achieve
specified functionality.
The specification of your software is governed by a pair of APIs that vary from student to student. Each API has
specific requirements within a wider framework that is the same for all students.
Submission
As done in previous assignments, you will use a private GitHub repository located at:
The repository must be named SCD2_2022 and you must add the following
collaborators:
• jbur2821
• aest9988
• agha0431
• efis3423
• hzen5475
• phao5814
Your major project submission should be in the directory /major_project.
This submission may only be modified up until 23:59 on the Sunday of Week 13 (29MAY). At this time, your
work on the given features must have been completed – your work during the 48 hours of the exam itself must
be based on the state of your repository at this time to be accepted. Note there will be milestone assessments
of your work at the end of Week 9, 11, and 13.
Specifications
There are 6 parts to the instructions you will be sent over the course of your work on this project.
• This document: explains the work you will be doing up to the end of Milestone 1. The same for all
students.
• An email indicating what APIs you have been assigned to work with. You should receive this soon
after this document is released.
• Your tutor feedback requirements after Milestone 1. Adds any extra requirements the tutor believes
to be necessary after reviewing your initial submission.
• The Optional Features specification, also after Milestone 1. Indicates the optional features required
for Credit/Distinction/High Distinction results.
• The ‘exam period modification’ specification. Explains the work you will be doing in the 48-hour exam
window during the exam period. This will be released prior to the exam so you know what to expect,
but will not tell you what the modification is. The same for all students.
• An email indicating what your personal modification is. This will be sent at the beginning of the exam
window.
As always Ed announcements and API specific clarifications should also be considered part of the specification.
SOFT3202 S1 2022 Major Project Specification Part 1 16/04/2022
Page 2 of 12
THE API
The APIs are divided up into 2 categories – an ‘input’ list API, and an ‘output’ list API (note that you may need
to both send and receive information from either category, it is a thematic difference rather than a purely
technical one). You will be assigned 1 API from each category - in essence your application will take
information from one API and output it in some way through another.
You grade is initially determined by the completion level of the API. Each API will follow a similar scheme:
HURDLE
• You must implement the required features as indicated for your assigned input and output APIs.
• Your application must run without crashing.
• Your UI must be functional, with no raw JSON displayed, features are clearly visible.
• Your code must be free of obvious, major design flaws. Examples of these (which are not a complete
list) would be:
o ‘God classes’ or ‘god methods’ that know too much or do too much. Break your
implementation down into components.
o Spaghetti code, where functionality or data that should be kept together is split over many
methods or classes
o Major breaches in encapsulation – public attributes, liberal use of instanceof, etc
In most cases detailed UI requirements will not be mandated, but you should ensure that the presented
information of your entity is easily readable, and the interaction is simple.
PASS:
• You must pass the Test Checkpoints at the 4 key submission dates:
o Milestone 1
o Milestone 2
o Milestone 2 Resubmission
o Exam
• To pass a Test Checkpoint your Model code must be fully tested (not using real database or HTTP
calls) at the time of submission. If no submission is made or the submission was unsuccessful, you
must still have a working test suite at the appropriate commits in your repository history:
o 1 where you have the Pass criteria implemented but no further
o 1 at your final in-semester commit
o 1 at the end of the exam
• You must have correct Model-View separation in your design
• You must correct anything your tutor tells you to correct after Milestone 1. If you do not submit
Milestone 1, you must see your tutor for these corrections as soon as you have a working submission.
If you do not do this in time for Milestone 2, your maximum possible cap for Milestone 2 will be Pass.
If you do not do this in time for the Milestone 2 resubmission, your maximum possible cap for the
Exam will be Pass.
CREDIT:
• You must cache the appropriate data to a local SQLite file database
• This database must be created from scratch by your application when it is run with no database file
present
• You must complete 2 standard optional features