CSYM025: Mobile Device Software Development
CSYM025: Mobile Device Software Development
DRAFT
Date of Issue
23/02/2024 Last Date for
Submission: TBC
Module Tutor: Emmanuel Ofori-Attah
Guidelines Please read carefully:
The University of Northamptons Policy on Academic Integrity and Misconduct will be strictly implemented.
This is not a group project and by submitting this assignment you are asserting that this submission is entirely your own individual work. You may discuss the assignment with other students, but any code written should be your own. Sharing your work with another student or submitting code that was written by someone else may be deemed academic misconduct.
If you have used any external code that you did not write, you must clearly reference it within your report.
You must submit all items of the assessment according to the submission procedure stated in this document. Failure to follow the submission procedure may result in a penalty or capped grade.
Brief:
An agency based in Northampton has commissioned the development of an application to facilitate property advertisement for its users. The application will be developed using Kotlin for the mobile platform, PHP for the backend, and XAMPP or Docker for server setup and management.
Additionally, the agency has requested the development of a web application to complement the mobile application. Both applications will share the same backend infrastructure developed in PHP.
Here are the specific requirements:
Basic System Requirements:
Admin Privileges
CRUD
Create a new landlord.
Read a new landlord.
Update landlord details.
Delete landlord details.
Landlord Privileges
CRUD
Create a new property.
Read properties.
Update a property.
Delete a property.
User Privileges
Allow a user to view properties.
Allow a user to make a request to contact a landlord about a property.
Note: To get a higher grade, you will need to add enhancements:
Additional features that you may include are as follows:
Good Graphical User Interface
Add Fragments to your application.
Note: To get a higher grade, you will need to add the following enhancements:
Additional features that you may include are as follows:
Implement Fragments into the application
Translate the application into several languages
Implement notifications into the application
Create a WebView for Web Application
These additional features are only suggestions and are not exhaustive. You may include any other useful features relevant to this application. You need to clarify/extract more detailed requirements from the tutor and are encouraged to use an agile methodology for software development.
Deliverables:
All the above system requirements (A, B and C below) MUST be delivered to achieve a passing grade for this assignment.
Technical Report
The report should, ideally, consist of the following sections (in order):
Username and password for all relevant accounts
A list of all the features implemented in a tabular format. For example:
Feature Implemented (Partial/Full) Any comments
Add a review Full No error validation.
View all reviews Full Explanation of the main sections/fragments of the code. Provide information that would be useful for another developer (not an end user!) who may want to extend/maintain your system.
Screenshots of the system showing all key features
Evidence of Testing:
Blackbox Testing: Test logs providing information of all the tests carried out (including any failed tests for functionality not implemented)
Please provide screenshots and tables as part of the testing.
List of any bugs and/or weaknesses in your system (if you do not think there are any, then say so). Bugs that are declared in this list will lose you fewer marks than ones that you do not declare.
Source Code
The source code must be well documented with necessary comments. Consistent and clear indentation of the code is also important. Source code needs to be submitted in two forms:
As a single ZIP archive (.zip file consisting of all android files (java, xml)).
A commented full listing in a separate Word document named Full Source Code Listing.
Video Demonstration
In addition to the report, you must submit a video demo (URL) of your assignment. The demo should be about 10 minutes long (maximum:15 minutes) and should cover all your work in a logical way. You should explain the main phases of design and implementation covering the main fragments of code. Your voice needs to be clear for the marker to hear. It should also include a walkthrough of using the software and must demonstrate the key features. The module tutor reserves the right to invite you for an online viva-voce. Poor demo/viva could negatively influence other sections in the marking criteria.
Submission Procedure:
To do this, go to the NILE site for this module and use the link labelled Assessment and Submission there you will see the relevant.
E-Submission of documents through Turnitin on NILE as TWO separate WORD documents.
Document 1 = Report
Document 2 = FullSourceCodeListingE-Submission of a single ZIP archive that contains all the source code files (.java), (.xml), data files, ReadMe file and executable (jar). The archive must be named with your student ID, e.g. 12345678.zip where 12345678 is your student ID. To do this, go to to the NILE site for this module and use the link labelled Submit your work. Clicking on the link (SourceCodeEsubmission), will take you into the submission form, where you can upload your ZIP archive using the Attach File button (Browse for Local File). Finally, click the Submit button.
When submitting your video demonstration, use of Kaltura (https://video.northampton.ac.uk/) is recommended. You must ensure that the video link is accessible to the marker (do not set it to private access).
Failure to follow the above submission guidelines may result in a capped or fail grade.
Marking Criteria:
The grade for this assignment will form 100% of the overall assignment grade for the module. Marks are split according to the following scheme. In general, the following criteria will act as a guide to what you should expect:
A B C F G
Design (15%) Excellent design of program and user interface. Adherence to object-oriented principles. Class diagrams are very well designed and presented. Good quality design of program and user interface. Adequate adoption of object-oriented principles. Class diagrams are well designed and presented. Satisfactory design of program and user interface.
Class diagrams are satisfactory. Faulty design of class diagrams. Very little discussion of the overall design. No submission or no submission of merit
Functionality
(35%) All criteria for (B) and many significant additional features. All criteria for (C) and some significant additional features. Most basic system requirements are met. Most basic system requirements are not met. No submission or no submission of merit
Testing (15%) Evidence of black box testing with extensive code coverage. Evidence black box testing with good code coverage. Evidence of black box testing with satisfactory code coverage. No evidence of black box testing. No submission or no submission of merit
Technical Report (10%) Excellent description of main sections of the code. All sections covered in the right order. Any assumptions and bugs/weaknesses are clearly stated. Good description of main sections of the code. All sections covered in the right order. Satisfactory description of main sections of the code. Most sections are covered. No description of code sections. No submission or no submission of merit
Code quality and Efficiency (15%) Code is very well structured to enable white box testing, reusability and debugging. Excellent work on error handling. Code is well structured to enable white box testing, reusability and debugging. Good work on error handling. Some thought has been given on how the code is structured. Some work on error handling. Hardly any thought on how the code is structured. No submission or no submission of merit
Demonstration
(10%) Covers all implemented features in sufficient detail. Any known bugs are highlighted. Validation is tested (e.g., entering invalid values) Covers all implemented features in sufficient detail Satisfactory demo but needs more details. Poor explanation. Either not concise or difficult to understand. No submission or no submission of merit